(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PROGRAM) op:Equal rhs:{(libtool)} spids:[83])]
      spids: [83]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PACKAGE) op:Equal rhs:{(libtool)} spids:[86])]
      spids: [86]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:VERSION)
          op: Equal
          rhs: {(DQ ('2.4.6 Debian-2.4.6-0.1'))}
          spids: [89]
        )
      ]
      spids: [89]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:package_revision) op:Equal rhs:{(2.4.6)} spids:[94])]
      spids: [94]
    )
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name AUTOCONF>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ (autoconf))})
          spids: [142 148]
        )
      }
    )
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name AUTOMAKE>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ (automake))})
          spids: [152 158]
        )
      }
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:scriptversion)
              op: Equal
              rhs: {(2015-01-20.17)}
              spids: [182]
            )
          ]
          spids: [182]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:DUALCASE) op:Equal rhs:{(1)} spids:[308])]
          spids: [308]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(export)} {(DUALCASE)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  ops: [Op_DAmp]
                  children: [
                    (C {(test)} {(-n)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name ZSH_VERSION>
                            suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(set)})
                            spids: [326 330]
                          )
                        )
                      }
                    )
                    (Subshell
                      child: (C {(emulate)} {(sh)})
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(/dev/null)}
                          spids: [341]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 2
                          arg_word: {(1)}
                          spids: [344]
                        )
                      ]
                      spids: [335 339]
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(Lit_Other ':')})
            (C {(emulate)} {(sh)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:NULLCMD)
                  op: Equal
                  rhs: {(Lit_Other ':')}
                  spids: [358]
                )
              ]
              spids: [358]
            )
            (C {(alias)} {(-g)} {(SQ <'${1+"$@"}'>) (Lit_Other '=') (SQ <'"$@"'>)})
            (C {(setopt)} {(NO_GLOB_SUBST)})
          ]
          spids: [16777215 348]
        )
      ]
      else_action: [
        (Case
          to_match: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Subshell
                        child: (C {(set)} {(-o)})
                        redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[399])]
                        spids: [393 397]
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [392 401]
              )
            }
          arms: [
            (case_arm
              pat_list: [{(Lit_Other '*') (posix) (Lit_Other '*')}]
              action: [(C {(set)} {(-o)} {(posix)})]
              spids: [405 408 416 16777215]
            )
          ]
          spids: [390 403 418]
        )
      ]
      spids: [387 420]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:_G_user_locale) op:Equal rhs:{(EmptyPart)} spids:[426])]
      spids: [426]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:_G_safe_locale) op:Equal rhs:{(EmptyPart)} spids:[428])]
      spids: [428]
    )
    (ForEach
      iter_name: _G_var
      iter_words: [{(LANG)} {(LANGUAGE)} {(LC_ALL)} {(LC_CTYPE)} {(LC_COLLATE)} {(LC_MESSAGES)}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (C {(eval)} 
              {
                (DQ ('if test set = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{') ($ VSub_Name '$_G_var') ('+set}') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('; then\n') 
                  ('          save_') ($ VSub_Name '$_G_var') ('=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ($ VSub_Name '$_G_var') 
                  ('\n') ('          ') ($ VSub_Name '$_G_var') ('=C\n') ('\t  export ') ($ VSub_Name '$_G_var') ('\n') 
                  ('\t  _G_user_locale=') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$_G_var') ('=') 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (save_) 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('_G_var; ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (_G_user_locale) 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t  _G_safe_locale=') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                  ($ VSub_Name '$_G_var') ('=C; ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (_G_safe_locale) 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\tfi')
                )
              }
            )
          ]
          spids: [448 498]
        )
      spids: [435 16777215]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (Subshell
          child: (C {(unset)} {(CDPATH)})
          redirects: [
            (Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[510])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[513])
          ]
          spids: [504 508]
        )
        (C {(unset)} {(CDPATH)})
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:sp) op:Equal rhs:{(SQ <' '>)} spids:[526])]
      spids: [526]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:nl) op:Equal rhs:{(SQ <'\n'>)} spids:[531])]
      spids: [531]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:IFS)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$sp') ('\t') ($ VSub_Name '$nl'))}
          spids: [536]
        )
      ]
      spids: [536]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(test)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name PATH_SEPARATOR>
                        suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(set)})
                        spids: [552 556]
                      )
                    )
                  } {(KW_Bang '!') (Lit_Other '=')} {(set)}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PATH_SEPARATOR)
                  op: Equal
                  rhs: {(Lit_Other ':')}
                  spids: [568]
                )
              ]
              spids: [568]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (Sentence
                          child: 
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:PATH)
                                  op: Equal
                                  rhs: {(SQ <'/bin;/bin'>)}
                                  spids: [573]
                                )
                              ]
                              spids: [573]
                            )
                          terminator: <Op_Semi ';'>
                        )
                        (Sentence
                          child: 
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:FPATH)
                                  op: Equal
                                  rhs: {($ VSub_Name '$PATH')}
                                  spids: [579]
                                )
                              ]
                              spids: [579]
                            )
                          terminator: <Op_Semi ';'>
                        )
                        (C {(sh)} {(-c)} {(Lit_Other ':')})
                      ]
                    )
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [590]
                    )
                    (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[593])
                  ]
                  spids: [572 588]
                )
                (BraceGroup
                  children: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (Subshell
                          child: 
                            (CommandList
                              children: [
                                (Sentence
                                  child: 
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:PATH)
                                          op: Equal
                                          rhs: {(SQ <'/bin:/bin'>)}
                                          spids: [602]
                                        )
                                      ]
                                      spids: [602]
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                                (Sentence
                                  child: 
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:FPATH)
                                          op: Equal
                                          rhs: {($ VSub_Name '$PATH')}
                                          spids: [608]
                                        )
                                      ]
                                      spids: [608]
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                                (C {(sh)} {(-c)} {(Lit_Other ':')})
                              ]
                            )
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [619]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [622]
                            )
                          ]
                          spids: [601 617]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:PATH_SEPARATOR)
                              op: Equal
                              rhs: {(SQ <';'>)}
                              spids: [628]
                            )
                          ]
                          spids: [628]
                        )
                      ]
                    )
                  ]
                  spids: [598]
                )
              ]
            )
          ]
          spids: [16777215 565]
        )
      ]
      spids: [16777215 636]
    )
    (FuncDef
      name: func_executable_p
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-f)} {(DQ ($ VSub_Number '$1'))})
                (C {(test)} {(-x)} {(DQ ($ VSub_Number '$1'))})
              ]
            )
          ]
          spids: [666]
        )
      spids: [661 665]
    )
    (FuncDef
      name: func_path_progs
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_progs_list)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [729]
                )
              ]
              spids: [729]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_check_func)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [733]
                )
              ]
              spids: [733]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_PATH)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 3>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_Hyphen
                            arg_word: {(DQ ($ VSub_Name '$PATH'))}
                          )
                        spids: [738 744]
                      )
                    }
                  spids: [737]
                )
              ]
              spids: [737]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_path_prog_max)
                  op: Equal
                  rhs: {(0)}
                  spids: [748]
                )
              ]
              spids: [748]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_path_prog_found)
                  op: Equal
                  rhs: {(false)}
                  spids: [752]
                )
              ]
              spids: [752]
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:_G_save_IFS)
                      op: Equal
                      rhs: {($ VSub_Name '$IFS')}
                      spids: [756]
                    )
                  ]
                  spids: [756]
                )
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name PATH_SEPARATOR>
                        suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(':')})
                        spids: [761 765]
                      )
                    }
                  spids: [760]
                )
              ]
              spids: [760]
            )
            (ForEach
              iter_name: _G_dir
              iter_words: [{($ VSub_Name '$_G_PATH')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {($ VSub_Name '$_G_save_IFS')}
                          spids: [780]
                        )
                      ]
                      spids: [780]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(-z)} {(DQ ($ VSub_Name '$_G_dir'))})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:_G_dir)
                              op: Equal
                              rhs: {(.)}
                              spids: [794]
                            )
                          ]
                          spids: [794]
                        )
                      ]
                    )
                    (ForEach
                      iter_name: _G_prog_name
                      iter_words: [{($ VSub_Name '$_G_progs_list')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (ForEach
                              iter_name: _exeext
                              iter_words: [{(SQ )} {(.EXE)}]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:_G_path_prog)
                                          op: Equal
                                          rhs: 
                                            {($ VSub_Name '$_G_dir') (/) 
                                              ($ VSub_Name '$_G_prog_name') ($ VSub_Name '$_exeext')
                                            }
                                          spids: [825]
                                        )
                                      ]
                                      spids: [825]
                                    )
                                    (AndOr
                                      ops: [Op_DPipe]
                                      children: [
                                        (C {(func_executable_p)} {(DQ ($ VSub_Name '$_G_path_prog'))})
                                        (ControlFlow
                                          token: <ControlFlow_Continue continue>
                                        )
                                      ]
                                    )
                                    (Case
                                      to_match: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (SimpleCommand
                                                    words: [
                                                      {(DQ ($ VSub_Name '$_G_path_prog'))}
                                                      {(--version)}
                                                    ]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_GreatAnd
                                                        fd: 2
                                                        arg_word: {(1)}
                                                        spids: [852]
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [845 854]
                                          )
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [{(Lit_Other '*') (GNU) (Lit_Other '*')}]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:func_path_progs_result)
                                                  op: Equal
                                                  rhs: {($ VSub_Name '$_G_path_prog')}
                                                  spids: [864]
                                                )
                                                (assign_pair
                                                  lhs: (LhsName name:_G_path_prog_found)
                                                  op: Equal
                                                  rhs: {(Lit_Other ':')}
                                                  spids: [867]
                                                )
                                              ]
                                              spids: [864]
                                            )
                                          ]
                                          spids: [859 862 870 16777215]
                                        )
                                        (case_arm
                                          pat_list: [{(Lit_Other '*')}]
                                          action: [
                                            (C {($ VSub_Name '$_G_check_func')} 
                                              {($ VSub_Name '$_G_path_prog')}
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:func_path_progs_result)
                                                  op: Equal
                                                  rhs: {($ VSub_Name '$func_check_prog_result')}
                                                  spids: [881]
                                                )
                                              ]
                                              spids: [881]
                                            )
                                          ]
                                          spids: [873 874 885 16777215]
                                        )
                                      ]
                                      spids: [843 856 888]
                                    )
                                    (AndOr
                                      ops: [Op_DAmp]
                                      children: [
                                        (C {($ VSub_Name '$_G_path_prog_found')})
                                        (ControlFlow
                                          token: <ControlFlow_Break break>
                                          arg_word: {(3)}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [822 900]
                                )
                              spids: [815 820]
                            )
                          ]
                          spids: [807 903]
                        )
                      spids: [803 805]
                    )
                  ]
                  spids: [777 906]
                )
              spids: [773 775]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$_G_save_IFS')}
                  spids: [909]
                )
              ]
              spids: [909]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-z)} {(DQ ($ VSub_Name '$func_path_progs_result'))})
                (BraceGroup
                  children: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ('no acceptable sed could be found in ') 
                            (EscapedLiteralPart
                              token: <Lit_EscapedChar '\\$'>
                            ) (PATH)
                          )
                        }
                      ]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[934])]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [923]
                )
              ]
            )
          ]
          spids: [726]
        )
      spids: [721 725]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(-z)} {(DQ ($ VSub_Name '$SED'))})
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_sed_script)
                  op: Equal
                  rhs: {(s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/)}
                  spids: [981]
                )
              ]
              spids: [981]
            )
            (ForEach
              iter_name: _G_i
              iter_words: [{(1)} {(2)} {(3)} {(4)} {(5)} {(6)} {(7)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_sed_script)
                          op: Equal
                          rhs: 
                            {($ VSub_Name '$_G_sed_script') ($ VSub_Name '$nl') 
                              ($ VSub_Name '$_G_sed_script')
                            }
                          spids: [1009]
                        )
                      ]
                      spids: [1009]
                    )
                  ]
                  spids: [1006 1015]
                )
              spids: [990 1004]
            )
            (Pipeline
              children: [
                (SimpleCommand
                  words: [{(echo)} {(DQ ($ VSub_Name '$_G_sed_script'))}]
                  redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[1024])]
                )
                (SimpleCommand
                  words: [{(sed)} {(99q)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(conftest.sed)}
                      spids: [1033]
                    )
                  ]
                )
              ]
              negated: F
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_sed_script)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [1037]
                )
              ]
              spids: [1037]
            )
            (FuncDef
              name: func_check_prog_sed
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_path_prog)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [1050]
                        )
                      ]
                      spids: [1050]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_count)
                          op: Equal
                          rhs: {(0)}
                          spids: [1055]
                        )
                      ]
                      spids: [1055]
                    )
                    (SimpleCommand
                      words: [{(printf)} {(0123456789)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(conftest.in)}
                          spids: [1063]
                        )
                      ]
                    )
                    (While
                      cond: [(C {(Lit_Other ':')})]
                      body: 
                        (DoGroup
                          children: [
                            (SimpleCommand
                              words: [{(cat)} {(conftest.in)} {(conftest.in)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(conftest.tmp)}
                                  spids: [1081]
                                )
                              ]
                            )
                            (C {(mv)} {(conftest.tmp)} {(conftest.in)})
                            (C {(cp)} {(conftest.in)} {(conftest.nl)})
                            (SimpleCommand
                              words: [{(echo)} {(SQ )}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(conftest.nl)}
                                  spids: [1104]
                                )
                              ]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (SimpleCommand
                                  words: [{(DQ ($ VSub_Name '$_G_path_prog'))} {(-f)} {(conftest.sed)}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Less
                                      fd: 16777215
                                      arg_word: {(conftest.nl)}
                                      spids: [1117]
                                    )
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 16777215
                                      arg_word: {(conftest.out)}
                                      spids: [1120]
                                    )
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 2
                                      arg_word: {(/dev/null)}
                                      spids: [1123]
                                    )
                                  ]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (SimpleCommand
                                  words: [{(diff)} {(conftest.out)} {(conftest.nl)}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 16777215
                                      arg_word: {(/dev/null)}
                                      spids: [1137]
                                    )
                                    (Redir
                                      op_id: Redir_GreatAnd
                                      fd: 2
                                      arg_word: {(1)}
                                      spids: [1140]
                                    )
                                  ]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:_G_count)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(expr)} {($ VSub_Name '$_G_count')} {(Lit_Other '+')} 
                                                {(1)}
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [1149 1157]
                                      )
                                    }
                                  spids: [1148]
                                )
                              ]
                              spids: [1148]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(test)} {(DQ ($ VSub_Name '$_G_count'))} {(-gt)} 
                                          {(DQ ($ VSub_Name '$_G_path_prog_max'))}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:func_check_prog_result)
                                          op: Equal
                                          rhs: {($ VSub_Name '$_G_path_prog')}
                                          spids: [1182]
                                        )
                                      ]
                                      spids: [1182]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:_G_path_prog_max)
                                          op: Equal
                                          rhs: {($ VSub_Name '$_G_count')}
                                          spids: [1186]
                                        )
                                      ]
                                      spids: [1186]
                                    )
                                  ]
                                  spids: [16777215 1175]
                                )
                              ]
                              spids: [16777215 1190]
                            )
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(test)} {(10)} {(-lt)} {(DQ ($ VSub_Name '$_G_count'))})
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                            )
                          ]
                          spids: [1072 1212]
                        )
                    )
                    (C {(rm)} {(-f)} {(conftest.in)} {(conftest.tmp)} {(conftest.nl)} {(conftest.out)})
                  ]
                  spids: [1047]
                )
              spids: [1041 1045]
            )
            (C {(func_path_progs)} {(DQ ('sed gsed'))} {(func_check_prog_sed)} 
              {($ VSub_Name '$PATH') (Lit_Other ':') (/usr/xpg4/bin)}
            )
            (C {(rm)} {(-f)} {(conftest.sed)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SED)
                  op: Equal
                  rhs: {($ VSub_Name '$func_path_progs_result')}
                  spids: [1252]
                )
              ]
              spids: [1252]
            )
          ]
          spids: [978]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(-z)} {(DQ ($ VSub_Name '$GREP'))})
        (BraceGroup
          children: [
            (FuncDef
              name: func_check_prog_grep
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_path_prog)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [1287]
                        )
                      ]
                      spids: [1287]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_count)
                          op: Equal
                          rhs: {(0)}
                          spids: [1292]
                        )
                      ]
                      spids: [1292]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_path_prog_max)
                          op: Equal
                          rhs: {(0)}
                          spids: [1296]
                        )
                      ]
                      spids: [1296]
                    )
                    (SimpleCommand
                      words: [{(printf)} {(0123456789)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(conftest.in)}
                          spids: [1304]
                        )
                      ]
                    )
                    (While
                      cond: [(C {(Lit_Other ':')})]
                      body: 
                        (DoGroup
                          children: [
                            (SimpleCommand
                              words: [{(cat)} {(conftest.in)} {(conftest.in)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(conftest.tmp)}
                                  spids: [1322]
                                )
                              ]
                            )
                            (C {(mv)} {(conftest.tmp)} {(conftest.in)})
                            (C {(cp)} {(conftest.in)} {(conftest.nl)})
                            (SimpleCommand
                              words: [{(echo)} {(SQ <GREP>)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(conftest.nl)}
                                  spids: [1346]
                                )
                              ]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (SimpleCommand
                                  words: [
                                    {(DQ ($ VSub_Name '$_G_path_prog'))}
                                    {(-e)}
                                    {(SQ <'GREP$'>)}
                                    {(-e)}
                                    {(SQ <'-(cannot match)-'>)}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Less
                                      fd: 16777215
                                      arg_word: {(conftest.nl)}
                                      spids: [1367]
                                    )
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 16777215
                                      arg_word: {(conftest.out)}
                                      spids: [1370]
                                    )
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 2
                                      arg_word: {(/dev/null)}
                                      spids: [1373]
                                    )
                                  ]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (SimpleCommand
                                  words: [{(diff)} {(conftest.out)} {(conftest.nl)}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 16777215
                                      arg_word: {(/dev/null)}
                                      spids: [1387]
                                    )
                                    (Redir
                                      op_id: Redir_GreatAnd
                                      fd: 2
                                      arg_word: {(1)}
                                      spids: [1390]
                                    )
                                  ]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:_G_count)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(expr)} {($ VSub_Name '$_G_count')} {(Lit_Other '+')} 
                                                {(1)}
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [1399 1407]
                                      )
                                    }
                                  spids: [1398]
                                )
                              ]
                              spids: [1398]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(test)} {(DQ ($ VSub_Name '$_G_count'))} {(-gt)} 
                                          {(DQ ($ VSub_Name '$_G_path_prog_max'))}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:func_check_prog_result)
                                          op: Equal
                                          rhs: {($ VSub_Name '$_G_path_prog')}
                                          spids: [1432]
                                        )
                                      ]
                                      spids: [1432]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:_G_path_prog_max)
                                          op: Equal
                                          rhs: {($ VSub_Name '$_G_count')}
                                          spids: [1436]
                                        )
                                      ]
                                      spids: [1436]
                                    )
                                  ]
                                  spids: [16777215 1425]
                                )
                              ]
                              spids: [16777215 1440]
                            )
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(test)} {(10)} {(-lt)} {(DQ ($ VSub_Name '$_G_count'))})
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                            )
                          ]
                          spids: [1313 1462]
                        )
                    )
                    (C {(rm)} {(-f)} {(conftest.in)} {(conftest.tmp)} {(conftest.nl)} {(conftest.out)})
                  ]
                  spids: [1284]
                )
              spids: [1278 1282]
            )
            (C {(func_path_progs)} {(DQ ('grep ggrep'))} {(func_check_prog_grep)} 
              {($ VSub_Name '$PATH') (Lit_Other ':') (/usr/xpg4/bin)}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:GREP)
                  op: Equal
                  rhs: {($ VSub_Name '$func_path_progs_result')}
                  spids: [1495]
                )
              ]
              spids: [1495]
            )
          ]
          spids: [1275]
        )
      ]
    )
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name CP>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ ('cp -f'))})
          spids: [1527 1533]
        )
      }
    )
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name ECHO>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ ('printf %s') (Lit_Other '\\') (n))})
          spids: [1537 1545]
        )
      }
    )
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name EGREP>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ ($ VSub_Name '$GREP') (' -E'))})
          spids: [1549 1556]
        )
      }
    )
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name FGREP>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ ($ VSub_Name '$GREP') (' -F'))})
          spids: [1560 1567]
        )
      }
    )
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name LN_S>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ ('ln -s'))})
          spids: [1571 1577]
        )
      }
    )
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name MAKE>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ (make))})
          spids: [1581 1587]
        )
      }
    )
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name MKDIR>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ (mkdir))})
          spids: [1591 1597]
        )
      }
    )
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name MV>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ ('mv -f'))})
          spids: [1601 1607]
        )
      }
    )
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name RM>
          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ ('rm -f'))})
          spids: [1611 1617]
        )
      }
    )
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name SHELL>
          suffix_op: 
            (StringUnary
              op_id: VTest_Equals
              arg_word: 
                {
                  (DQ 
                    (BracedVarSub
                      token: <VSub_Name CONFIG_SHELL>
                      suffix_op: 
                        (StringUnary
                          op_id: VTest_Hyphen
                          arg_word: {(Lit_Slash /) (bin) (Lit_Slash /) (sh)}
                        )
                      spids: [1625 1632]
                    )
                  )
                }
            )
          spids: [1621 1634]
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sed_dirname)
          op: Equal
          rhs: {(SQ <'s|/[^/]*$||'>)}
          spids: [1648]
        )
      ]
      spids: [1648]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sed_basename)
          op: Equal
          rhs: {(SQ <'s|^.*/||'>)}
          spids: [1653]
        )
      ]
      spids: [1653]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sed_quote_subst)
          op: Equal
          rhs: {(SQ <'s|\\([`"$\\\\]\\)|\\\\\\1|g'>)}
          spids: [1665]
        )
      ]
      spids: [1665]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sed_double_quote_subst)
          op: Equal
          rhs: {(SQ <'s/\\(["`\\\\]\\)/\\\\\\1/g'>)}
          spids: [1674]
        )
      ]
      spids: [1674]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sed_make_literal_regex)
          op: Equal
          rhs: {(SQ <'s|[].[^$\\\\*\\/]|\\\\&|g'>)}
          spids: [1686]
        )
      ]
      spids: [1686]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sed_naive_backslashify)
          op: Equal
          rhs: {(SQ <'s|\\\\\\\\*|\\\\|g;s|/|\\\\|g;s|\\\\|\\\\\\\\|g'>)}
          spids: [1701]
        )
      ]
      spids: [1701]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:_G_bs) op:Equal rhs:{(SQ <'\\\\'>)} spids:[1722])]
      spids: [1722]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:_G_bs2) op:Equal rhs:{(SQ <'\\\\\\\\'>)} spids:[1727])]
      spids: [1727]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_G_bs4)
          op: Equal
          rhs: {(SQ <'\\\\\\\\\\\\\\\\'>)}
          spids: [1732]
        )
      ]
      spids: [1732]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:_G_dollar) op:Equal rhs:{(SQ <'\\$'>)} spids:[1737])]
      spids: [1737]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sed_double_backslash)
          op: Equal
          rhs: 
            {
              (DQ ('  s/') ($ VSub_Name '$_G_bs4') ('/&') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ('\n') ('/g\n') ('  s/^') ($ VSub_Name '$_G_bs2') ($ VSub_Name '$_G_dollar') (/) ($ VSub_Name '$_G_bs') 
                ('&/\n') ('  s/') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ('([^') ($ VSub_Name '$_G_bs') (']') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (')') ($ VSub_Name '$_G_bs2') ($ VSub_Name '$_G_dollar') (/) 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (1) ($ VSub_Name '$_G_bs2') ($ VSub_Name '$_G_bs') ($ VSub_Name '$_G_dollar') ('/g\n') ('  s/') 
                (Lit_Other '\\') (n//g)
              )
            }
          spids: [1742]
        )
      ]
      spids: [1742]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:EXIT_SUCCESS) op:Equal rhs:{(0)} spids:[1827])]
      spids: [1827]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:EXIT_FAILURE) op:Equal rhs:{(1)} spids:[1830])]
      spids: [1830]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:EXIT_MISMATCH) op:Equal rhs:{(63)} spids:[1833])]
      spids: [1833]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:EXIT_SKIP) op:Equal rhs:{(77)} spids:[1839])]
      spids: [1839]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:debug_cmd)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name debug_cmd>
                suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(DQ (':'))})
                spids: [1862 1868]
              )
            }
          spids: [1861]
        )
      ]
      spids: [1861]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:exit_cmd) op:Equal rhs:{(Lit_Other ':')} spids:[1870])]
      spids: [1870]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:exit_status)
          op: Equal
          rhs: {($ VSub_Name '$EXIT_SUCCESS')}
          spids: [1895]
        )
      ]
      spids: [1895]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:progpath)
          op: Equal
          rhs: {($ VSub_Number '$0')}
          spids: [1914]
        )
      ]
      spids: [1914]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:progname)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Name '$progpath'))})
                          (C {($ VSub_Name '$SED')} {(DQ ($ VSub_Name '$sed_basename'))})
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [1922 1935]
              )
            }
          spids: [1921]
        )
      ]
      spids: [1921]
    )
    (Case
      to_match: {($ VSub_Name '$progpath')}
      arms: [
        (case_arm
          pat_list: [
            {(Lit_Other '[') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (/) (Lit_Other ']') 
              (Lit_Other '*')
            }
            {(Lit_Other '[') (A-Za-z) (Lit_Other ']') (Lit_Other ':') 
              (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (Lit_Other '*')
            }
          ]
          spids: [1948 1960 1962 16777215]
        )
        (case_arm
          pat_list: [
            {(Lit_Other '*') (Lit_Other '[') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (/) 
              (Lit_Other ']') (Lit_Other '*')
            }
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:progdir)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Name '$progpath'))})
                                  (C {($ VSub_Name '$SED')} {(DQ ($ VSub_Name '$sed_dirname'))})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [1975 1988]
                      )
                    }
                  spids: [1974]
                )
              ]
              spids: [1974]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:progdir)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (AndOr
                                ops: [Op_DAmp]
                                children: [(C {(cd)} {(DQ ($ VSub_Name '$progdir'))}) (C {(pwd)})]
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [1992 2002]
                      )
                    }
                  spids: [1991]
                )
              ]
              spids: [1991]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:progpath)
                  op: Equal
                  rhs: {($ VSub_Name '$progdir') (/) ($ VSub_Name '$progname')}
                  spids: [2005]
                )
              ]
              spids: [2005]
            )
          ]
          spids: [1965 1971 2011 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$IFS')}
                  spids: [2018]
                )
              ]
              spids: [2018]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name PATH_SEPARATOR>
                        suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(':')})
                        spids: [2023 2027]
                      )
                    }
                  spids: [2022]
                )
              ]
              spids: [2022]
            )
            (ForEach
              iter_name: progdir
              iter_words: [{($ VSub_Name '$PATH')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {($ VSub_Name '$_G_IFS')}
                          spids: [2042]
                        )
                      ]
                      spids: [2042]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(-x)} {(DQ ($ VSub_Name '$progdir') (/) ($ VSub_Name '$progname'))})
                        (ControlFlow token:<ControlFlow_Break break>)
                      ]
                    )
                  ]
                  spids: [2039 2061]
                )
              spids: [2035 2037]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$_G_IFS')}
                  spids: [2064]
                )
              ]
              spids: [2064]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$progdir'))})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:progdir)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(pwd)})])
                            left_token: <Left_Backtick '`'>
                            spids: [2079 2081]
                          )
                        }
                      spids: [2078]
                    )
                  ]
                  spids: [2078]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:progpath)
                  op: Equal
                  rhs: {($ VSub_Name '$progdir') (/) ($ VSub_Name '$progname')}
                  spids: [2084]
                )
              ]
              spids: [2084]
            )
          ]
          spids: [2014 2015 2090 16777215]
        )
      ]
      spids: [1941 1945 2092]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:opt_dry_run) op:Equal rhs:{(false)} spids:[2116])]
      spids: [2116]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:opt_quiet) op:Equal rhs:{(false)} spids:[2119])]
      spids: [2119]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:opt_verbose) op:Equal rhs:{(false)} spids:[2122])]
      spids: [2122]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:warning_categories)
          op: Equal
          rhs: {(EmptyPart)}
          spids: [2135]
        )
      ]
      spids: [2135]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:warning_func)
          op: Equal
          rhs: {(func_warn_and_continue)}
          spids: [2147]
        )
      ]
      spids: [2147]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:opt_warning_types) op:Equal rhs:{(all)} spids:[2160])]
      spids: [2160]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:require_term_colors)
          op: Equal
          rhs: {(func_require_term_colors)}
          spids: [2216]
        )
      ]
      spids: [2216]
    )
    (FuncDef
      name: func_require_term_colors
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-t)} {(1)})
                (BraceGroup
                  children: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name COLORTERM>
                                suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(set)})
                                spids: [2259 2263]
                              )
                            )
                          }
                        )
                        (C {(Lit_Other ':')} 
                          {
                            (BracedVarSub
                              token: <VSub_Name USE_ANSI_COLORS>
                              suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ (1))})
                              spids: [2270 2276]
                            )
                          }
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(test)} {(1)} {(Lit_Other '=')} 
                                  {(DQ ($ VSub_Name '$USE_ANSI_COLORS'))}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:tc_reset)
                                  op: Equal
                                  rhs: {(SQ <'\x1b[0m'>)}
                                  spids: [2300]
                                )
                              ]
                              spids: [2300]
                            )
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:tc_bold)
                                      op: Equal
                                      rhs: {(SQ <'\x1b[1m'>)}
                                      spids: [2306]
                                    )
                                  ]
                                  spids: [2306]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:tc_standout)
                                  op: Equal
                                  rhs: {(SQ <'\x1b[7m'>)}
                                  spids: [2312]
                                )
                              ]
                              spids: [2312]
                            )
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:tc_red)
                                      op: Equal
                                      rhs: {(SQ <'\x1b[31m'>)}
                                      spids: [2318]
                                    )
                                  ]
                                  spids: [2318]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:tc_green)
                                  op: Equal
                                  rhs: {(SQ <'\x1b[32m'>)}
                                  spids: [2324]
                                )
                              ]
                              spids: [2324]
                            )
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:tc_blue)
                                      op: Equal
                                      rhs: {(SQ <'\x1b[34m'>)}
                                      spids: [2330]
                                    )
                                  ]
                                  spids: [2330]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:tc_cyan)
                                  op: Equal
                                  rhs: {(SQ <'\x1b[36m'>)}
                                  spids: [2336]
                                )
                              ]
                              spids: [2336]
                            )
                          ]
                          spids: [16777215 2293]
                        )
                      ]
                      else_action: [
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(-n)} 
                              {
                                (DQ 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (SimpleCommand
                                            words: [{(tput)} {(sgr0)}]
                                            redirects: [
                                              (Redir
                                                op_id: Redir_Great
                                                fd: 2
                                                arg_word: {(/dev/null)}
                                                spids: [2359]
                                              )
                                            ]
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [2354 2361]
                                  )
                                )
                              }
                            )
                            (BraceGroup
                              children: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:tc_reset)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [(C {(tput)} {(sgr0)})]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [2370 2374]
                                          )
                                        }
                                      spids: [2369]
                                    )
                                  ]
                                  spids: [2369]
                                )
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(test)} {(-n)} 
                                      {
                                        (DQ 
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (SimpleCommand
                                                    words: [{(tput)} {(bold)}]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_Great
                                                        fd: 2
                                                        arg_word: {(/dev/null)}
                                                        spids: [2387]
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [2382 2389]
                                          )
                                        )
                                      }
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:tc_bold)
                                          op: Equal
                                          rhs: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [(C {(tput)} {(bold)})]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [2395 2399]
                                              )
                                            }
                                          spids: [2394]
                                        )
                                      ]
                                      spids: [2394]
                                    )
                                  ]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:tc_standout)
                                      op: Equal
                                      rhs: {($ VSub_Name '$tc_bold')}
                                      spids: [2402]
                                    )
                                  ]
                                  spids: [2402]
                                )
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(test)} {(-n)} 
                                      {
                                        (DQ 
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (SimpleCommand
                                                    words: [{(tput)} {(smso)}]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_Great
                                                        fd: 2
                                                        arg_word: {(/dev/null)}
                                                        spids: [2416]
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [2411 2418]
                                          )
                                        )
                                      }
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:tc_standout)
                                          op: Equal
                                          rhs: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [(C {(tput)} {(smso)})]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [2424 2428]
                                              )
                                            }
                                          spids: [2423]
                                        )
                                      ]
                                      spids: [2423]
                                    )
                                  ]
                                )
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(test)} {(-n)} 
                                      {
                                        (DQ 
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (SimpleCommand
                                                    words: [{(tput)} {(setaf)} {(1)}]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_Great
                                                        fd: 2
                                                        arg_word: {(/dev/null)}
                                                        spids: [2443]
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [2436 2445]
                                          )
                                        )
                                      }
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:tc_red)
                                          op: Equal
                                          rhs: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [(C {(tput)} {(setaf)} {(1)})]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [2451 2457]
                                              )
                                            }
                                          spids: [2450]
                                        )
                                      ]
                                      spids: [2450]
                                    )
                                  ]
                                )
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(test)} {(-n)} 
                                      {
                                        (DQ 
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (SimpleCommand
                                                    words: [{(tput)} {(setaf)} {(2)}]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_Great
                                                        fd: 2
                                                        arg_word: {(/dev/null)}
                                                        spids: [2472]
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [2465 2474]
                                          )
                                        )
                                      }
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:tc_green)
                                          op: Equal
                                          rhs: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [(C {(tput)} {(setaf)} {(2)})]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [2480 2486]
                                              )
                                            }
                                          spids: [2479]
                                        )
                                      ]
                                      spids: [2479]
                                    )
                                  ]
                                )
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(test)} {(-n)} 
                                      {
                                        (DQ 
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (SimpleCommand
                                                    words: [{(tput)} {(setaf)} {(4)}]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_Great
                                                        fd: 2
                                                        arg_word: {(/dev/null)}
                                                        spids: [2501]
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [2494 2503]
                                          )
                                        )
                                      }
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:tc_blue)
                                          op: Equal
                                          rhs: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [(C {(tput)} {(setaf)} {(4)})]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [2509 2515]
                                              )
                                            }
                                          spids: [2508]
                                        )
                                      ]
                                      spids: [2508]
                                    )
                                  ]
                                )
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(test)} {(-n)} 
                                      {
                                        (DQ 
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (SimpleCommand
                                                    words: [{(tput)} {(setaf)} {(5)}]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_Great
                                                        fd: 2
                                                        arg_word: {(/dev/null)}
                                                        spids: [2530]
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [2523 2532]
                                          )
                                        )
                                      }
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:tc_cyan)
                                          op: Equal
                                          rhs: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [(C {(tput)} {(setaf)} {(5)})]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [2538 2544]
                                              )
                                            }
                                          spids: [2537]
                                        )
                                      ]
                                      spids: [2537]
                                    )
                                  ]
                                )
                              ]
                              spids: [2366]
                            )
                          ]
                        )
                      ]
                      spids: [2342 2550]
                    )
                  ]
                  spids: [2239]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:require_term_colors)
                  op: Equal
                  rhs: {(Lit_Other ':')}
                  spids: [2557]
                )
              ]
              spids: [2557]
            )
          ]
          spids: [2224]
        )
      spids: [2219 2223]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(test)} {(set)} {(Lit_Other '=')} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name BASH_VERSION>
                        suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(set)})
                        spids: [2620 2624]
                      ) 
                      (BracedVarSub
                        token: <VSub_Name ZSH_VERSION>
                        suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(set)})
                        spids: [2625 2629]
                      )
                    )
                  }
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(Lit_Other ':')} 
              {
                (BracedVarSub
                  token: <VSub_Name _G_HAVE_ARITH_OP>
                  suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ (yes))})
                  spids: [2638 2644]
                )
              }
            )
            (C {(Lit_Other ':')} 
              {
                (BracedVarSub
                  token: <VSub_Name _G_HAVE_XSI_OPS>
                  suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ (yes))})
                  spids: [2649 2655]
                )
              }
            )
            (Case
              to_match: {($ VSub_Name '$BASH_VERSION')}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '[') (12) (Lit_Other ']') (.) (Lit_Other '*')}
                    {(3.0)}
                    {(3.0) (Lit_Other '*')}
                  ]
                  spids: [2669 2683 2685 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(Lit_Other ':')} 
                      {
                        (BracedVarSub
                          token: <VSub_Name _G_HAVE_PLUSEQ_OP>
                          suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(DQ (yes))})
                          spids: [2694 2700]
                        )
                      }
                    )
                  ]
                  spids: [2688 2689 2703 16777215]
                )
              ]
              spids: [2662 2666 2706]
            )
          ]
          spids: [16777215 2633]
        )
      ]
      spids: [16777215 2709]
    )
    (AndOr
      ops: [Op_DAmp Op_DAmp]
      children: [
        (C {(test)} {(-z)} {(DQ ($ VSub_Name '$_G_HAVE_PLUSEQ_OP'))})
        (Subshell
          child: (C {(eval)} {(SQ <'x=a; x+=" b"; test "a b" = "$x"'>)})
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[2745])]
          spids: [2737 2743]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:_G_HAVE_PLUSEQ_OP)
              op: Equal
              rhs: {(yes)}
              spids: [2752]
            )
          ]
          spids: [2752]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$_G_HAVE_PLUSEQ_OP'))})]
          action: [
            (C {(eval)} 
              {
                (SQ <'func_append ()\n'> <'  {\n'> <'    $debug_cmd\n'> <'\n'> <'    eval "$1+=\\$2"\n'> 
                  <'  }'>
                )
              }
            )
          ]
          spids: [16777215 2768]
        )
      ]
      else_action: [
        (FuncDef
          name: func_append
          body: 
            (BraceGroup
              children: [
                (C {($ VSub_Name '$debug_cmd')})
                (C {(eval)} 
                  {
                    (DQ ($ VSub_Number '$1') ('=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                      ($ VSub_Number '$1') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (2)
                    )
                  }
                )
              ]
              spids: [2799]
            )
          spids: [2793 2797]
        )
      ]
      spids: [2786 2820]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$_G_HAVE_PLUSEQ_OP'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(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'> <'  }'>
                )
              }
            )
          ]
          spids: [16777215 2849]
        )
      ]
      else_action: [
        (FuncDef
          name: func_append_quoted
          body: 
            (BraceGroup
              children: [
                (C {($ VSub_Name '$debug_cmd')})
                (C {(func_quote_for_eval)} {(DQ ($ VSub_Number '$2'))})
                (C {(eval)} 
                  {
                    (DQ ($ VSub_Number '$1') ('=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                      ($ VSub_Number '$1') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (' ') 
                      (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (func_quote_for_eval_result)
                    )
                  }
                )
              ]
              spids: [2873]
            )
          spids: [2867 2871]
        )
      ]
      spids: [2864 2903]
    )
    (FuncDef
      name: func_append_uniq
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(eval)} 
              {(Lit_VarLike '_G_current_value=') (SQ <'`$ECHO $'>) ($ VSub_Number '$1') (SQ <'`'>)}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_delim)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(expr)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ':')} {(SQ <'\\(.\\)'>)})
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2962 2974]
                      )
                    }
                  spids: [2961]
                )
              ]
              spids: [2961]
            )
            (Case
              to_match: 
                {($ VSub_Name '$_G_delim') ($ VSub_Name '$_G_current_value') 
                  ($ VSub_Name '$_G_delim')
                }
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (DQ ($ VSub_Number '$2') ($ VSub_Name '$_G_delim')) 
                      (Lit_Other '*')
                    }
                  ]
                  spids: [2987 2993 2995 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(func_append)} {(DQ ($ VSub_At '$@'))})]
                  spids: [2998 2999 3007 16777215]
                )
              ]
              spids: [2978 2984 3010]
            )
          ]
          spids: [2942]
        )
      spids: [2937 2941]
    )
    (AndOr
      ops: [Op_DAmp Op_DAmp]
      children: [
        (C {(test)} {(-z)} {(DQ ($ VSub_Name '$_G_HAVE_ARITH_OP'))})
        (Subshell
          child: (C {(eval)} {(SQ <'test 2 = $(( 1 + 1 ))'>)})
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[3046])]
          spids: [3038 3044]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:_G_HAVE_ARITH_OP) op:Equal rhs:{(yes)} spids:[3053])]
          spids: [3053]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$_G_HAVE_ARITH_OP'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(eval)} 
              {
                (SQ <'func_arith ()\n'> <'  {\n'> <'    $debug_cmd\n'> <'\n'> 
                  <'    func_arith_result=$(( $* ))\n'> <'  }'>
                )
              }
            )
          ]
          spids: [16777215 3070]
        )
      ]
      else_action: [
        (FuncDef
          name: func_arith
          body: 
            (BraceGroup
              children: [
                (C {($ VSub_Name '$debug_cmd')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:func_arith_result)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(expr)} {(DQ ($ VSub_At '$@'))})]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [3101 3107]
                          )
                        }
                      spids: [3100]
                    )
                  ]
                  spids: [3100]
                )
              ]
              spids: [3093]
            )
          spids: [3087 3091]
        )
      ]
      spids: [3084 3112]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$_G_HAVE_XSI_OPS'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_b)
                  op: Equal
                  rhs: {(SQ <'func_basename_result=${1##*/}'>)}
                  spids: [3156]
                )
              ]
              spids: [3156]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_d)
                  op: Equal
                  rhs: 
                    {
                      (SQ <'case $1 in\n'> <'        */*) func_dirname_result=${1%/*}$2 ;;\n'> 
                        <'        *  ) func_dirname_result=$3        ;;\n'> <'      esac'>
                      )
                    }
                  spids: [3162]
                )
              ]
              spids: [3162]
            )
          ]
          spids: [16777215 3141]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:_b)
              op: Equal
              rhs: {(SQ <'func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'>)}
              spids: [3178]
            )
          ]
          spids: [3178]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:_d)
              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'>
                  )
                }
              spids: [3184]
            )
          ]
          spids: [3184]
        )
      ]
      spids: [3171 3194]
    )
    (C {(eval)} 
      {(SQ <'func_basename ()\n'> <'{\n'> <'    $debug_cmd\n'> <'\n'> <'    '>) 
        (DQ ($ VSub_Name '$_b')) (SQ <'\n'> <'}'>)
      }
    )
    (C {(eval)} 
      {(SQ <'func_dirname ()\n'> <'{\n'> <'    $debug_cmd\n'> <'\n'> <'    '>) 
        (DQ ($ VSub_Name '$_d')) (SQ <'\n'> <'}'>)
      }
    )
    (C {(eval)} 
      {(SQ <'func_dirname_and_basename ()\n'> <'{\n'> <'    $debug_cmd\n'> <'\n'> <'    '>) 
        (DQ ($ VSub_Name '$_b')) (SQ <'\n'> <'    '>) (DQ ($ VSub_Name '$_d')) (SQ <'\n'> <'}'>)
      }
    )
    (FuncDef
      name: func_echo
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_message)
                  op: Equal
                  rhs: {($ VSub_Star '$*')}
                  spids: [3330]
                )
              ]
              spids: [3330]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_echo_IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$IFS')}
                  spids: [3335]
                )
              ]
              spids: [3335]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$nl')}
                  spids: [3339]
                )
              ]
              spids: [3339]
            )
            (ForEach
              iter_name: _G_line
              iter_words: [{($ VSub_Name '$_G_message')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {($ VSub_Name '$func_echo_IFS')}
                          spids: [3355]
                        )
                      ]
                      spids: [3355]
                    )
                    (C {($ VSub_Name '$ECHO')} 
                      {(DQ ($ VSub_Name '$progname') (': ') ($ VSub_Name '$_G_line'))}
                    )
                  ]
                  spids: [3352 3368]
                )
              spids: [3348 3350]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$func_echo_IFS')}
                  spids: [3371]
                )
              ]
              spids: [3371]
            )
          ]
          spids: [3323]
        )
      spids: [3318 3322]
    )
    (FuncDef
      name: func_echo_all
      body: 
        (BraceGroup
          children: [(C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Star '$*'))})]
          spids: [3392]
        )
      spids: [3387 3391]
    )
    (FuncDef
      name: func_echo_infix_1
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {($ VSub_Name '$require_term_colors')})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:_G_infix)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [3433]
                    )
                  ]
                  spids: [3433]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_indent)
                  op: Equal
                  rhs: {($ VSub_Name '$_G_infix')}
                  spids: [3440]
                )
              ]
              spids: [3440]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_prefix)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$progname') (': ') ($ VSub_Name '$_G_infix') (': '))}
                  spids: [3444]
                )
              ]
              spids: [3444]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_message)
                  op: Equal
                  rhs: {($ VSub_Star '$*')}
                  spids: [3453]
                )
              ]
              spids: [3453]
            )
            (ForEach
              iter_name: _G_tc
              iter_words: [
                {(DQ ($ VSub_Name '$tc_reset'))}
                {(DQ ($ VSub_Name '$tc_bold'))}
                {(DQ ($ VSub_Name '$tc_standout'))}
                {(DQ ($ VSub_Name '$tc_red'))}
                {(DQ ($ VSub_Name '$tc_green'))}
                {(DQ ($ VSub_Name '$tc_blue'))}
                {(DQ ($ VSub_Name '$tc_cyan'))}
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(-n)} {(DQ ($ VSub_Name '$_G_tc'))})
                        (BraceGroup
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:_G_esc_tc)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {($ VSub_Name '$ECHO')} 
                                                    {(DQ ($ VSub_Name '$_G_tc'))}
                                                  )
                                                  (C {($ VSub_Name '$SED')} 
                                                    {(DQ ($ VSub_Name '$sed_make_literal_regex'))}
                                                  )
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [3514 3528]
                                      )
                                    }
                                  spids: [3513]
                                )
                              ]
                              spids: [3513]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:_G_indent)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {($ VSub_Name '$ECHO')} 
                                                    {(DQ ($ VSub_Name '$_G_indent'))}
                                                  )
                                                  (C {($ VSub_Name '$SED')} 
                                                    {(DQ ('s|') ($ VSub_Name '$_G_esc_tc') ('||g'))}
                                                  )
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [3532 3548]
                                      )
                                    }
                                  spids: [3531]
                                )
                              ]
                              spids: [3531]
                            )
                          ]
                          spids: [3510]
                        )
                      ]
                    )
                  ]
                  spids: [3497 3554]
                )
              spids: [3467 16777215]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_indent)
                  op: Equal
                  rhs: 
                    {(DQ ($ VSub_Name '$progname') (': ')) 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Name '$_G_indent'))})
                                  (C {($ VSub_Name '$SED')} {(SQ <'s|.| |g'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [3562 3576]
                      ) (DQ ('  '))
                    }
                  spids: [3557]
                )
              ]
              spids: [3557]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_echo_infix_1_IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$IFS')}
                  spids: [3586]
                )
              ]
              spids: [3586]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$nl')}
                  spids: [3590]
                )
              ]
              spids: [3590]
            )
            (ForEach
              iter_name: _G_line
              iter_words: [{($ VSub_Name '$_G_message')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {($ VSub_Name '$func_echo_infix_1_IFS')}
                          spids: [3606]
                        )
                      ]
                      spids: [3606]
                    )
                    (SimpleCommand
                      words: [
                        {($ VSub_Name '$ECHO')}
                        {
                          (DQ ($ VSub_Name '$_G_prefix') ($ VSub_Name '$tc_bold') 
                            ($ VSub_Name '$_G_line') ($ VSub_Name '$tc_reset')
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 16777215
                          arg_word: {(2)}
                          spids: [3619]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_prefix)
                          op: Equal
                          rhs: {($ VSub_Name '$_G_indent')}
                          spids: [3623]
                        )
                      ]
                      spids: [3623]
                    )
                  ]
                  spids: [3603 3627]
                )
              spids: [3599 3601]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$func_echo_infix_1_IFS')}
                  spids: [3630]
                )
              ]
              spids: [3630]
            )
          ]
          spids: [3422]
        )
      spids: [3417 3421]
    )
    (FuncDef
      name: func_error
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {($ VSub_Name '$require_term_colors')})
            (SimpleCommand
              words: [
                {(func_echo_infix_1)}
                {
                  (DQ ('  ') ($ VSub_Name '$tc_standout') (${ VSub_Name tc_red) (error) 
                    ($ VSub_Name '$tc_reset')
                  )
                }
                {(DQ ($ VSub_Star '$*'))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[3678])]
            )
          ]
          spids: [3651]
        )
      spids: [3646 3650]
    )
    (FuncDef
      name: func_fatal_error
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(func_error)} {(DQ ($ VSub_Star '$*'))})
            (ControlFlow
              token: <ControlFlow_Exit exit>
              arg_word: {($ VSub_Name '$EXIT_FAILURE')}
            )
          ]
          spids: [3699]
        )
      spids: [3694 3698]
    )
    (FuncDef
      name: func_grep
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (SimpleCommand
              words: [{($ VSub_Name '$GREP')} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(/dev/null)}
                  spids: [3752]
                )
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[3755])
              ]
            )
          ]
          spids: [3735]
        )
      spids: [3730 3734]
    )
    (AndOr
      ops: [Op_DAmp Op_DAmp]
      children: [
        (C {(test)} {(-z)} {(DQ ($ VSub_Name '$_G_HAVE_XSI_OPS'))})
        (Subshell
          child: 
            (C {(eval)} 
              {(SQ <'x=a/b/c;\n'> <'      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"'>)}
            )
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[3796])]
          spids: [3787 3794]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:_G_HAVE_XSI_OPS) op:Equal rhs:{(yes)} spids:[3803])]
          spids: [3803]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$_G_HAVE_XSI_OPS'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(eval)} 
              {
                (SQ <'func_len ()\n'> <'  {\n'> <'    $debug_cmd\n'> <'\n'> 
                  <'    func_len_result=${#1}\n'> <'  }'>
                )
              }
            )
          ]
          spids: [16777215 3820]
        )
      ]
      else_action: [
        (FuncDef
          name: func_len
          body: 
            (BraceGroup
              children: [
                (C {($ VSub_Name '$debug_cmd')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:func_len_result)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (AndOr
                                    ops: [Op_DPipe]
                                    children: [
                                      (SimpleCommand
                                        words: [
                                          {(expr)}
                                          {(DQ ($ VSub_Number '$1'))}
                                          {(Lit_Other ':')}
                                          {(DQ ('.*'))}
                                        ]
                                        redirects: [
                                          (Redir
                                            op_id: Redir_Great
                                            fd: 2
                                            arg_word: {(/dev/null)}
                                            spids: [3864]
                                          )
                                        ]
                                      )
                                      (C {(echo)} {($ VSub_Name '$max_cmd_len')})
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [3851 3872]
                          )
                        }
                      spids: [3850]
                    )
                  ]
                  spids: [3850]
                )
              ]
              spids: [3843]
            )
          spids: [3837 3841]
        )
      ]
      spids: [3834 3877]
    )
    (FuncDef
      name: func_mkdir_p
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_directory_path)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [3902]
                )
              ]
              spids: [3902]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_dir_list)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [3906]
                )
              ]
              spids: [3906]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name '$_G_directory_path'))})
                            (C {(test)} {(Lit_Other ':')} {(KW_Bang '!') (Lit_Other '=')} 
                              {(DQ ($ VSub_Name '$opt_dry_run'))}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Case
                      to_match: {($ VSub_Name '$_G_directory_path')}
                      arms: [
                        (case_arm
                          pat_list: [{(-) (Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:_G_directory_path)
                                  op: Equal
                                  rhs: {(./) ($ VSub_Name '$_G_directory_path')}
                                  spids: [3953]
                                )
                              ]
                              spids: [3953]
                            )
                          ]
                          spids: [3949 3951 3957 16777215]
                        )
                      ]
                      spids: [3942 3946 3960]
                    )
                    (While
                      cond: [
                        (Sentence
                          child: 
                            (C {(test)} {(KW_Bang '!')} {(-d)} {(DQ ($ VSub_Name '$_G_directory_path'))})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:_G_dir_list)
                                  op: Equal
                                  rhs: 
                                    {($ VSub_Name '$_G_directory_path') (Lit_Other ':') 
                                      ($ VSub_Name '$_G_dir_list')
                                    }
                                  spids: [3992]
                                )
                              ]
                              spids: [3992]
                            )
                            (Case
                              to_match: {($ VSub_Name '$_G_directory_path')}
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other '*') (/) (Lit_Other '*')}]
                                  spids: [4009 4012 4014 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                                  spids: [4016 4017 4021 16777215]
                                )
                              ]
                              spids: [4003 4007 4023]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:_G_directory_path)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {($ VSub_Name '$ECHO')} 
                                                    {(DQ ($ VSub_Name '$_G_directory_path'))}
                                                  )
                                                  (C {($ VSub_Name '$SED')} {(-e)} 
                                                    {(DQ ($ VSub_Name '$sed_dirname'))}
                                                  )
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [4032 4048]
                                      )
                                    }
                                  spids: [4031]
                                )
                              ]
                              spids: [4031]
                            )
                          ]
                          spids: [3981 4051]
                        )
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_dir_list)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Name '$_G_dir_list'))})
                                          (C {($ VSub_Name '$SED')} {(SQ <'s|:*$||'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [4055 4069]
                              )
                            }
                          spids: [4054]
                        )
                      ]
                      spids: [4054]
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:func_mkdir_p_IFS)
                              op: Equal
                              rhs: {($ VSub_Name '$IFS')}
                              spids: [4073]
                            )
                          ]
                          spids: [4073]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {(Lit_Other ':')}
                          spids: [4077]
                        )
                      ]
                      spids: [4077]
                    )
                    (ForEach
                      iter_name: _G_dir
                      iter_words: [{($ VSub_Name '$_G_dir_list')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:IFS)
                                  op: Equal
                                  rhs: {($ VSub_Name '$func_mkdir_p_IFS')}
                                  spids: [4093]
                                )
                              ]
                              spids: [4093]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (SimpleCommand
                                  words: [{($ VSub_Name '$MKDIR')} {(DQ ($ VSub_Name '$_G_dir'))}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 2
                                      arg_word: {(/dev/null)}
                                      spids: [4115]
                                    )
                                  ]
                                )
                                (C {(Lit_Other ':')})
                              ]
                            )
                          ]
                          spids: [4090 4123]
                        )
                      spids: [4086 4088]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {($ VSub_Name '$func_mkdir_p_IFS')}
                          spids: [4126]
                        )
                      ]
                      spids: [4126]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(-d)} {(DQ ($ VSub_Name '$_G_directory_path'))})
                        (C {(func_fatal_error)} {(DQ ("Failed to create '") ($ VSub_Number '$1') ("'"))})
                      ]
                    )
                  ]
                  spids: [16777215 3934]
                )
              ]
              spids: [16777215 4156]
            )
          ]
          spids: [3895]
        )
      spids: [3890 3894]
    )
    (FuncDef
      name: func_mktempdir
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_template)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name TMPDIR>
                        suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(Lit_Slash /) (tmp)})
                        spids: [4190 4195]
                      ) (/) 
                      (BracedVarSub
                        token: <VSub_Number 1>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_Hyphen
                            arg_word: {($ VSub_Name '$progname')}
                          )
                        spids: [4197 4201]
                      )
                    }
                  spids: [4189]
                )
              ]
              spids: [4189]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(Lit_Other ':')} {(Lit_Other '=')} 
                          {(DQ ($ VSub_Name '$opt_dry_run'))}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_tmpdir)
                          op: Equal
                          rhs: {($ VSub_Name '$_G_template') (-) ($ VSub_Dollar '$$')}
                          spids: [4225]
                        )
                      ]
                      spids: [4225]
                    )
                  ]
                  spids: [16777215 4218]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:_G_tmpdir)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [
                                      {(mktemp)}
                                      {(-d)}
                                      {(DQ ($ VSub_Name '$_G_template') (-XXXXXXXX))}
                                    ]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [4250]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [4240 4252]
                          )
                        }
                      spids: [4239]
                    )
                  ]
                  spids: [4239]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (C {(test)} {(KW_Bang '!')} {(-d)} {(DQ ($ VSub_Name '$_G_tmpdir'))})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:_G_tmpdir)
                              op: Equal
                              rhs: 
                                {($ VSub_Name '$_G_template') (-) 
                                  (BracedVarSub
                                    token: <VSub_Name RANDOM>
                                    suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(0)})
                                    spids: [4279 4283]
                                  ) ($ VSub_Dollar '$$')
                                }
                              spids: [4276]
                            )
                          ]
                          spids: [4276]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:func_mktempdir_umask)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: (CommandList children:[(C {(umask)})])
                                    left_token: <Left_Backtick '`'>
                                    spids: [4289 4291]
                                  )
                                }
                              spids: [4288]
                            )
                          ]
                          spids: [4288]
                        )
                        (C {(umask)} {(0077)})
                        (C {($ VSub_Name '$MKDIR')} {(DQ ($ VSub_Name '$_G_tmpdir'))})
                        (C {(umask)} {($ VSub_Name '$func_mktempdir_umask')})
                      ]
                      spids: [16777215 4269]
                    )
                  ]
                  spids: [16777215 4311]
                )
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(test)} {(-d)} {(DQ ($ VSub_Name '$_G_tmpdir'))})
                    (C {(func_fatal_error)} 
                      {(DQ ("cannot create temporary directory '") ($ VSub_Name '$_G_tmpdir') ("'"))}
                    )
                  ]
                )
              ]
              spids: [4231 4340]
            )
            (C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Name '$_G_tmpdir'))})
          ]
          spids: [4182]
        )
      spids: [4177 4181]
    )
    (FuncDef
      name: func_normal_abspath
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_pathcar)
                  op: Equal
                  rhs: {(SQ <'s|^/\\([^/]*\\).*$|\\1|'>)}
                  spids: [4385]
                )
              ]
              spids: [4385]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_pathcdr)
                  op: Equal
                  rhs: {(SQ <'s|^/[^/]*||'>)}
                  spids: [4391]
                )
              ]
              spids: [4391]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_removedotparts)
                  op: Equal
                  rhs: {(SQ <':dotsl\n'> <'\t\ts|/\\./|/|g\n'> <'\t\tt dotsl\n'> <'\t\ts|/\\.$|/|'>)}
                  spids: [4397]
                )
              ]
              spids: [4397]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_collapseslashes)
                  op: Equal
                  rhs: {(SQ <'s|/\\{1,\\}|/|g'>)}
                  spids: [4406]
                )
              ]
              spids: [4406]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_finalslash)
                  op: Equal
                  rhs: {(SQ <'s|/*$|/|'>)}
                  spids: [4412]
                )
              ]
              spids: [4412]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_normal_abspath_result)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [4423]
                )
              ]
              spids: [4423]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_normal_abspath_tpath)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [4426]
                )
              ]
              spids: [4426]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_normal_abspath_altnamespace)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [4430]
                )
              ]
              spids: [4430]
            )
            (Case
              to_match: {($ VSub_Name '$func_normal_abspath_tpath')}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [
                    (C {(func_stripname)} {(SQ )} {(SQ </>)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(pwd)})])
                            left_token: <Left_Backtick '`'>
                            spids: [4459 4461]
                          )
                        )
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_normal_abspath_result)
                          op: Equal
                          rhs: {($ VSub_Name '$func_stripname_result')}
                          spids: [4465]
                        )
                      ]
                      spids: [4465]
                    )
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [16777215 4442 4472 16777215]
                )
                (case_arm
                  pat_list: [{(///) (Lit_Other '*')}]
                  spids: [4487 4489 4496 16777215]
                )
                (case_arm
                  pat_list: [{(//) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_normal_abspath_altnamespace)
                          op: Equal
                          rhs: {(/)}
                          spids: [4516]
                        )
                      ]
                      spids: [4516]
                    )
                  ]
                  spids: [4499 4501 4520 16777215]
                )
                (case_arm
                  pat_list: [{(/) (Lit_Other '*')}]
                  spids: [4523 4525 4532 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_normal_abspath_tpath)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: (CommandList children:[(C {(pwd)})])
                                left_token: <Left_Backtick '`'>
                                spids: [4544 4546]
                              ) (/) ($ VSub_Name '$func_normal_abspath_tpath')
                            }
                          spids: [4543]
                        )
                      ]
                      spids: [4543]
                    )
                  ]
                  spids: [4535 4536 4551 16777215]
                )
              ]
              spids: [4433 4437 4554]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_normal_abspath_tpath)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {($ VSub_Name '$ECHO')} 
                                    {(DQ ($ VSub_Name '$func_normal_abspath_tpath'))}
                                  )
                                  (C {($ VSub_Name '$SED')} {(-e)} 
                                    {(DQ ($ VSub_Name '$_G_removedotparts'))} {(-e)} {(DQ ($ VSub_Name '$_G_collapseslashes'))} {(-e)} {(DQ ($ VSub_Name '$_G_finalslash'))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [4571 4601]
                      )
                    }
                  spids: [4570]
                )
              ]
              spids: [4570]
            )
            (While
              cond: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(test)} {(/)} {(Lit_Other '=')} 
                                  {(DQ ($ VSub_Name '$func_normal_abspath_tpath'))}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(test)} {(-z)} 
                                          {(DQ ($ VSub_Name '$func_normal_abspath_result'))}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:func_normal_abspath_result)
                                          op: Equal
                                          rhs: {(/)}
                                          spids: [4650]
                                        )
                                      ]
                                      spids: [4650]
                                    )
                                  ]
                                  spids: [16777215 4647]
                                )
                              ]
                              spids: [16777215 4654]
                            )
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                          spids: [16777215 4629]
                        )
                      ]
                      spids: [16777215 4660]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_normal_abspath_tcomponent)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {($ VSub_Name '$ECHO')} 
                                            {(DQ ($ VSub_Name '$func_normal_abspath_tpath'))}
                                          )
                                          (C {($ VSub_Name '$SED')} {(-e)} 
                                            {(DQ ($ VSub_Name '$_G_pathcar'))}
                                          )
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [4664 4682]
                              )
                            }
                          spids: [4663]
                        )
                      ]
                      spids: [4663]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_normal_abspath_tpath)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {($ VSub_Name '$ECHO')} 
                                            {(DQ ($ VSub_Name '$func_normal_abspath_tpath'))}
                                          )
                                          (C {($ VSub_Name '$SED')} {(-e)} 
                                            {(DQ ($ VSub_Name '$_G_pathcdr'))}
                                          )
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [4686 4704]
                              )
                            }
                          spids: [4685]
                        )
                      ]
                      spids: [4685]
                    )
                    (Case
                      to_match: {($ VSub_Name '$func_normal_abspath_tcomponent')}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ )}]
                          spids: [16777215 4720 4727 16777215]
                        )
                        (case_arm
                          pat_list: [{(..)}]
                          action: [
                            (C {(func_dirname)} {(DQ ($ VSub_Name '$func_normal_abspath_result'))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:func_normal_abspath_result)
                                  op: Equal
                                  rhs: {($ VSub_Name '$func_dirname_result')}
                                  spids: [4745]
                                )
                              ]
                              spids: [4745]
                            )
                          ]
                          spids: [4730 4731 4749 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(func_append)} {(func_normal_abspath_result)} 
                              {(DQ (/) ($ VSub_Name '$func_normal_abspath_tcomponent'))}
                            )
                          ]
                          spids: [4752 4753 4770 16777215]
                        )
                      ]
                      spids: [4711 4715 4773]
                    )
                  ]
                  spids: [4609 4776]
                )
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_normal_abspath_result)
                  op: Equal
                  rhs: 
                    {($ VSub_Name '$func_normal_abspath_altnamespace') 
                      ($ VSub_Name '$func_normal_abspath_result')
                    }
                  spids: [4783]
                )
              ]
              spids: [4783]
            )
          ]
          spids: [4374]
        )
      spids: [4369 4373]
    )
    (FuncDef
      name: func_notquiet
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {($ VSub_Name '$opt_quiet')})
                (C {(func_echo)} 
                  {
                    (BracedVarSub
                      token: <VSub_Number 1>
                      suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                      spids: [4818 4824]
                    )
                  }
                )
              ]
            )
            (C {(Lit_Other ':')})
          ]
          spids: [4805]
        )
      spids: [4800 4804]
    )
    (FuncDef
      name: func_relative_path
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_relative_path_result)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [4867]
                )
              ]
              spids: [4867]
            )
            (C {(func_normal_abspath)} {(DQ ($ VSub_Number '$1'))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_relative_path_tlibdir)
                  op: Equal
                  rhs: {($ VSub_Name '$func_normal_abspath_result')}
                  spids: [4877]
                )
              ]
              spids: [4877]
            )
            (C {(func_normal_abspath)} {(DQ ($ VSub_Number '$2'))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_relative_path_tbindir)
                  op: Equal
                  rhs: {($ VSub_Name '$func_normal_abspath_result')}
                  spids: [4888]
                )
              ]
              spids: [4888]
            )
            (While
              cond: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {($ VSub_Name '$func_relative_path_tbindir')}
                      arms: [
                        (case_arm
                          pat_list: [{($ VSub_Name '$func_relative_path_tlibdir')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:func_relative_path_tcancelled)
                                  op: Equal
                                  rhs: {(EmptyPart)}
                                  spids: [4924]
                                )
                              ]
                              spids: [4924]
                            )
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                          spids: [4916 4917 4930 16777215]
                        )
                        (case_arm
                          pat_list: [{($ VSub_Name '$func_relative_path_tlibdir') (Lit_Other '*')}]
                          action: [
                            (C {(func_stripname)} {(DQ ($ VSub_Name '$func_relative_path_tlibdir'))} {(SQ )} 
                              {(DQ ($ VSub_Name '$func_relative_path_tbindir'))}
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:func_relative_path_tcancelled)
                                  op: Equal
                                  rhs: {($ VSub_Name '$func_stripname_result')}
                                  spids: [4956]
                                )
                              ]
                              spids: [4956]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(test)} {(-z)} 
                                          {(DQ ($ VSub_Name '$func_relative_path_result'))}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:func_relative_path_result)
                                          op: Equal
                                          rhs: {(.)}
                                          spids: [4974]
                                        )
                                      ]
                                      spids: [4974]
                                    )
                                  ]
                                  spids: [16777215 4971]
                                )
                              ]
                              spids: [16777215 4978]
                            )
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                          spids: [4933 4935 4984 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(func_dirname)} {($ VSub_Name '$func_relative_path_tlibdir')})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:func_relative_path_tlibdir)
                                  op: Equal
                                  rhs: {($ VSub_Name '$func_dirname_result')}
                                  spids: [4996]
                                )
                              ]
                              spids: [4996]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(test)} {(-z)} 
                                          {(DQ ($ VSub_Name '$func_relative_path_tlibdir'))}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:func_relative_path_result)
                                          op: Equal
                                          rhs: {(../) ($ VSub_Name '$func_relative_path_result')}
                                          spids: [5018]
                                        )
                                      ]
                                      spids: [5018]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:func_relative_path_tcancelled)
                                          op: Equal
                                          rhs: {($ VSub_Name '$func_relative_path_tbindir')}
                                          spids: [5023]
                                        )
                                      ]
                                      spids: [5023]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [16777215 5011]
                                )
                              ]
                              spids: [16777215 5030]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:func_relative_path_result)
                                  op: Equal
                                  rhs: {(../) ($ VSub_Name '$func_relative_path_result')}
                                  spids: [5033]
                                )
                              ]
                              spids: [5033]
                            )
                          ]
                          spids: [4987 4988 5038 16777215]
                        )
                      ]
                      spids: [4909 4913 5041]
                    )
                  ]
                  spids: [4902 5044]
                )
            )
            (C {(func_stripname)} {(SQ )} {(SQ </>)} {(DQ ($ VSub_Name '$func_relative_path_result'))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_relative_path_result)
                  op: Equal
                  rhs: {($ VSub_Name '$func_stripname_result')}
                  spids: [5066]
                )
              ]
              spids: [5066]
            )
            (C {(func_stripname)} {(SQ </>)} {(SQ </>)} 
              {(DQ ($ VSub_Name '$func_relative_path_tcancelled'))}
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$func_stripname_result'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_append)} {(func_relative_path_result)} 
                      {(DQ (/) ($ VSub_Name '$func_stripname_result'))}
                    )
                  ]
                  spids: [16777215 5096]
                )
              ]
              spids: [16777215 5109]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$func_relative_path_result'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_stripname)} {(SQ <./>)} {(SQ )} 
                      {(DQ ($ VSub_Name '$func_relative_path_result'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_relative_path_result)
                          op: Equal
                          rhs: {($ VSub_Name '$func_stripname_result')}
                          spids: [5145]
                        )
                      ]
                      spids: [5145]
                    )
                  ]
                  spids: [16777215 5128]
                )
              ]
              spids: [16777215 5149]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$func_relative_path_result'))})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:func_relative_path_result)
                      op: Equal
                      rhs: {(.)}
                      spids: [5163]
                    )
                  ]
                  spids: [5163]
                )
              ]
            )
            (C {(Lit_Other ':')})
          ]
          spids: [4860]
        )
      spids: [4855 4859]
    )
    (FuncDef
      name: func_quote_for_eval
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_quote_for_eval_unquoted_result)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [5213]
                )
              ]
              spids: [5213]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_quote_for_eval_result)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [5216]
                )
              ]
              spids: [5216]
            )
            (While
              cond: [
                (Sentence
                  child: (C {(test)} {(0)} {(-lt)} {($ VSub_Pound '$#')})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {($ VSub_Number '$1')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Lit_Other '*') (Lit_Other '[') 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\\\'>
                              ) (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\$'>
                              ) (Lit_Other ']') (Lit_Other '*')
                            }
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:_G_unquoted_arg)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(printf)} {(SQ <'%s\\n'>)} 
                                                    {(DQ ($ VSub_Number '$1'))}
                                                  )
                                                  (C {($ VSub_Name '$SED')} 
                                                    {(DQ ($ VSub_Name '$sed_quote_subst'))}
                                                  )
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [5252 5269]
                                      )
                                    }
                                  spids: [5251]
                                )
                              ]
                              spids: [5251]
                            )
                          ]
                          spids: [5240 5248 5271 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:_G_unquoted_arg)
                                  op: Equal
                                  rhs: {($ VSub_Number '$1')}
                                  spids: [5278]
                                )
                              ]
                              spids: [5278]
                            )
                          ]
                          spids: [5274 5275 5281 16777215]
                        )
                      ]
                      spids: [5233 5237 5284]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(test)} {(-n)} 
                                  {(DQ ($ VSub_Name '$func_quote_for_eval_unquoted_result'))}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(func_append)} {(func_quote_for_eval_unquoted_result)} 
                              {(DQ (' ') ($ VSub_Name '$_G_unquoted_arg'))}
                            )
                          ]
                          spids: [16777215 5298]
                        )
                      ]
                      else_action: [
                        (C {(func_append)} {(func_quote_for_eval_unquoted_result)} 
                          {(DQ ($ VSub_Name '$_G_unquoted_arg'))}
                        )
                      ]
                      spids: [5311 5323]
                    )
                    (Case
                      to_match: {($ VSub_Name '$_G_unquoted_arg')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Lit_Other '*') (Lit_Other '[') 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\['>
                              ) (EscapedLiteralPart token:<Lit_EscapedChar '\\~'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\#'>) 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\^'>
                              ) (EscapedLiteralPart token:<Lit_EscapedChar '\\&'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\*'>) 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\('>
                              ) (EscapedLiteralPart token:<Lit_EscapedChar '\\)'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\{'>) 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\}'>
                              ) (EscapedLiteralPart token:<Lit_EscapedChar '\\|'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\;'>) 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\<'>
                              ) (EscapedLiteralPart token:<Lit_EscapedChar '\\>'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\?'>) 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar "\\'">
                              ) (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (EscapedLiteralPart token:<Lit_EscapedChar '\\\t'>) 
                              (Lit_Other ']') (Lit_Other '*')
                            }
                            {(Lit_Other '*') (Lit_Other ']') (Lit_Other '*')}
                            {(DQ )}
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:_G_quoted_arg)
                                  op: Equal
                                  rhs: 
                                    {(EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                                      ($ VSub_Name '$_G_unquoted_arg') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                                    }
                                  spids: [5386]
                                )
                              ]
                              spids: [5386]
                            )
                          ]
                          spids: [5354 5383 5392 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:_G_quoted_arg)
                                  op: Equal
                                  rhs: {($ VSub_Name '$_G_unquoted_arg')}
                                  spids: [5399]
                                )
                              ]
                              spids: [5399]
                            )
                          ]
                          spids: [5395 5396 5403 16777215]
                        )
                      ]
                      spids: [5327 5331 5406]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$func_quote_for_eval_result'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(func_append)} {(func_quote_for_eval_result)} 
                              {(DQ (' ') ($ VSub_Name '$_G_quoted_arg'))}
                            )
                          ]
                          spids: [16777215 5421]
                        )
                      ]
                      else_action: [
                        (C {(func_append)} {(func_quote_for_eval_result)} 
                          {(DQ ($ VSub_Name '$_G_quoted_arg'))}
                        )
                      ]
                      spids: [5434 5446]
                    )
                    (C {(shift)})
                  ]
                  spids: [5230 5452]
                )
            )
          ]
          spids: [5206]
        )
      spids: [5201 5205]
    )
    (FuncDef
      name: func_quote_for_expand
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Case
              to_match: {($ VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (Lit_Other '[') 
                      (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                      (Lit_Other ']') (Lit_Other '*')
                    }
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_arg)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Number '$1'))})
                                          (C {($ VSub_Name '$SED')} {(-e)} 
                                            {(DQ ($ VSub_Name '$sed_double_quote_subst'))} {(-e)} {(DQ ($ VSub_Name '$sed_double_backslash'))}
                                          )
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [5500 5524]
                              )
                            }
                          spids: [5499]
                        )
                      ]
                      spids: [5499]
                    )
                  ]
                  spids: [5489 5496 5526 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_arg)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [5533]
                        )
                      ]
                      spids: [5533]
                    )
                  ]
                  spids: [5529 5530 5536 16777215]
                )
              ]
              spids: [5482 5486 5539]
            )
            (Case
              to_match: {($ VSub_Name '$_G_arg')}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (Lit_Other '[') 
                      (EscapedLiteralPart token:<Lit_EscapedChar '\\['>) (EscapedLiteralPart token:<Lit_EscapedChar '\\~'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\#'>) 
                      (EscapedLiteralPart token:<Lit_EscapedChar '\\^'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\&'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\*'>) 
                      (EscapedLiteralPart token:<Lit_EscapedChar '\\('>) (EscapedLiteralPart token:<Lit_EscapedChar '\\)'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\{'>) 
                      (EscapedLiteralPart token:<Lit_EscapedChar '\\}'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\|'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\;'>) 
                      (EscapedLiteralPart token:<Lit_EscapedChar '\\<'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\>'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\?'>) 
                      (EscapedLiteralPart token:<Lit_EscapedChar "\\'">) (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (EscapedLiteralPart token:<Lit_EscapedChar '\\\t'>) 
                      (Lit_Other ']') (Lit_Other '*')
                    }
                    {(Lit_Other '*') (Lit_Other ']') (Lit_Other '*')}
                    {(DQ )}
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_arg)
                          op: Equal
                          rhs: 
                            {(EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                              ($ VSub_Name '$_G_arg') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                            }
                          spids: [5598]
                        )
                      ]
                      spids: [5598]
                    )
                  ]
                  spids: [5566 5595 5604 16777215]
                )
              ]
              spids: [5543 5547 5607]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_quote_for_expand_result)
                  op: Equal
                  rhs: {($ VSub_Name '$_G_arg')}
                  spids: [5611]
                )
              ]
              spids: [5611]
            )
          ]
          spids: [5475]
        )
      spids: [5470 5474]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$_G_HAVE_XSI_OPS'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(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'> <'  }'>
                )
              }
            )
          ]
          spids: [16777215 5649]
        )
      ]
      else_action: [
        (FuncDef
          name: func_stripname
          body: 
            (BraceGroup
              children: [
                (C {($ VSub_Name '$debug_cmd')})
                (Case
                  to_match: {($ VSub_Number '$2')}
                  arms: [
                    (case_arm
                      pat_list: [{(.) (Lit_Other '*')}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:func_stripname_result)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Number '$3'))})
                                              (C {($ VSub_Name '$SED')} {(-e)} 
                                                {(DQ ('s%^') ($ VSub_Number '$1') ('%%'))} {(-e)} 
                                                {
                                                  (DQ ('s%') 
                                                    (EscapedLiteralPart
                                                      token: <Lit_EscapedChar '\\\\'>
                                                    ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ($ VSub_Number '$2') 
                                                    (EscapedLiteralPart
                                                      token: <Lit_EscapedChar '\\$'>
                                                    ) ('%%')
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [5695 5724]
                                  )
                                }
                              spids: [5694]
                            )
                          ]
                          spids: [5694]
                        )
                      ]
                      spids: [5690 5692 5725 16777215]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other '*')}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:func_stripname_result)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Number '$3'))})
                                              (C {($ VSub_Name '$SED')} {(-e)} 
                                                {(DQ ('s%^') ($ VSub_Number '$1') ('%%'))} {(-e)} {(DQ ('s%') ($ VSub_Number '$2') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('%%'))}
                                              )
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [5732 5759]
                                  )
                                }
                              spids: [5731]
                            )
                          ]
                          spids: [5731]
                        )
                      ]
                      spids: [5728 5729 5760 16777215]
                    )
                  ]
                  spids: [5683 5687 5763]
                )
              ]
              spids: [5676]
            )
          spids: [5670 5674]
        )
      ]
      spids: [5667 5768]
    )
    (FuncDef
      name: func_show_eval
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_cmd)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [5799]
                )
              ]
              spids: [5799]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_fail_exp)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 2>
                        suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ <':'>)})
                        spids: [5804 5810]
                      )
                    }
                  spids: [5803]
                )
              ]
              spids: [5803]
            )
            (C {(func_quote_for_expand)} {(DQ ($ VSub_Name '$_G_cmd'))})
            (C {(eval)} {(DQ ('func_notquiet ') ($ VSub_Name '$func_quote_for_expand_result'))})
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {($ VSub_Name '$opt_dry_run')})
                (BraceGroup
                  children: [
                    (C {(eval)} {(DQ ($ VSub_Name '$_G_cmd'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_status)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [5844]
                        )
                      ]
                      spids: [5844]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(0)} {(-ne)} {(DQ ($ VSub_Name '$_G_status'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(eval)} 
                              {
                                (DQ ('(exit ') ($ VSub_Name '$_G_status') ('); ') 
                                  ($ VSub_Name '$_G_fail_exp')
                                )
                              }
                            )
                          ]
                          spids: [16777215 5861]
                        )
                      ]
                      spids: [16777215 5874]
                    )
                  ]
                  spids: [5834]
                )
              ]
            )
          ]
          spids: [5792]
        )
      spids: [5787 5791]
    )
    (FuncDef
      name: func_show_eval_locale
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_cmd)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [5910]
                )
              ]
              spids: [5910]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_fail_exp)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 2>
                        suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ <':'>)})
                        spids: [5915 5921]
                      )
                    }
                  spids: [5914]
                )
              ]
              spids: [5914]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {($ VSub_Name '$opt_quiet')})
                (BraceGroup
                  children: [
                    (C {(func_quote_for_expand)} {(DQ ($ VSub_Name '$_G_cmd'))})
                    (C {(eval)} {(DQ ('func_echo ') ($ VSub_Name '$func_quote_for_expand_result'))})
                  ]
                  spids: [5929]
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {($ VSub_Name '$opt_dry_run')})
                (BraceGroup
                  children: [
                    (C {(eval)} 
                      {
                        (DQ ($ VSub_Name '$_G_user_locale') ('\n') ('\t    ') ($ VSub_Name '$_G_cmd'))
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_status)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [5968]
                        )
                      ]
                      spids: [5968]
                    )
                    (C {(eval)} {(DQ ($ VSub_Name '$_G_safe_locale'))})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(0)} {(-ne)} {(DQ ($ VSub_Name '$_G_status'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(eval)} 
                              {
                                (DQ ('(exit ') ($ VSub_Name '$_G_status') ('); ') 
                                  ($ VSub_Name '$_G_fail_exp')
                                )
                              }
                            )
                          ]
                          spids: [16777215 5992]
                        )
                      ]
                      spids: [16777215 6005]
                    )
                  ]
                  spids: [5955]
                )
              ]
            )
          ]
          spids: [5903]
        )
      spids: [5898 5902]
    )
    (FuncDef
      name: func_tr_sh
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Case
              to_match: {($ VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')}
                    {(Lit_Other '*') (Lit_Other '[') (KW_Bang '!') (a-zA-Z0-9_) (Lit_Other ']') 
                      (Lit_Other '*')
                    }
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_tr_sh_result)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Number '$1'))})
                                          (C {($ VSub_Name '$SED')} {(-e)} 
                                            {(SQ <'s/^\\([0-9]\\)/_\\1/'>)} {(-e)} {(SQ <'s/[^a-zA-Z0-9_]/_/g'>)}
                                          )
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [6068 6090]
                              )
                            }
                          spids: [6067]
                        )
                      ]
                      spids: [6067]
                    )
                  ]
                  spids: [6051 6064 6093 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_tr_sh_result)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [6101]
                        )
                      ]
                      spids: [6101]
                    )
                  ]
                  spids: [6096 6098 6105 16777215]
                )
              ]
              spids: [6044 6048 6108]
            )
          ]
          spids: [6037]
        )
      spids: [6032 6036]
    )
    (FuncDef
      name: func_verbose
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (AndOr
              ops: [Op_DAmp]
              children: [(C {($ VSub_Name '$opt_verbose')}) (C {(func_echo)} {(DQ ($ VSub_Star '$*'))})]
            )
            (C {(Lit_Other ':')})
          ]
          spids: [6128]
        )
      spids: [6123 6127]
    )
    (FuncDef
      name: func_warn_and_continue
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {($ VSub_Name '$require_term_colors')})
            (SimpleCommand
              words: [
                {(func_echo_infix_1)}
                {(DQ (${ VSub_Name tc_red) (warning) ($ VSub_Name '$tc_reset'))}
                {(DQ ($ VSub_Star '$*'))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[6192])]
            )
          ]
          spids: [6167]
        )
      spids: [6162 6166]
    )
    (FuncDef
      name: func_warning
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Case
              to_match: {(DQ (' ') ($ VSub_Name '$warning_categories') (' '))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (DQ (' ') ($ VSub_Number '$1') (' ')) (Lit_Other '*')}]
                  spids: [6244 6251 6253 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(func_internal_error)} 
                      {(DQ ("invalid warning category '") ($ VSub_Number '$1') ("'"))}
                    )
                  ]
                  spids: [6256 6257 6267 16777215]
                )
              ]
              spids: [6233 6241 6270]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_category)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [6274]
                )
              ]
              spids: [6274]
            )
            (C {(shift)})
            (Case
              to_match: {(DQ (' ') ($ VSub_Name '$opt_warning_types') (' '))}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (DQ (' ') ($ VSub_Name '$_G_category') (' ')) (Lit_Other '*')}
                  ]
                  action: [
                    (C {($ VSub_Name '$warning_func')} 
                      {
                        (BracedVarSub
                          token: <VSub_Number 1>
                          suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                          spids: [6304 6310]
                        )
                      }
                    )
                  ]
                  spids: [6293 6300 6312 16777215]
                )
              ]
              spids: [6282 6290 6315]
            )
          ]
          spids: [6222]
        )
      spids: [6217 6221]
    )
    (FuncDef
      name: func_sort_ver
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Pipeline
              children: [
                (C {(printf)} {(SQ <'%s\\n%s\\n'>)} {(DQ ($ VSub_Number '$1'))} 
                  {(DQ ($ VSub_Number '$2'))}
                )
                (C {(sort)} {(-t.)} {(-k)} {(1) (Lit_Comma ',') (1n)} {(-k)} {(2) (Lit_Comma ',') (2n)} 
                  {(-k)} {(3) (Lit_Comma ',') (3n)} {(-k)} {(4) (Lit_Comma ',') (4n)} {(-k)} {(5) (Lit_Comma ',') (5n)} {(-k)} 
                  {(6) (Lit_Comma ',') (6n)} {(-k)} {(7) (Lit_Comma ',') (7n)} {(-k)} {(8) (Lit_Comma ',') (8n)} {(-k)} {(9) (Lit_Comma ',') (9n)}
                )
              ]
              negated: F
            )
          ]
          spids: [6353]
        )
      spids: [6348 6352]
    )
    (FuncDef
      name: func_lt_ver
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(test)} {(DQ (x) ($ VSub_Number '$1'))} {(Lit_Other '=')} 
              {(x) 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(func_sort_ver)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))})
                            (C {($ VSub_Name '$SED')} {(1q)})
                          ]
                          negated: F
                        )
                      ]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [6479 6495]
                )
              }
            )
          ]
          spids: [6462]
        )
      spids: [6457 6461]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:scriptversion)
              op: Equal
              rhs: {(2014-01-07.03)}
              spids: [6529]
            )
          ]
          spids: [6529]
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:usage)
          op: Equal
          rhs: {(SQ <'$progpath [OPTION]...'>)}
          spids: [6734]
        )
      ]
      spids: [6734]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:usage_message)
          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')
              )
            }
          spids: [6749]
        )
      ]
      spids: [6749]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:long_help_message)
          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")
              )
            }
          spids: [6764]
        )
      ]
      spids: [6764]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:fatal_help)
          op: Equal
          rhs: 
            {
              (DQ ("Try '") (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                ("progname --help' for more information.")
              )
            }
          spids: [6777]
        )
      ]
      spids: [6777]
    )
    (FuncDef
      name: func_hookable
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(func_append)} {(hookable_fns)} {(DQ (' ') ($ VSub_Number '$1'))})
          ]
          spids: [6824]
        )
      spids: [6819 6823]
    )
    (FuncDef
      name: func_add_hook
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Case
              to_match: {(DQ (' ') ($ VSub_Name '$hookable_fns') (' '))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (DQ (' ') ($ VSub_Number '$1') (' ')) (Lit_Other '*')}]
                  spids: [6879 6886 6888 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(func_fatal_error)} 
                      {(DQ ("'") ($ VSub_Number '$1') ("' does not accept hook functions."))}
                    )
                  ]
                  spids: [6891 6892 6902 16777215]
                )
              ]
              spids: [6868 6876 6905]
            )
            (C {(eval)} {(func_append)} {(${ VSub_Number 1) (_hooks)} {(SQ <'" $2"'>)})
          ]
          spids: [6861]
        )
      spids: [6856 6860]
    )
    (FuncDef
      name: func_remove_hook
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(eval)} 
              {(${ VSub_Number 1) (Lit_VarLike '_hooks=') (SQ <'`$ECHO "\\$'>) ($ VSub_Number '$1') 
                (SQ <'_hooks" |$SED "s| '>) ($ VSub_Number '$2') (SQ <'||"`'>)
              }
            )
          ]
          spids: [6940]
        )
      spids: [6935 6939]
    )
    (FuncDef
      name: func_run_hooks
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Case
              to_match: {(DQ (' ') ($ VSub_Name '$hookable_fns') (' '))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (DQ (' ') ($ VSub_Number '$1') (' ')) (Lit_Other '*')}]
                  spids: [7013 7020 7022 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(func_fatal_error)} 
                      {(DQ ("'") ($ VSub_Number '$1') ("' does not support hook funcions.n"))}
                    )
                  ]
                  spids: [7025 7026 7036 16777215]
                )
              ]
              spids: [7002 7010 7039]
            )
            (Sentence
              child: 
                (C {(eval)} 
                  {(Lit_VarLike '_G_hook_fns=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                    ($ VSub_Number '$1') (_hooks)
                  }
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (ForEach
              iter_name: _G_hook
              iter_words: [{($ VSub_Name '$_G_hook_fns')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (C {(eval)} {($ VSub_Name '$_G_hook')} {(SQ <'"$@"'>)})
                    (C {(eval)} 
                      {(Lit_VarLike '_G_hook_result=') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (${ VSub_Name _G_hook) (_result)
                      }
                    )
                    (Sentence
                      child: (C {(eval)} {(set)} {(dummy)} {(DQ ($ VSub_Name '$_G_hook_result'))})
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                  ]
                  spids: [7064 7109]
                )
              spids: [7060 7062]
            )
            (C {(func_quote_for_eval)} 
              {
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                  spids: [7115 7121]
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_run_hooks_result)
                  op: Equal
                  rhs: {($ VSub_Name '$func_quote_for_eval_result')}
                  spids: [7124]
                )
              ]
              spids: [7124]
            )
          ]
          spids: [6995]
        )
      spids: [6990 6994]
    )
    (C {(func_hookable)} {(func_options)})
    (FuncDef
      name: func_options
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(func_options_prep)} 
              {
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                  spids: [7363 7369]
                )
              }
            )
            (C {(eval)} {(func_parse_options)} 
              {
                (BracedVarSub
                  token: <VSub_Name func_options_prep_result>
                  suffix_op: 
                    (StringUnary
                      op_id: VTest_Plus
                      arg_word: {(DQ ($ VSub_Name '$func_options_prep_result'))}
                    )
                  spids: [7378 7384]
                )
              }
            )
            (C {(eval)} {(func_validate_options)} 
              {
                (BracedVarSub
                  token: <VSub_Name func_parse_options_result>
                  suffix_op: 
                    (StringUnary
                      op_id: VTest_Plus
                      arg_word: {(DQ ($ VSub_Name '$func_parse_options_result'))}
                    )
                  spids: [7393 7399]
                )
              }
            )
            (C {(eval)} {(func_run_hooks)} {(func_options)} 
              {
                (BracedVarSub
                  token: <VSub_Name func_validate_options_result>
                  suffix_op: 
                    (StringUnary
                      op_id: VTest_Plus
                      arg_word: {(DQ ($ VSub_Name '$func_validate_options_result'))}
                    )
                  spids: [7411 7417]
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_options_result)
                  op: Equal
                  rhs: {($ VSub_Name '$func_run_hooks_result')}
                  spids: [7425]
                )
              ]
              spids: [7425]
            )
          ]
          spids: [7354]
        )
      spids: [7349 7353]
    )
    (C {(func_hookable)} {(func_options_prep)})
    (FuncDef
      name: func_options_prep
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:opt_verbose)
                  op: Equal
                  rhs: {(false)}
                  spids: [7476]
                )
              ]
              spids: [7476]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:opt_warning_types)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [7480]
                )
              ]
              spids: [7480]
            )
            (C {(func_run_hooks)} {(func_options_prep)} 
              {
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                  spids: [7488 7494]
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_options_prep_result)
                  op: Equal
                  rhs: {($ VSub_Name '$func_run_hooks_result')}
                  spids: [7502]
                )
              ]
              spids: [7502]
            )
          ]
          spids: [7465]
        )
      spids: [7460 7464]
    )
    (C {(func_hookable)} {(func_parse_options)})
    (FuncDef
      name: func_parse_options
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_parse_options_result)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [7534]
                )
              ]
              spids: [7534]
            )
            (While
              cond: [
                (Sentence
                  child: (C {(test)} {($ VSub_Pound '$#')} {(-gt)} {(0)})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (C {(func_run_hooks)} {(func_parse_options)} 
                      {
                        (BracedVarSub
                          token: <VSub_Number 1>
                          suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                          spids: [7568 7574]
                        )
                      }
                    )
                    (Sentence
                      child: 
                        (C {(eval)} {(set)} {(dummy)} {(DQ ($ VSub_Name '$func_run_hooks_result'))})
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {($ VSub_Pound '$#')} {(-gt)} {(0)})
                        (ControlFlow token:<ControlFlow_Break break>)
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_opt)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [7615]
                        )
                      ]
                      spids: [7615]
                    )
                    (C {(shift)})
                    (Case
                      to_match: {($ VSub_Name '$_G_opt')}
                      arms: [
                        (case_arm
                          pat_list: [{(--debug)} {(-x)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:debug_cmd)
                                  op: Equal
                                  rhs: {(SQ <'set -x'>)}
                                  spids: [7634]
                                )
                              ]
                              spids: [7634]
                            )
                            (C {(func_echo)} {(DQ ('enabling shell trace mode'))})
                            (C {($ VSub_Name '$debug_cmd')})
                          ]
                          spids: [7629 7632 7650 16777215]
                        )
                        (case_arm
                          pat_list: [{(--no-warnings)} {(--no-warning)} {(--no-warn)}]
                          action: [
                            (C {(set)} {(dummy)} {(--warnings)} {(none)} 
                              {
                                (BracedVarSub
                                  token: <VSub_Number 1>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VTest_Plus
                                      arg_word: {(DQ ($ VSub_At '$@'))}
                                    )
                                  spids: [7670 7676]
                                )
                              }
                            )
                            (C {(shift)})
                          ]
                          spids: [7654 7659 7682 16777215]
                        )
                        (case_arm
                          pat_list: [{(--warnings)} {(--warning)} {(-W)}]
                          action: [
                            (AndOr
                              ops: [Op_DAmp Op_DAmp]
                              children: [
                                (C {(test)} {($ VSub_Pound '$#')} {(Lit_Other '=')} {(0)})
                                (C {(func_missing_arg)} {($ VSub_Name '$_G_opt')})
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                            )
                            (Case
                              to_match: 
                                {
                                  (DQ (' ') ($ VSub_Name '$warning_categories') (' ') 
                                    ($ VSub_Number '$1')
                                  )
                                }
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {(Lit_Other '*') (DQ (' ') ($ VSub_Number '$1') (' ')) 
                                      (Lit_Other '*')
                                    }
                                  ]
                                  action: [
                                    (C {(func_append_uniq)} {(opt_warning_types)} 
                                      {(DQ (' ') ($ VSub_Number '$1'))}
                                    )
                                  ]
                                  spids: [7725 7732 7749 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*') (all)}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:opt_warning_types)
                                          op: Equal
                                          rhs: {($ VSub_Name '$warning_categories')}
                                          spids: [7757]
                                        )
                                      ]
                                      spids: [7757]
                                    )
                                  ]
                                  spids: [7752 7754 7761 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*') (none)}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:opt_warning_types)
                                          op: Equal
                                          rhs: {(none)}
                                          spids: [7769]
                                        )
                                      ]
                                      spids: [7769]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:warning_func)
                                          op: Equal
                                          rhs: {(Lit_Other ':')}
                                          spids: [7773]
                                        )
                                      ]
                                      spids: [7773]
                                    )
                                  ]
                                  spids: [7764 7766 7777 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*') (error)}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:opt_warning_types)
                                          op: Equal
                                          rhs: {($ VSub_Name '$warning_categories')}
                                          spids: [7785]
                                        )
                                      ]
                                      spids: [7785]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:warning_func)
                                          op: Equal
                                          rhs: {(func_fatal_error)}
                                          spids: [7789]
                                        )
                                      ]
                                      spids: [7789]
                                    )
                                  ]
                                  spids: [7780 7782 7793 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (C {(func_fatal_error)} 
                                      {
                                        (DQ ("unsupported warning category: '") ($ VSub_Number '$1') 
                                          ("'")
                                        )
                                      }
                                    )
                                  ]
                                  spids: [7796 7797 7811 16777215]
                                )
                              ]
                              spids: [7713 7722 7814]
                            )
                            (C {(shift)})
                          ]
                          spids: [7686 7691 7820 16777215]
                        )
                        (case_arm
                          pat_list: [{(--verbose)} {(-v)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_verbose)
                                  op: Equal
                                  rhs: {(Lit_Other ':')}
                                  spids: [7829]
                                )
                              ]
                              spids: [7829]
                            )
                          ]
                          spids: [7824 7827 7832 16777215]
                        )
                        (case_arm
                          pat_list: [{(--version)}]
                          action: [(C {(func_version)})]
                          spids: [7835 7836 7840 16777215]
                        )
                        (case_arm
                          pat_list: [{(-) (EscapedLiteralPart token:<Lit_EscapedChar '\\?'>)} {(-h)}]
                          action: [(C {(func_usage)})]
                          spids: [7843 7847 7851 16777215]
                        )
                        (case_arm
                          pat_list: [{(--help)}]
                          action: [(C {(func_help)})]
                          spids: [7854 7855 7859 16777215]
                        )
                        (case_arm
                          pat_list: [{(--) (Lit_Other '*') (Lit_Other '=') (Lit_Other '*')}]
                          action: [
                            (C {(func_split_equals)} {(DQ ($ VSub_Name '$_G_opt'))})
                            (C {(set)} {(dummy)} {(DQ ($ VSub_Name '$func_split_equals_lhs'))} 
                              {(DQ ($ VSub_Name '$func_split_equals_rhs'))} 
                              {
                                (BracedVarSub
                                  token: <VSub_Number 1>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VTest_Plus
                                      arg_word: {(DQ ($ VSub_At '$@'))}
                                    )
                                  spids: [7894 7900]
                                )
                              }
                            )
                            (C {(shift)})
                          ]
                          spids: [7867 7871 7906 16777215]
                        )
                        (case_arm
                          pat_list: [{(-W) (Lit_Other '*')}]
                          action: [
                            (C {(func_split_short_opt)} {(DQ ($ VSub_Name '$_G_opt'))})
                            (C {(set)} {(dummy)} {(DQ ($ VSub_Name '$func_split_short_opt_name'))} 
                              {(DQ ($ VSub_Name '$func_split_short_opt_arg'))} 
                              {
                                (BracedVarSub
                                  token: <VSub_Number 1>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VTest_Plus
                                      arg_word: {(DQ ($ VSub_At '$@'))}
                                    )
                                  spids: [7940 7946]
                                )
                              }
                            )
                            (C {(shift)})
                          ]
                          spids: [7914 7916 7952 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(-) (EscapedLiteralPart token:<Lit_EscapedChar '\\?'>) (Lit_Other '*')}
                            {(-h) (Lit_Other '*')}
                            {(-v) (Lit_Other '*')}
                            {(-x) (Lit_Other '*')}
                          ]
                          action: [
                            (C {(func_split_short_opt)} {(DQ ($ VSub_Name '$_G_opt'))})
                            (C {(set)} {(dummy)} {(DQ ($ VSub_Name '$func_split_short_opt_name'))} 
                              {(DQ (-) ($ VSub_Name '$func_split_short_opt_arg'))} 
                              {
                                (BracedVarSub
                                  token: <VSub_Number 1>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VTest_Plus
                                      arg_word: {(DQ ($ VSub_At '$@'))}
                                    )
                                  spids: [7997 8003]
                                )
                              }
                            )
                            (C {(shift)})
                          ]
                          spids: [7960 7972 8009 16777215]
                        )
                        (case_arm
                          pat_list: [{(--)}]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [8013 8014 8018 16777215]
                        )
                        (case_arm
                          pat_list: [{(-) (Lit_Other '*')}]
                          action: [
                            (C {(func_fatal_help)} 
                              {(DQ ("unrecognised option: '") ($ VSub_Name '$_G_opt') ("'"))}
                            )
                          ]
                          spids: [8021 8023 8033 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (Sentence
                              child: 
                                (C {(set)} {(dummy)} {(DQ ($ VSub_Name '$_G_opt'))} 
                                  {
                                    (BracedVarSub
                                      token: <VSub_Number 1>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_Plus
                                          arg_word: {(DQ ($ VSub_At '$@'))}
                                        )
                                      spids: [8047 8053]
                                    )
                                  }
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                          spids: [8036 8037 8061 16777215]
                        )
                      ]
                      spids: [7622 7626 8064]
                    )
                  ]
                  spids: [7553 8067]
                )
            )
            (C {(func_quote_for_eval)} 
              {
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                  spids: [8077 8083]
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_parse_options_result)
                  op: Equal
                  rhs: {($ VSub_Name '$func_quote_for_eval_result')}
                  spids: [8086]
                )
              ]
              spids: [8086]
            )
          ]
          spids: [7527]
        )
      spids: [7522 7526]
    )
    (C {(func_hookable)} {(func_validate_options)})
    (FuncDef
      name: func_validate_options
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$opt_warning_types'))})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:opt_warning_types)
                      op: Equal
                      rhs: {(DQ (' ') ($ VSub_Name '$warning_categories'))}
                      spids: [8135]
                    )
                  ]
                  spids: [8135]
                )
              ]
            )
            (C {(func_run_hooks)} {(func_validate_options)} 
              {
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                  spids: [8147 8153]
                )
              }
            )
            (C {($ VSub_Name '$exit_cmd')} {($ VSub_Name '$EXIT_FAILURE')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_validate_options_result)
                  op: Equal
                  rhs: {($ VSub_Name '$func_run_hooks_result')}
                  spids: [8171]
                )
              ]
              spids: [8171]
            )
          ]
          spids: [8114]
        )
      spids: [8109 8113]
    )
    (FuncDef
      name: func_fatal_help
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(eval)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (ECHO)} 
              {(EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                (DQ ('Usage: ') ($ VSub_Name '$usage')) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
              }
            )
            (C {(eval)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (ECHO)} 
              {(EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (DQ ($ VSub_Name '$fatal_help')) 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
              }
            )
            (C {(func_error)} 
              {
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                  spids: [8248 8254]
                )
              }
            )
            (ControlFlow
              token: <ControlFlow_Exit exit>
              arg_word: {($ VSub_Name '$EXIT_FAILURE')}
            )
          ]
          spids: [8214]
        )
      spids: [8209 8213]
    )
    (FuncDef
      name: func_help
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(func_usage_message)})
            (C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Name '$long_help_message'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
          ]
          spids: [8279]
        )
      spids: [8274 8278]
    )
    (FuncDef
      name: func_missing_arg
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(func_error)} {(DQ ("Missing argument for '") ($ VSub_Number '$1') ("'."))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:exit_cmd)
                  op: Equal
                  rhs: {(ControlFlow_Exit exit)}
                  spids: [8337]
                )
              ]
              spids: [8337]
            )
          ]
          spids: [8321]
        )
      spids: [8316 8320]
    )
    (AndOr
      ops: [Op_DAmp Op_DAmp]
      children: [
        (C {(test)} {(-z)} {(DQ ($ VSub_Name '$_G_HAVE_XSI_OPS'))})
        (Subshell
          child: 
            (C {(eval)} 
              {(SQ <'x=a/b/c;\n'> <'      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"'>)}
            )
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[8377])]
          spids: [8368 8375]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:_G_HAVE_XSI_OPS) op:Equal rhs:{(yes)} spids:[8384])]
          spids: [8384]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$_G_HAVE_XSI_OPS'))})]
          action: [
            (C {(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'> <'  }'>
                )
              }
            )
          ]
          spids: [16777215 8400]
        )
      ]
      else_action: [
        (FuncDef
          name: func_split_equals
          body: 
            (BraceGroup
              children: [
                (C {($ VSub_Name '$debug_cmd')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:func_split_equals_lhs)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(expr)} {(DQ (x) ($ VSub_Number '$1'))} {(Lit_Other ':')} 
                                    {(SQ <'x\\([^=]*\\)'>)}
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [8442 8455]
                          )
                        }
                      spids: [8441]
                    )
                  ]
                  spids: [8441]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:func_split_equals_rhs)
                      op: Equal
                      rhs: {(EmptyPart)}
                      spids: [8458]
                    )
                  ]
                  spids: [8458]
                )
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(test)} {(DQ (x) ($ VSub_Name '$func_split_equals_lhs'))} {(Lit_Other '=')} 
                      {(DQ (x) ($ VSub_Number '$1'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_split_equals_rhs)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(expr)} {(DQ (x) ($ VSub_Number '$1'))} {(Lit_Other ':')} 
                                        {(SQ <'x[^=]*=\\(.*\\)$'>)}
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [8480 8493]
                              )
                            }
                          spids: [8479]
                        )
                      ]
                      spids: [8479]
                    )
                  ]
                )
              ]
              spids: [8434]
            )
          spids: [8428 8432]
        )
      ]
      spids: [8421 8498]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$_G_HAVE_XSI_OPS'))})]
          action: [
            (C {(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'> <'  }'>
                )
              }
            )
          ]
          spids: [16777215 8529]
        )
      ]
      else_action: [
        (FuncDef
          name: func_split_short_opt
          body: 
            (BraceGroup
              children: [
                (C {($ VSub_Name '$debug_cmd')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:func_split_short_opt_name)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(expr)} {(DQ (x) ($ VSub_Number '$1'))} {(Lit_Other ':')} 
                                    {(SQ <'x-\\(.\\)'>)}
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [8569 8582]
                          )
                        }
                      spids: [8568]
                    )
                  ]
                  spids: [8568]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:func_split_short_opt_arg)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(expr)} {(DQ (x) ($ VSub_Number '$1'))} {(Lit_Other ':')} 
                                    {(SQ <'x-.\\(.*\\)$'>)}
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [8586 8599]
                          )
                        }
                      spids: [8585]
                    )
                  ]
                  spids: [8585]
                )
              ]
              spids: [8561]
            )
          spids: [8555 8559]
        )
      ]
      spids: [8548 8604]
    )
    (FuncDef
      name: func_usage
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(func_usage_message)})
            (C {($ VSub_Name '$ECHO')} 
              {
                (DQ ("Run '") ($ VSub_Name '$progname') (' --help |') 
                  (BracedVarSub
                    token: <VSub_Name PAGER>
                    suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(more)})
                    spids: [8641 8645]
                  ) ("' for full usage")
                )
              }
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
          ]
          spids: [8625]
        )
      spids: [8620 8624]
    )
    (FuncDef
      name: func_usage_message
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(eval)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (ECHO)} 
              {(EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                (DQ ('Usage: ') ($ VSub_Name '$usage')) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
              }
            )
            (C {(echo)})
            (SimpleCommand
              words: [
                {($ VSub_Name '$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
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$progpath'))}
                  spids: [8708]
                )
              ]
            )
            (C {(echo)})
            (C {(eval)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (ECHO)} 
              {(EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (DQ ($ VSub_Name '$usage_message')) 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
              }
            )
          ]
          spids: [8672]
        )
      spids: [8667 8671]
    )
    (FuncDef
      name: func_version
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(printf)} {(SQ <'%s\\n'>)} 
              {(DQ ($ VSub_Name '$progname') (' ') ($ VSub_Name '$scriptversion'))}
            )
            (SimpleCommand
              words: [
                {($ VSub_Name '$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
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$progpath'))}
                  spids: [8794]
                )
              ]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_QMark '$?')})
          ]
          spids: [8747]
        )
      spids: [8742 8746]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:scriptversion)
          op: Equal
          rhs: {(SQ <'(GNU libtool) 2.4.6'>)}
          spids: [8835]
        )
      ]
      spids: [8835]
    )
    (FuncDef
      name: func_echo
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_G_message)
                  op: Equal
                  rhs: {($ VSub_Star '$*')}
                  spids: [8866]
                )
              ]
              spids: [8866]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_echo_IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$IFS')}
                  spids: [8871]
                )
              ]
              spids: [8871]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$nl')}
                  spids: [8875]
                )
              ]
              spids: [8875]
            )
            (ForEach
              iter_name: _G_line
              iter_words: [{($ VSub_Name '$_G_message')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {($ VSub_Name '$func_echo_IFS')}
                          spids: [8891]
                        )
                      ]
                      spids: [8891]
                    )
                    (C {($ VSub_Name '$ECHO')} 
                      {
                        (DQ ($ VSub_Name '$progname') 
                          (BracedVarSub
                            token: <VSub_Name opt_mode>
                            suffix_op: 
                              (StringUnary
                                op_id: VTest_Plus
                                arg_word: {(': ') ($ VSub_Name '$opt_mode')}
                              )
                            spids: [8899 8904]
                          ) (': ') ($ VSub_Name '$_G_line')
                        )
                      }
                    )
                  ]
                  spids: [8888 8910]
                )
              spids: [8884 8886]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$func_echo_IFS')}
                  spids: [8913]
                )
              ]
              spids: [8913]
            )
          ]
          spids: [8859]
        )
      spids: [8854 8858]
    )
    (FuncDef
      name: func_warning
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {($ VSub_Name '$warning_func')} 
              {
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                  spids: [8946 8952]
                )
              }
            )
          ]
          spids: [8937]
        )
      spids: [8932 8936]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:usage)
          op: Equal
          rhs: {(SQ <'$progpath [OPTION]... [MODE-ARG]...'>)}
          spids: [8975]
        )
      ]
      spids: [8975]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:usage_message)
          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')
              )
            }
          spids: [8984]
        )
      ]
      spids: [8984]
    )
    (FuncDef
      name: func_help
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(func_usage_message)})
            (C {($ VSub_Name '$ECHO')} 
              {
                (DQ ($ VSub_Name '$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 '") 
                  ($ VSub_Name '$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:   ') ($ VSub_Name '$host') ('\n') 
                  ('       shell:          ') ($ VSub_Name '$SHELL') ('\n') ('       compiler:       ') ($ VSub_Name '$LTCC') ('\n') 
                  ('       compiler flags: ') ($ VSub_Name '$LTCFLAGS') ('\n') ('       linker:         ') ($ VSub_Name '$LD') (' (gnu? ') 
                  ($ VSub_Name '$with_gnu_ld') (')\n') ('       version:        ') ($ VSub_Name '$progname') (' (GNU libtool) 2.4.6\n') 
                  ('       automake:       ') 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [
                              (Subshell
                                child: (C {($ VSub_Name '$AUTOMAKE')} {(--version)})
                                redirects: [
                                  (Redir
                                    op_id: Redir_Great
                                    fd: 2
                                    arg_word: {(/dev/null)}
                                    spids: [9074]
                                  )
                                ]
                                spids: [9068 9072]
                              )
                              (C {($ VSub_Name '$SED')} {(1q)})
                            ]
                            negated: F
                          )
                        ]
                      )
                    left_token: <Left_Backtick '`'>
                    spids: [9067 9081]
                  ) ('\n') ('       autoconf:       ') 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [
                              (Subshell
                                child: (C {($ VSub_Name '$AUTOCONF')} {(--version)})
                                redirects: [
                                  (Redir
                                    op_id: Redir_Great
                                    fd: 2
                                    arg_word: {(/dev/null)}
                                    spids: [9091]
                                  )
                                ]
                                spids: [9085 9089]
                              )
                              (C {($ VSub_Name '$SED')} {(1q)})
                            ]
                            negated: F
                          )
                        ]
                      )
                    left_token: <Left_Backtick '`'>
                    spids: [9084 9098]
                  ) ('\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/>.')
                )
              }
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
          ]
          spids: [9011]
        )
      spids: [9006 9010]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:lo2o)
          op: Equal
          rhs: 
            {(s/) (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (.lo) 
              (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (/.) ($ VSub_Name '$objext') (/)
            }
          spids: [9128]
        )
      ]
      spids: [9128]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:o2lo)
          op: Equal
          rhs: 
            {(s/) (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (.) ($ VSub_Name '$objext') 
              (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (/.lo/)
            }
          spids: [9137]
        )
      ]
      spids: [9137]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$_G_HAVE_XSI_OPS'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(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'> <'  }'>
                )
              }
            )
            (C {(eval)} 
              {(SQ <'func_xform ()\n'> <'  {\n'> <'    func_xform_result=${1%.*}.lo\n'> <'  }'>)}
            )
          ]
          spids: [16777215 9159]
        )
      ]
      else_action: [
        (FuncDef
          name: func_lo2o
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:func_lo2o_result)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Number '$1'))})
                                      (C {($ VSub_Name '$SED')} {(DQ ($ VSub_Name '$lo2o'))})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [9218 9232]
                          )
                        }
                      spids: [9217]
                    )
                  ]
                  spids: [9217]
                )
              ]
              spids: [9214]
            )
          spids: [9208 9212]
        )
        (FuncDef
          name: func_xform
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:func_xform_result)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Number '$1'))})
                                      (C {($ VSub_Name '$SED')} {(SQ <'s|\\.[^.]*$|.lo|'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [9249 9263]
                          )
                        }
                      spids: [9248]
                    )
                  ]
                  spids: [9248]
                )
              ]
              spids: [9245]
            )
          spids: [9239 9243]
        )
      ]
      spids: [9201 9268]
    )
    (FuncDef
      name: func_fatal_configuration
      body: 
        (BraceGroup
          children: [
            (C {(func__fatal_error)} 
              {
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                  spids: [9294 9300]
                )
              } {(DQ ('See the ') ($ VSub_Name '$PACKAGE') (' documentation for more information.'))} 
              {(DQ ('Fatal configuration error.'))}
            )
          ]
          spids: [9289]
        )
      spids: [9284 9288]
    )
    (FuncDef
      name: func_config
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:re_begincf)
                  op: Equal
                  rhs: {(SQ <'^# ### BEGIN LIBTOOL'>)}
                  spids: [9337]
                )
              ]
              spids: [9337]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:re_endcf)
                  op: Equal
                  rhs: {(SQ <'^# ### END LIBTOOL'>)}
                  spids: [9343]
                )
              ]
              spids: [9343]
            )
            (SimpleCommand
              words: [
                {($ VSub_Name '$SED')}
                {
                  (DQ ('1,/') ($ VSub_Name '$re_begincf') (' CONFIG/d;/') ($ VSub_Name '$re_endcf') 
                    (' CONFIG/,') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (d)
                  )
                }
              ]
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$progpath'))}
                  spids: [9366]
                )
              ]
            )
            (ForEach
              iter_name: tagname
              iter_words: [{($ VSub_Name '$taglist')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (SimpleCommand
                      words: [
                        {($ VSub_Name '$SED')}
                        {(-n)}
                        {
                          (DQ (/) ($ VSub_Name '$re_begincf') (' TAG CONFIG: ') ($ VSub_Name '$tagname') 
                            (EscapedLiteralPart
                              token: <Lit_EscapedChar '\\$'>
                            ) ('/,/') ($ VSub_Name '$re_endcf') (' TAG CONFIG: ') ($ VSub_Name '$tagname') 
                            (EscapedLiteralPart
                              token: <Lit_EscapedChar '\\$'>
                            ) (/p)
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_Less
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$progpath'))}
                          spids: [9408]
                        )
                      ]
                    )
                  ]
                  spids: [9387 9415]
                )
              spids: [9383 9385]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_QMark '$?')})
          ]
          spids: [9334]
        )
      spids: [9329 9333]
    )
    (FuncDef
      name: func_features
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('host: ') ($ VSub_Name '$host'))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$build_libtool_libs'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(echo)} {(DQ ('enable shared libraries'))})]
                  spids: [16777215 9465]
                )
              ]
              else_action: [(C {(echo)} {(DQ ('disable shared libraries'))})]
              spids: [9475 9485]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$build_old_libs'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(echo)} {(DQ ('enable static libraries'))})]
                  spids: [16777215 9501]
                )
              ]
              else_action: [(C {(echo)} {(DQ ('disable static libraries'))})]
              spids: [9511 9521]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_QMark '$?')})
          ]
          spids: [9441]
        )
      spids: [9436 9440]
    )
    (FuncDef
      name: func_enable_tag
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tagname)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [9560]
                )
              ]
              spids: [9560]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:re_begincf)
                  op: Equal
                  rhs: 
                    {
                      (DQ ('^# ### BEGIN LIBTOOL TAG CONFIG: ') ($ VSub_Name '$tagname') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
                      )
                    }
                  spids: [9565]
                )
              ]
              spids: [9565]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:re_endcf)
                  op: Equal
                  rhs: 
                    {
                      (DQ ('^# ### END LIBTOOL TAG CONFIG: ') ($ VSub_Name '$tagname') 
                        (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
                      )
                    }
                  spids: [9573]
                )
              ]
              spids: [9573]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sed_extractcf)
                  op: Equal
                  rhs: 
                    {(/) ($ VSub_Name '$re_begincf') (/) (Lit_Comma ',') (/) ($ VSub_Name '$re_endcf') 
                      (/p)
                    }
                  spids: [9581]
                )
              ]
              spids: [9581]
            )
            (Case
              to_match: {($ VSub_Name '$tagname')}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (Lit_Other '[') (KW_Bang '!') (-_A-Za-z0-9) (Lit_Comma ',') (/) 
                      (Lit_Other ']') (Lit_Other '*')
                    }
                  ]
                  action: [
                    (C {(func_fatal_error)} {(DQ ('invalid tag name: ') ($ VSub_Name '$tagname'))})
                  ]
                  spids: [9603 9611 9622 16777215]
                )
              ]
              spids: [9596 9600 9625]
            )
            (Case
              to_match: {($ VSub_Name '$tagname')}
              arms: [
                (case_arm pat_list:[{(CC)}] spids:[9644 9645 9647 16777215])
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (SimpleCommand
                                  words: [
                                    {($ VSub_Name '$GREP')}
                                    {(DQ ($ VSub_Name '$re_begincf'))}
                                    {(DQ ($ VSub_Name '$progpath'))}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 16777215
                                      arg_word: {(/dev/null)}
                                      spids: [9666]
                                    )
                                    (Redir
                                      op_id: Redir_GreatAnd
                                      fd: 2
                                      arg_word: {(1)}
                                      spids: [9669]
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:taglist)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$taglist') (' ') ($ VSub_Name '$tagname'))}
                                  spids: [9676]
                                )
                              ]
                              spids: [9676]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:extractedcf)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (SimpleCommand
                                                words: [
                                                  {($ VSub_Name '$SED')}
                                                  {(-n)}
                                                  {(-e)}
                                                  {(DQ ($ VSub_Name '$sed_extractcf'))}
                                                ]
                                                redirects: [
                                                  (Redir
                                                    op_id: Redir_Less
                                                    fd: 16777215
                                                    arg_word: {(DQ ($ VSub_Name '$progpath'))}
                                                    spids: [9713]
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [9702 9718]
                                      )
                                    }
                                  spids: [9701]
                                )
                              ]
                              spids: [9701]
                            )
                            (C {(eval)} {(DQ ($ VSub_Name '$extractedcf'))})
                          ]
                          spids: [16777215 9673]
                        )
                      ]
                      else_action: [
                        (C {(func_error)} {(DQ ('ignoring unknown tag ') ($ VSub_Name '$tagname'))})
                      ]
                      spids: [9728 9739]
                    )
                  ]
                  spids: [9650 9651 9742 16777215]
                )
              ]
              spids: [9637 9641 9745]
            )
          ]
          spids: [9553]
        )
      spids: [9548 9552]
    )
    (FuncDef
      name: func_check_version_match
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(DQ ($ VSub_Name '$package_revision'))} 
                          {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$macro_revision'))}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(test)} {(DQ ($ VSub_Name '$VERSION'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$macro_version'))}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$macro_version'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (SimpleCommand
                                      words: [{(cat)}]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_GreatAnd
                                          fd: 16777215
                                          arg_word: {(2)}
                                          spids: [9825]
                                        )
                                        (HereDoc
                                          op_id: Redir_DLess
                                          fd: 16777215
                                          body: 
                                            {
                                              (DQ ($ VSub_Name '$progname') 
                                                (': Version mismatch error.  This is ') ($ VSub_Name '$PACKAGE') (' ') ($ VSub_Name '$VERSION') (', but the\n') ($ VSub_Name '$progname') 
                                                (
': definition of this LT_INIT comes from an older release.\n'
                                                ) ($ VSub_Name '$progname') (': You should recreate aclocal.m4 with macros from ') 
                                                ($ VSub_Name '$PACKAGE') (' ') ($ VSub_Name '$VERSION') ('\n') ($ VSub_Name '$progname') (': and run autoconf again.\n')
                                              )
                                            }
                                          do_expansion: True
                                          here_end: _LT_EOF
                                          was_filled: T
                                          spids: [9828]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [16777215 9820]
                                )
                              ]
                              else_action: [
                                (SimpleCommand
                                  words: [{(cat)}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_GreatAnd
                                      fd: 16777215
                                      arg_word: {(2)}
                                      spids: [9854]
                                    )
                                    (HereDoc
                                      op_id: Redir_DLess
                                      fd: 16777215
                                      body: 
                                        {
                                          (DQ ($ VSub_Name '$progname') 
                                            (': Version mismatch error.  This is ') ($ VSub_Name '$PACKAGE') (' ') ($ VSub_Name '$VERSION') (', but the\n') ($ VSub_Name '$progname') 
                                            (': definition of this LT_INIT comes from ') ($ VSub_Name '$PACKAGE') (' ') ($ VSub_Name '$macro_version') ('.\n') ($ VSub_Name '$progname') 
                                            (': You should recreate aclocal.m4 with macros from ') ($ VSub_Name '$PACKAGE') (' ') ($ VSub_Name '$VERSION') ('\n') ($ VSub_Name '$progname') 
                                            (': and run autoconf again.\n')
                                          )
                                        }
                                      do_expansion: True
                                      here_end: _LT_EOF
                                      was_filled: T
                                      spids: [9857]
                                    )
                                  ]
                                )
                              ]
                              spids: [9849 9882]
                            )
                          ]
                          spids: [16777215 9806]
                        )
                      ]
                      else_action: [
                        (SimpleCommand
                          words: [{(cat)}]
                          redirects: [
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 16777215
                              arg_word: {(2)}
                              spids: [9890]
                            )
                            (HereDoc
                              op_id: Redir_DLess
                              fd: 16777215
                              body: 
                                {
                                  (DQ ($ VSub_Name '$progname') 
                                    (': Version mismatch error.  This is ') ($ VSub_Name '$PACKAGE') (' ') ($ VSub_Name '$VERSION') (', revision ') ($ VSub_Name '$package_revision') 
                                    (',\n') ($ VSub_Name '$progname') (': but the definition of this LT_INIT comes from revision ') 
                                    ($ VSub_Name '$macro_revision') ('.\n') ($ VSub_Name '$progname') (': You should recreate aclocal.m4 with macros from revision ') 
                                    ($ VSub_Name '$package_revision') ('\n') ($ VSub_Name '$progname') (': of ') ($ VSub_Name '$PACKAGE') (' ') ($ VSub_Name '$VERSION') 
                                    (' and run autoconf again.\n')
                                  )
                                }
                              do_expansion: True
                              here_end: _LT_EOF
                              was_filled: T
                              spids: [9893]
                            )
                          ]
                        )
                      ]
                      spids: [9885 9920]
                    )
                    (ControlFlow
                      token: <ControlFlow_Exit exit>
                      arg_word: {($ VSub_Name '$EXIT_MISMATCH')}
                    )
                  ]
                  spids: [16777215 9787]
                )
              ]
              spids: [16777215 9929]
            )
          ]
          spids: [9768]
        )
      spids: [9763 9767]
    )
    (FuncDef
      name: libtool_options_prep
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_mode')})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:opt_config) op:Equal rhs:{(false)} spids:[9960])]
              spids: [9960]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:opt_dlopen)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [9964]
                )
              ]
              spids: [9964]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:opt_dry_run)
                  op: Equal
                  rhs: {(false)}
                  spids: [9967]
                )
              ]
              spids: [9967]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:opt_help) op:Equal rhs:{(false)} spids:[9971])]
              spids: [9971]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:opt_mode)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [9975]
                )
              ]
              spids: [9975]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:opt_preserve_dup_deps)
                  op: Equal
                  rhs: {(false)}
                  spids: [9978]
                )
              ]
              spids: [9978]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:opt_quiet) op:Equal rhs:{(false)} spids:[9982])]
              spids: [9982]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:nonopt) op:Equal rhs:{(EmptyPart)} spids:[9987])]
              spids: [9987]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:preserve_args)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [9990]
                )
              ]
              spids: [9990]
            )
            (Case
              to_match: {($ VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [{(clean)} {(clea)} {(cle)} {(cl)}]
                  action: [
                    (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
                    (Sentence
                      child: 
                        (C {(set)} {(dummy)} {(--mode)} {(clean)} 
                          {
                            (BracedVarSub
                              token: <VSub_Number 1>
                              suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                              spids: [10026 10032]
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                  ]
                  spids: [10005 10012 10038 16777215]
                )
                (case_arm
                  pat_list: [{(compile)} {(compil)} {(compi)} {(comp)} {(com)} {(co)} {(c)}]
                  action: [
                    (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
                    (Sentence
                      child: 
                        (C {(set)} {(dummy)} {(--mode)} {(compile)} 
                          {
                            (BracedVarSub
                              token: <VSub_Number 1>
                              suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                              spids: [10068 10074]
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                  ]
                  spids: [10041 10054 10080 16777215]
                )
                (case_arm
                  pat_list: [{(execute)} {(execut)} {(execu)} {(exec)} {(exe)} {(ex)} {(e)}]
                  action: [
                    (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
                    (Sentence
                      child: 
                        (C {(set)} {(dummy)} {(--mode)} {(execute)} 
                          {
                            (BracedVarSub
                              token: <VSub_Number 1>
                              suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                              spids: [10110 10116]
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                  ]
                  spids: [10083 10096 10122 16777215]
                )
                (case_arm
                  pat_list: [{(finish)} {(finis)} {(fini)} {(fin)} {(KW_Fi fi)} {(f)}]
                  action: [
                    (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
                    (Sentence
                      child: 
                        (C {(set)} {(dummy)} {(--mode)} {(finish)} 
                          {
                            (BracedVarSub
                              token: <VSub_Number 1>
                              suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                              spids: [10150 10156]
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                  ]
                  spids: [10125 10136 10162 16777215]
                )
                (case_arm
                  pat_list: [{(install)} {(instal)} {(insta)} {(inst)} {(ins)} {(KW_In in)} {(i)}]
                  action: [
                    (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
                    (Sentence
                      child: 
                        (C {(set)} {(dummy)} {(--mode)} {(install)} 
                          {
                            (BracedVarSub
                              token: <VSub_Number 1>
                              suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                              spids: [10192 10198]
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                  ]
                  spids: [10165 10178 10204 16777215]
                )
                (case_arm
                  pat_list: [{(link)} {(lin)} {(li)} {(l)}]
                  action: [
                    (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
                    (Sentence
                      child: 
                        (C {(set)} {(dummy)} {(--mode)} {(link)} 
                          {
                            (BracedVarSub
                              token: <VSub_Number 1>
                              suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                              spids: [10228 10234]
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                  ]
                  spids: [10207 10214 10240 16777215]
                )
                (case_arm
                  pat_list: [
                    {(uninstall)}
                    {(uninstal)}
                    {(uninsta)}
                    {(uninst)}
                    {(unins)}
                    {(unin)}
                    {(uni)}
                    {(un)}
                    {(u)}
                  ]
                  action: [
                    (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
                    (Sentence
                      child: 
                        (C {(set)} {(dummy)} {(--mode)} {(uninstall)} 
                          {
                            (BracedVarSub
                              token: <VSub_Number 1>
                              suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                              spids: [10274 10280]
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(shift)})
                  ]
                  spids: [10243 10260 10286 16777215]
                )
              ]
              spids: [9998 10002 10289]
            )
            (C {(func_quote_for_eval)} 
              {
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                  spids: [10299 10305]
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:libtool_options_prep_result)
                  op: Equal
                  rhs: {($ VSub_Name '$func_quote_for_eval_result')}
                  spids: [10308]
                )
              ]
              spids: [10308]
            )
          ]
          spids: [9949]
        )
      spids: [9944 9948]
    )
    (C {(func_add_hook)} {(func_options_prep)} {(libtool_options_prep)})
    (FuncDef
      name: libtool_parse_options
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (While
              cond: [
                (Sentence
                  child: (C {(test)} {($ VSub_Pound '$#')} {(-gt)} {(0)})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_G_opt)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [10364]
                        )
                      ]
                      spids: [10364]
                    )
                    (C {(shift)})
                    (Case
                      to_match: {($ VSub_Name '$_G_opt')}
                      arms: [
                        (case_arm
                          pat_list: [{(--dry-run)} {(--dryrun)} {(-n)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_dry_run)
                                  op: Equal
                                  rhs: {(Lit_Other ':')}
                                  spids: [10386]
                                )
                              ]
                              spids: [10386]
                            )
                          ]
                          spids: [10378 10383 10390 16777215]
                        )
                        (case_arm
                          pat_list: [{(--config)}]
                          action: [(C {(func_config)})]
                          spids: [10394 10395 10399 16777215]
                        )
                        (case_arm
                          pat_list: [{(--dlopen)} {(-dlopen)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_dlopen)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name opt_dlopen>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VTest_Plus
                                              arg_word: {($ VSub_Name '$opt_dlopen') ('\n')}
                                            )
                                          spids: [10411 10416]
                                        ) ($ VSub_Number '$1')
                                      )
                                    }
                                  spids: [10409]
                                )
                              ]
                              spids: [10409]
                            )
                            (C {(shift)})
                          ]
                          spids: [10403 10406 10424 16777215]
                        )
                        (case_arm
                          pat_list: [{(--preserve-dup-deps)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_preserve_dup_deps)
                                  op: Equal
                                  rhs: {(Lit_Other ':')}
                                  spids: [10432]
                                )
                              ]
                              spids: [10432]
                            )
                          ]
                          spids: [10428 10429 10435 16777215]
                        )
                        (case_arm
                          pat_list: [{(--features)}]
                          action: [(C {(func_features)})]
                          spids: [10439 10440 10444 16777215]
                        )
                        (case_arm
                          pat_list: [{(--finish)}]
                          action: [
                            (Sentence
                              child: 
                                (C {(set)} {(dummy)} {(--mode)} {(finish)} 
                                  {
                                    (BracedVarSub
                                      token: <VSub_Number 1>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_Plus
                                          arg_word: {(DQ ($ VSub_At '$@'))}
                                        )
                                      spids: [10459 10465]
                                    )
                                  }
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (C {(shift)})
                          ]
                          spids: [10448 10449 10470 16777215]
                        )
                        (case_arm
                          pat_list: [{(--help)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_help)
                                  op: Equal
                                  rhs: {(Lit_Other ':')}
                                  spids: [10477]
                                )
                              ]
                              spids: [10477]
                            )
                          ]
                          spids: [10474 10475 10480 16777215]
                        )
                        (case_arm
                          pat_list: [{(--help-all)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_help)
                                  op: Equal
                                  rhs: {(SQ <': help-all'>)}
                                  spids: [10487]
                                )
                              ]
                              spids: [10487]
                            )
                          ]
                          spids: [10484 10485 10492 16777215]
                        )
                        (case_arm
                          pat_list: [{(--mode)}]
                          action: [
                            (AndOr
                              ops: [Op_DAmp Op_DAmp]
                              children: [
                                (C {(test)} {($ VSub_Pound '$#')} {(Lit_Other '=')} {(0)})
                                (C {(func_missing_arg)} {($ VSub_Name '$_G_opt')})
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_mode)
                                  op: Equal
                                  rhs: {($ VSub_Number '$1')}
                                  spids: [10518]
                                )
                              ]
                              spids: [10518]
                            )
                            (Case
                              to_match: {($ VSub_Number '$1')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {(clean)}
                                    {(compile)}
                                    {(execute)}
                                    {(finish)}
                                    {(install)}
                                    {(link)}
                                    {(relink)}
                                    {(uninstall)}
                                  ]
                                  spids: [10533 10548 10550 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (C {(func_error)} 
                                      {(DQ ('invalid argument for ') ($ VSub_Name '$_G_opt'))}
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:exit_cmd)
                                          op: Equal
                                          rhs: {(ControlFlow_Exit exit)}
                                          spids: [10569]
                                        )
                                      ]
                                      spids: [10569]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [10558 10559 10576 16777215]
                                )
                              ]
                              spids: [10522 10526 10579]
                            )
                            (C {(shift)})
                          ]
                          spids: [10496 10497 10585 16777215]
                        )
                        (case_arm
                          pat_list: [{(--no-silent)} {(--no-quiet)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_quiet)
                                  op: Equal
                                  rhs: {(false)}
                                  spids: [10595]
                                )
                              ]
                              spids: [10595]
                            )
                            (C {(func_append)} {(preserve_args)} {(DQ (' ') ($ VSub_Name '$_G_opt'))})
                          ]
                          spids: [10589 10592 10609 16777215]
                        )
                        (case_arm
                          pat_list: [{(--no-warnings)} {(--no-warning)} {(--no-warn)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_warning)
                                  op: Equal
                                  rhs: {(false)}
                                  spids: [10621]
                                )
                              ]
                              spids: [10621]
                            )
                            (C {(func_append)} {(preserve_args)} {(DQ (' ') ($ VSub_Name '$_G_opt'))})
                          ]
                          spids: [10613 10618 10635 16777215]
                        )
                        (case_arm
                          pat_list: [{(--no-verbose)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_verbose)
                                  op: Equal
                                  rhs: {(false)}
                                  spids: [10643]
                                )
                              ]
                              spids: [10643]
                            )
                            (C {(func_append)} {(preserve_args)} {(DQ (' ') ($ VSub_Name '$_G_opt'))})
                          ]
                          spids: [10639 10640 10657 16777215]
                        )
                        (case_arm
                          pat_list: [{(--silent)} {(--quiet)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_quiet)
                                  op: Equal
                                  rhs: {(Lit_Other ':')}
                                  spids: [10667]
                                )
                              ]
                              spids: [10667]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_verbose)
                                  op: Equal
                                  rhs: {(false)}
                                  spids: [10671]
                                )
                              ]
                              spids: [10671]
                            )
                            (C {(func_append)} {(preserve_args)} {(DQ (' ') ($ VSub_Name '$_G_opt'))})
                          ]
                          spids: [10661 10664 10685 16777215]
                        )
                        (case_arm
                          pat_list: [{(--tag)}]
                          action: [
                            (AndOr
                              ops: [Op_DAmp Op_DAmp]
                              children: [
                                (C {(test)} {($ VSub_Pound '$#')} {(Lit_Other '=')} {(0)})
                                (C {(func_missing_arg)} {($ VSub_Name '$_G_opt')})
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_tag)
                                  op: Equal
                                  rhs: {($ VSub_Number '$1')}
                                  spids: [10711]
                                )
                              ]
                              spids: [10711]
                            )
                            (C {(func_append)} {(preserve_args)} 
                              {(DQ (' ') ($ VSub_Name '$_G_opt') (' ') ($ VSub_Number '$1'))}
                            )
                            (C {(func_enable_tag)} {(DQ ($ VSub_Number '$1'))})
                            (C {(shift)})
                          ]
                          spids: [10689 10690 10737 16777215]
                        )
                        (case_arm
                          pat_list: [{(--verbose)} {(-v)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_quiet)
                                  op: Equal
                                  rhs: {(false)}
                                  spids: [10746]
                                )
                              ]
                              spids: [10746]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt_verbose)
                                  op: Equal
                                  rhs: {(Lit_Other ':')}
                                  spids: [10750]
                                )
                              ]
                              spids: [10750]
                            )
                            (C {(func_append)} {(preserve_args)} {(DQ (' ') ($ VSub_Name '$_G_opt'))})
                          ]
                          spids: [10741 10744 10764 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (Sentence
                              child: 
                                (C {(set)} {(dummy)} {(DQ ($ VSub_Name '$_G_opt'))} 
                                  {
                                    (BracedVarSub
                                      token: <VSub_Number 1>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_Plus
                                          arg_word: {(DQ ($ VSub_At '$@'))}
                                        )
                                      spids: [10783 10789]
                                    )
                                  }
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                          spids: [10772 10773 10797 16777215]
                        )
                      ]
                      spids: [10371 10375 10800]
                    )
                  ]
                  spids: [10361 10803]
                )
            )
            (C {(func_quote_for_eval)} 
              {
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                  spids: [10814 10820]
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:libtool_parse_options_result)
                  op: Equal
                  rhs: {($ VSub_Name '$func_quote_for_eval_result')}
                  spids: [10823]
                )
              ]
              spids: [10823]
            )
          ]
          spids: [10335]
        )
      spids: [10330 10334]
    )
    (C {(func_add_hook)} {(func_parse_options)} {(libtool_parse_options)})
    (FuncDef
      name: libtool_validate_options
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(0)} {(-lt)} {($ VSub_Pound '$#')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:nonopt)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [10875]
                        )
                      ]
                      spids: [10875]
                    )
                    (C {(shift)})
                  ]
                  spids: [16777215 10872]
                )
              ]
              spids: [16777215 10882]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(Lit_Other ':')} {(Lit_Other '=')} {(DQ ($ VSub_Name '$debug_cmd'))})
                (C {(func_append)} {(preserve_args)} {(DQ (' --debug'))})
              ]
            )
            (Case
              to_match: {($ VSub_Name '$host')}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (cygwin) (Lit_Other '*')}
                    {(Lit_Other '*') (mingw) (Lit_Other '*')}
                    {(Lit_Other '*') (pw32) (Lit_Other '*')}
                    {(Lit_Other '*') (cegcc) (Lit_Other '*')}
                    {(Lit_Other '*') (solaris2) (Lit_Other '*')}
                    {(Lit_Other '*') (os2) (Lit_Other '*')}
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:opt_duplicate_compiler_generated_deps)
                          op: Equal
                          rhs: {(Lit_Other ':')}
                          spids: [10967]
                        )
                      ]
                      spids: [10967]
                    )
                  ]
                  spids: [10927 10960 10971 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:opt_duplicate_compiler_generated_deps)
                          op: Equal
                          rhs: {($ VSub_Name '$opt_preserve_dup_deps')}
                          spids: [10978]
                        )
                      ]
                      spids: [10978]
                    )
                  ]
                  spids: [10974 10975 10982 16777215]
                )
              ]
              spids: [10912 10916 10985]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {($ VSub_Name '$opt_help')})
                (BraceGroup
                  children: [
                    (C {(func_check_version_match)})
                    (AndOr
                      ops: [Op_DAmp Op_DAmp]
                      children: [
                        (C {(test)} {(yes)} {(KW_Bang '!') (Lit_Other '=')} 
                          {(DQ ($ VSub_Name '$build_libtool_libs'))}
                        )
                        (C {(test)} {(yes)} {(KW_Bang '!') (Lit_Other '=')} 
                          {(DQ ($ VSub_Name '$build_old_libs'))}
                        )
                        (C {(func_fatal_configuration)} 
                          {(DQ ('not configured to build any kind of library'))}
                        )
                      ]
                    )
                    (C {(eval)} 
                      {(Lit_VarLike 'std_shrext=') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                        ($ VSub_Name '$shrext_cmds') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                      }
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(test)} {(-n)} {(DQ ($ VSub_Name '$opt_dlopen'))})
                                    (C {(test)} {(execute)} {(KW_Bang '!') (Lit_Other '=')} 
                                      {(DQ ($ VSub_Name '$opt_mode'))}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(func_error)} {(DQ ("unrecognized option '-dlopen'"))})
                            (SimpleCommand
                              words: [{($ VSub_Name '$ECHO')} {(DQ ($ VSub_Name '$help'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: 1
                                  arg_word: {(2)}
                                  spids: [11099]
                                )
                              ]
                            )
                            (ControlFlow
                              token: <ControlFlow_Exit exit>
                              arg_word: {($ VSub_Name '$EXIT_FAILURE')}
                            )
                          ]
                          spids: [16777215 11083]
                        )
                      ]
                      spids: [16777215 11108]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:generic_help)
                          op: Equal
                          rhs: {($ VSub_Name '$help')}
                          spids: [11116]
                        )
                      ]
                      spids: [11116]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:help)
                          op: Equal
                          rhs: 
                            {
                              (DQ ("Try '") ($ VSub_Name '$progname') (' --help --mode=') 
                                ($ VSub_Name '$opt_mode') ("' for more information.")
                              )
                            }
                          spids: [11120]
                        )
                      ]
                      spids: [11120]
                    )
                  ]
                  spids: [10993]
                )
              ]
            )
            (C {(func_quote_for_eval)} 
              {
                (BracedVarSub
                  token: <VSub_Number 1>
                  suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                  spids: [11140 11146]
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:libtool_validate_options_result)
                  op: Equal
                  rhs: {($ VSub_Name '$func_quote_for_eval_result')}
                  spids: [11149]
                )
              ]
              spids: [11149]
            )
          ]
          spids: [10854]
        )
      spids: [10849 10853]
    )
    (C {(func_add_hook)} {(func_validate_options)} {(libtool_validate_options)})
    (C {(func_options)} 
      {
        (BracedVarSub
          token: <VSub_Number 1>
          suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
          spids: [11170 11176]
        )
      }
    )
    (Sentence
      child: (C {(eval)} {(set)} {(dummy)} {(DQ ($ VSub_Name '$func_options_result'))})
      terminator: <Op_Semi ';'>
    )
    (C {(shift)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:magic)
          op: Equal
          rhs: {(SQ <'%%%MAGIC variable%%%'>)}
          spids: [11204]
        )
      ]
      spids: [11204]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:magic_exe)
          op: Equal
          rhs: {(SQ <'%%%MAGIC EXE variable%%%'>)}
          spids: [11209]
        )
      ]
      spids: [11209]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:extracted_archives)
          op: Equal
          rhs: {(EmptyPart)}
          spids: [11218]
        )
      ]
      spids: [11218]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:extracted_serial) op:Equal rhs:{(0)} spids:[11220])]
      spids: [11220]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:exec_cmd) op:Equal rhs:{(EmptyPart)} spids:[11233])]
      spids: [11233]
    )
    (FuncDef
      name: func_fallback_echo
      body: 
        (BraceGroup
          children: [(C {(eval)} {(SQ <'cat <<_LTECHO_EOF\n'> <'$1\n'> <_LTECHO_EOF>)})]
          spids: [11245]
        )
      spids: [11240 11244]
    )
    (FuncDef
      name: func_generated_by_libtool_p
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{($ VSub_Name '$GREP')} {(DQ ('^# Generated by .*') ($ VSub_Name '$PACKAGE'))}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(/dev/null)}
                  spids: [11283]
                )
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[11287])
              ]
            )
          ]
          spids: [11273]
        )
      spids: [11268 11272]
    )
    (FuncDef
      name: func_lalib_p
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-f)} {(DQ ($ VSub_Number '$1'))})
                (Pipeline
                  children: [
                    (SimpleCommand
                      words: [{($ VSub_Name '$SED')} {(-e)} {(4q)} {(DQ ($ VSub_Number '$1'))}]
                      redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[11334])]
                    )
                    (C {(func_generated_by_libtool_p)})
                  ]
                  negated: F
                )
              ]
            )
          ]
          spids: [11310]
        )
      spids: [11305 11309]
    )
    (FuncDef
      name: func_lalib_unsafe_p
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:lalib_p) op:Equal rhs:{(no)} spids:[11373])]
              spids: [11373]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp Op_DAmp]
                          children: [
                            (C {(test)} {(-f)} {(DQ ($ VSub_Number '$1'))})
                            (C {(test)} {(-r)} {(DQ ($ VSub_Number '$1'))})
                            (SimpleCommand
                              words: [{(exec)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_LessAnd
                                  fd: 5
                                  arg_word: {(0)}
                                  spids: [11401]
                                )
                                (Redir
                                  op_id: Redir_Less
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Number '$1'))}
                                  spids: [11404]
                                )
                              ]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (ForEach
                      iter_name: lalib_p_l
                      iter_words: [{(1)} {(2)} {(3)} {(4)}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (C {(read)} {(lalib_p_line)})
                            (Case
                              to_match: {($ VSub_Name '$lalib_p_line')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {(EscapedLiteralPart token:<Lit_EscapedChar '\\#'>) 
                                      (EscapedLiteralPart
                                        token: <Lit_EscapedChar '\\ '>
                                      ) (Generated) (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (by) 
                                      (EscapedLiteralPart
                                        token: <Lit_EscapedChar '\\ '>
                                      ) (Lit_Other '*') ($ VSub_Name '$PACKAGE') (Lit_Other '*')
                                    }
                                  ]
                                  action: [
                                    (Sentence
                                      child: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:lalib_p)
                                              op: Equal
                                              rhs: {(yes)}
                                              spids: [11455]
                                            )
                                          ]
                                          spids: [11455]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [11443 11453 11460 16777215]
                                )
                              ]
                              spids: [11436 11440 11463]
                            )
                          ]
                          spids: [11428 11466]
                        )
                      spids: [11418 16777215]
                    )
                    (SimpleCommand
                      words: [{(exec)}]
                      redirects: [
                        (Redir
                          op_id: Redir_LessAnd
                          fd: 0
                          arg_word: {(5)}
                          spids: [11471]
                        )
                        (Redir
                          op_id: Redir_LessAnd
                          fd: 5
                          arg_word: {(-)}
                          spids: [11474]
                        )
                      ]
                    )
                  ]
                  spids: [16777215 11410]
                )
              ]
              spids: [16777215 11478]
            )
            (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$lalib_p'))})
          ]
          spids: [11370]
        )
      spids: [11365 11369]
    )
    (FuncDef
      name: func_ltwrapper_script_p
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-f)} {(DQ ($ VSub_Number '$1'))})
                (Pipeline
                  children: [
                    (SimpleCommand
                      words: [{($ VSub_Name '$lt_truncate_bin')}]
                      redirects: [
                        (Redir
                          op_id: Redir_Less
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Number '$1'))}
                          spids: [11527]
                        )
                        (Redir
                          op_id: Redir_Great
                          fd: 2
                          arg_word: {(/dev/null)}
                          spids: [11533]
                        )
                      ]
                    )
                    (C {(func_generated_by_libtool_p)})
                  ]
                  negated: F
                )
              ]
            )
          ]
          spids: [11511]
        )
      spids: [11506 11510]
    )
    (FuncDef
      name: func_ltwrapper_executable_p
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_ltwrapper_exec_suffix)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [11563]
                )
              ]
              spids: [11563]
            )
            (Case
              to_match: {($ VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (.exe)}]
                  spids: [11573 11575 11577 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_ltwrapper_exec_suffix)
                          op: Equal
                          rhs: {(.exe)}
                          spids: [11583]
                        )
                      ]
                      spids: [11583]
                    )
                  ]
                  spids: [11580 11581 11586 16777215]
                )
              ]
              spids: [11566 11570 11589]
            )
            (SimpleCommand
              words: [
                {($ VSub_Name '$GREP')}
                {(DQ ($ VSub_Name '$magic_exe'))}
                {(DQ ($ VSub_Number '$1') ($ VSub_Name '$func_ltwrapper_exec_suffix'))}
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(/dev/null)}
                  spids: [11603]
                )
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[11606])
              ]
            )
          ]
          spids: [11560]
        )
      spids: [11555 11559]
    )
    (FuncDef
      name: func_ltwrapper_scriptname
      body: 
        (BraceGroup
          children: [
            (C {(func_dirname_and_basename)} {(DQ ($ VSub_Number '$1'))} {(DQ )} {(DQ (.))})
            (C {(func_stripname)} {(SQ )} {(SQ <.exe>)} {(DQ ($ VSub_Name '$func_basename_result'))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_ltwrapper_scriptname_result)
                  op: Equal
                  rhs: 
                    {($ VSub_Name '$func_dirname_result') (/) ($ VSub_Name '$objdir') (/) 
                      (${ VSub_Name func_stripname_result) (_ltshwrapper)
                    }
                  spids: [11660]
                )
              ]
              spids: [11660]
            )
          ]
          spids: [11629]
        )
      spids: [11624 11628]
    )
    (FuncDef
      name: func_ltwrapper_p
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(func_ltwrapper_script_p)} {(DQ ($ VSub_Number '$1'))})
                (C {(func_ltwrapper_executable_p)} {(DQ ($ VSub_Number '$1'))})
              ]
            )
          ]
          spids: [11690]
        )
      spids: [11685 11689]
    )
    (FuncDef
      name: func_execute_cmds
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:save_ifs)
                      op: Equal
                      rhs: {($ VSub_Name '$IFS')}
                      spids: [11735]
                    )
                  ]
                  spids: [11735]
                )
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(SQ <'~'>)} spids:[11739])]
              spids: [11739]
            )
            (ForEach
              iter_name: cmd
              iter_words: [{($ VSub_Number '$1')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {($ VSub_Name '$sp') ($ VSub_Name '$nl')}
                          spids: [11757]
                        )
                      ]
                      spids: [11757]
                    )
                    (C {(eval)} 
                      {(Lit_VarLike 'cmd=') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                        ($ VSub_Name '$cmd') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {($ VSub_Name '$save_ifs')}
                          spids: [11770]
                        )
                      ]
                      spids: [11770]
                    )
                    (C {(func_show_eval)} {(DQ ($ VSub_Name '$cmd'))} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Number 2>
                            suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(':')})
                            spids: [11781 11785]
                          )
                        )
                      }
                    )
                  ]
                  spids: [11754 11789]
                )
              spids: [11750 11752]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$save_ifs')}
                  spids: [11792]
                )
              ]
              spids: [11792]
            )
          ]
          spids: [11728]
        )
      spids: [11723 11727]
    )
    (FuncDef
      name: func_source
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Case
              to_match: {($ VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (/) (Lit_Other '*')}
                    {(Lit_Other '*') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) 
                      (Lit_Other '*')
                    }
                  ]
                  action: [(C {(.)} {(DQ ($ VSub_Number '$1'))})]
                  spids: [11836 11845 11853 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(.)} {(DQ (./) ($ VSub_Number '$1'))})]
                  spids: [11856 11857 11866 16777215]
                )
              ]
              spids: [11829 11833 11869]
            )
          ]
          spids: [11822]
        )
      spids: [11817 11821]
    )
    (FuncDef
      name: func_resolve_sysroot
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_resolve_sysroot_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [11892]
                )
              ]
              spids: [11892]
            )
            (Case
              to_match: {($ VSub_Name '$func_resolve_sysroot_result')}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '=') (Lit_Other '*')}]
                  action: [
                    (C {(func_stripname)} {(SQ <'='>)} {(SQ )} 
                      {(DQ ($ VSub_Name '$func_resolve_sysroot_result'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_resolve_sysroot_result)
                          op: Equal
                          rhs: {($ VSub_Name '$lt_sysroot') ($ VSub_Name '$func_stripname_result')}
                          spids: [11922]
                        )
                      ]
                      spids: [11922]
                    )
                  ]
                  spids: [11903 11905 11927 16777215]
                )
              ]
              spids: [11896 11900 11930]
            )
          ]
          spids: [11889]
        )
      spids: [11884 11888]
    )
    (FuncDef
      name: func_replace_sysroot
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {($ VSub_Name '$lt_sysroot') (Lit_Other ':') ($ VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '?') (Lit_Other '*') (Lit_Other ':') (DQ ($ VSub_Name '$lt_sysroot')) 
                      (Lit_Other '*')
                    }
                  ]
                  action: [
                    (C {(func_stripname)} {(DQ ($ VSub_Name '$lt_sysroot'))} {(SQ )} 
                      {(DQ ($ VSub_Number '$1'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_replace_sysroot_result)
                          op: Equal
                          rhs: {(SQ <'='>) ($ VSub_Name '$func_stripname_result')}
                          spids: [11985]
                        )
                      ]
                      spids: [11985]
                    )
                  ]
                  spids: [11961 11968 11992 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_replace_sysroot_result)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [12003]
                        )
                      ]
                      spids: [12003]
                    )
                  ]
                  spids: [11995 11996 12007 16777215]
                )
              ]
              spids: [11952 11958 12010]
            )
          ]
          spids: [11949]
        )
      spids: [11944 11948]
    )
    (FuncDef
      name: func_infer_tag
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name '$available_tags'))})
                            (C {(test)} {(-z)} {(DQ ($ VSub_Name '$tagname'))})
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CC_quoted)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [12069]
                        )
                      ]
                      spids: [12069]
                    )
                    (ForEach
                      iter_name: arg
                      iter_words: [{($ VSub_Name '$CC')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (C {(func_append_quoted)} {(CC_quoted)} {(DQ ($ VSub_Name '$arg'))})
                          ]
                          spids: [12081 12093]
                        )
                      spids: [12077 12079]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CC_expanded)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(func_echo_all)} {($ VSub_Name '$CC')})]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [12097 12101]
                              )
                            }
                          spids: [12096]
                        )
                      ]
                      spids: [12096]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CC_quoted_expanded)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(func_echo_all)} {($ VSub_Name '$CC_quoted')})]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [12105 12109]
                              )
                            }
                          spids: [12104]
                        )
                      ]
                      spids: [12104]
                    )
                    (Case
                      to_match: {($ VSub_At '$@')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(DQ (' ') ($ VSub_Name '$CC') (' ')) (Lit_Other '*')}
                            {(DQ ($ VSub_Name '$CC') (' ')) (Lit_Other '*')}
                            {(DQ (' ') ($ VSub_Name '$CC_expanded') (' ')) (Lit_Other '*')}
                            {(DQ ($ VSub_Name '$CC_expanded') (' ')) (Lit_Other '*')}
                            {(DQ (' ') ($ VSub_Name '$CC_quoted')) (Lit_Other '*')}
                            {(DQ ($ VSub_Name '$CC_quoted') (' ')) (Lit_Other '*')}
                            {(DQ (' ') ($ VSub_Name '$CC_quoted_expanded') (' ')) (Lit_Other '*')}
                            {(DQ ($ VSub_Name '$CC_quoted_expanded') (' ')) (Lit_Other '*')}
                          ]
                          spids: [12128 12193 12195 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (ForEach
                              iter_name: z
                              iter_words: [{($ VSub_Name '$available_tags')}]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (SimpleCommand
                                                  words: [
                                                    {($ VSub_Name '$GREP')}
                                                    {
                                                      (DQ ('^# ### BEGIN LIBTOOL TAG CONFIG: ') 
                                                        ($ VSub_Name '$z') (Lit_Other '$')
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op_id: Redir_Less
                                                      fd: 16777215
                                                      arg_word: {(DQ ($ VSub_Name '$progpath'))}
                                                      spids: [12232]
                                                    )
                                                    (Redir
                                                      op_id: Redir_Great
                                                      fd: 16777215
                                                      arg_word: {(/dev/null)}
                                                      spids: [12238]
                                                    )
                                                  ]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(eval)} 
                                              {
                                                (DQ 
                                                  (CommandSubPart
                                                    command_list: 
                                                      (CommandList
                                                        children: [
                                                          (SimpleCommand
                                                            words: [
                                                              {($ VSub_Name '$SED')}
                                                              {(-n)}
                                                              {(-e)}
                                                              {
                                                                (SQ 
                                                                  <
'/^# ### BEGIN LIBTOOL TAG CONFIG: '
                                                                  >
                                                                ) ($ VSub_Name '$z') (SQ <'$/,/^# ### END LIBTOOL TAG CONFIG: '>) ($ VSub_Name '$z') (SQ <'$/p'>)
                                                              }
                                                            ]
                                                            redirects: [
                                                              (Redir
                                                                op_id: Redir_Less
                                                                fd: 16777215
                                                                arg_word: {($ VSub_Name '$progpath')}
                                                                spids: [12272]
                                                              )
                                                            ]
                                                          )
                                                        ]
                                                      )
                                                    left_token: <Left_Backtick '`'>
                                                    spids: [12253 12275]
                                                  )
                                                )
                                              }
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:CC_quoted)
                                                  op: Equal
                                                  rhs: {(EmptyPart)}
                                                  spids: [12279]
                                                )
                                              ]
                                              spids: [12279]
                                            )
                                            (ForEach
                                              iter_name: arg
                                              iter_words: [{($ VSub_Name '$CC')}]
                                              do_arg_iter: F
                                              body: 
                                                (DoGroup
                                                  children: [
                                                    (C {(func_append_quoted)} {(CC_quoted)} 
                                                      {(DQ ($ VSub_Name '$arg'))}
                                                    )
                                                  ]
                                                  spids: [12291 12307]
                                                )
                                              spids: [12287 12289]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:CC_expanded)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (C {(func_echo_all)} 
                                                                {($ VSub_Name '$CC')}
                                                              )
                                                            ]
                                                          )
                                                        left_token: <Left_Backtick '`'>
                                                        spids: [12311 12315]
                                                      )
                                                    }
                                                  spids: [12310]
                                                )
                                              ]
                                              spids: [12310]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:CC_quoted_expanded)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (C {(func_echo_all)} 
                                                                {($ VSub_Name '$CC_quoted')}
                                                              )
                                                            ]
                                                          )
                                                        left_token: <Left_Backtick '`'>
                                                        spids: [12319 12323]
                                                      )
                                                    }
                                                  spids: [12318]
                                                )
                                              ]
                                              spids: [12318]
                                            )
                                            (Case
                                              to_match: {(DQ ($ VSub_At '$@') (' '))}
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {(DQ (' ') ($ VSub_Name '$CC') (' ')) 
                                                      (Lit_Other '*')
                                                    }
                                                    {(DQ ($ VSub_Name '$CC') (' ')) (Lit_Other '*')}
                                                    {(DQ (' ') ($ VSub_Name '$CC_expanded') (' ')) 
                                                      (Lit_Other '*')
                                                    }
                                                    {(DQ ($ VSub_Name '$CC_expanded') (' ')) 
                                                      (Lit_Other '*')
                                                    }
                                                    {(DQ (' ') ($ VSub_Name '$CC_quoted')) 
                                                      (Lit_Other '*')
                                                    }
                                                    {(DQ ($ VSub_Name '$CC_quoted') (' ')) 
                                                      (Lit_Other '*')
                                                    }
                                                    {
                                                      (DQ (' ') ($ VSub_Name '$CC_quoted_expanded') 
                                                        (' ')
                                                      ) (Lit_Other '*')
                                                    }
                                                    {(DQ ($ VSub_Name '$CC_quoted_expanded') (' ')) 
                                                      (Lit_Other '*')
                                                    }
                                                  ]
                                                  action: [
                                                    (Assignment
                                                      keyword: Assign_None
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (LhsName name:tagname)
                                                          op: Equal
                                                          rhs: {($ VSub_Name '$z')}
                                                          spids: [12417]
                                                        )
                                                      ]
                                                      spids: [12417]
                                                    )
                                                    (ControlFlow
                                                      token: <ControlFlow_Break break>
                                                    )
                                                  ]
                                                  spids: [12337 12402 12424 16777215]
                                                )
                                              ]
                                              spids: [12326 12333 12427]
                                            )
                                          ]
                                          spids: [16777215 12243]
                                        )
                                      ]
                                      spids: [16777215 12430]
                                    )
                                  ]
                                  spids: [12219 12433]
                                )
                              spids: [12215 12217]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$tagname'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(func_echo)} {(DQ ('unable to infer tagged configuration'))})
                                    (C {(func_fatal_error)} {(DQ ("specify a tag with '--tag'"))})
                                  ]
                                  spids: [16777215 12459]
                                )
                              ]
                              spids: [16777215 12482]
                            )
                          ]
                          spids: [12206 12207 12485 16777215]
                        )
                      ]
                      spids: [12112 12116 12488]
                    )
                  ]
                  spids: [16777215 12066]
                )
              ]
              spids: [16777215 12491]
            )
          ]
          spids: [12038]
        )
      spids: [12033 12037]
    )
    (FuncDef
      name: func_write_libtool_object
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:write_libobj)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [12515]
                )
              ]
              spids: [12515]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$build_libtool_libs'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:write_lobj)
                          op: Equal
                          rhs: 
                            {(EscapedLiteralPart token:<Lit_EscapedChar "\\'">) ($ VSub_Number '$2') 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar "\\'">
                              )
                            }
                          spids: [12535]
                        )
                      ]
                      spids: [12535]
                    )
                  ]
                  spids: [16777215 12532]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:write_lobj)
                      op: Equal
                      rhs: {(none)}
                      spids: [12544]
                    )
                  ]
                  spids: [12544]
                )
              ]
              spids: [12541 12548]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$build_old_libs'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:write_oldobj)
                          op: Equal
                          rhs: 
                            {(EscapedLiteralPart token:<Lit_EscapedChar "\\'">) ($ VSub_Number '$3') 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar "\\'">
                              )
                            }
                          spids: [12568]
                        )
                      ]
                      spids: [12568]
                    )
                  ]
                  spids: [16777215 12565]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:write_oldobj)
                      op: Equal
                      rhs: {(none)}
                      spids: [12577]
                    )
                  ]
                  spids: [12577]
                )
              ]
              spids: [12574 12581]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {($ VSub_Name '$opt_dry_run')})
                (BraceGroup
                  children: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(${ VSub_Name write_libobj) (T)}
                          spids: [12594]
                        )
                        (HereDoc
                          op_id: Redir_DLess
                          fd: 16777215
                          body: 
                            {
                              (DQ ('# ') ($ VSub_Name '$write_libobj') (' - a libtool object file\n') 
                                ('# Generated by ') ($ VSub_Name '$PROGRAM') (' (GNU ') ($ VSub_Name '$PACKAGE') (') ') ($ VSub_Name '$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=') 
                                ($ VSub_Name '$write_lobj') ('\n') ('\n') ('# Name of the non-PIC object\n') ('non_pic_object=') ($ VSub_Name '$write_oldobj') ('\n') 
                                ('\n')
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: T
                          spids: [12600]
                        )
                      ]
                    )
                    (C {($ VSub_Name '$MV')} {(DQ (${ VSub_Name write_libobj) (T))} 
                      {(DQ ($ VSub_Name '$write_libobj'))}
                    )
                  ]
                  spids: [12589]
                )
              ]
            )
          ]
          spids: [12512]
        )
      spids: [12507 12511]
    )
    (FuncDef
      name: func_convert_core_file_wine_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_convert_core_file_wine_to_w32_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [12698]
                )
              ]
              spids: [12698]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_convert_core_file_wine_to_w32_tmp)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (SimpleCommand
                                        words: [{(winepath)} {(-w)} {(DQ ($ VSub_Number '$1'))}]
                                        redirects: [
                                          (Redir
                                            op_id: Redir_Great
                                            fd: 2
                                            arg_word: {(/dev/null)}
                                            spids: [12746]
                                          )
                                        ]
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [12737 12748]
                              )
                            }
                          spids: [12736]
                        )
                      ]
                      spids: [12736]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(test)} {(DQ ($ VSub_QMark '$?'))} {(-eq)} {(0)})
                                    (C {(test)} {(-n)} 
                                      {(DQ ($ VSub_Name '$func_convert_core_file_wine_to_w32_tmp'))}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:func_convert_core_file_wine_to_w32_result)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {($ VSub_Name '$ECHO')} 
                                                    {
                                                      (DQ 
                                                        ($ VSub_Name 
'$func_convert_core_file_wine_to_w32_tmp'
                                                        )
                                                      )
                                                    }
                                                  )
                                                  (C {($ VSub_Name '$SED')} {(-e)} 
                                                    {(DQ ($ VSub_Name '$sed_naive_backslashify'))}
                                                  )
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [12778 12795]
                                      )
                                    }
                                  spids: [12777]
                                )
                              ]
                              spids: [12777]
                            )
                          ]
                          spids: [16777215 12774]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:func_convert_core_file_wine_to_w32_result)
                              op: Equal
                              rhs: {(EmptyPart)}
                              spids: [12801]
                            )
                          ]
                          spids: [12801]
                        )
                      ]
                      spids: [12798 12804]
                    )
                  ]
                  spids: [16777215 12713]
                )
              ]
              spids: [16777215 12807]
            )
          ]
          spids: [12691]
        )
      spids: [12686 12690]
    )
    (FuncDef
      name: func_convert_core_path_wine_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_convert_core_path_wine_to_w32_result)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [12862]
                )
              ]
              spids: [12862]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:oldIFS)
                          op: Equal
                          rhs: {($ VSub_Name '$IFS')}
                          spids: [12879]
                        )
                      ]
                      spids: [12879]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {(Lit_Other ':')}
                          spids: [12883]
                        )
                      ]
                      spids: [12883]
                    )
                    (ForEach
                      iter_name: func_convert_core_path_wine_to_w32_f
                      iter_words: [{($ VSub_Number '$1')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:IFS)
                                  op: Equal
                                  rhs: {($ VSub_Name '$oldIFS')}
                                  spids: [12899]
                                )
                              ]
                              spids: [12899]
                            )
                            (C {(func_convert_core_file_wine_to_w32)} 
                              {(DQ ($ VSub_Name '$func_convert_core_path_wine_to_w32_f'))}
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(test)} {(-n)} 
                                          {
                                            (DQ 
                                              ($ VSub_Name 
'$func_convert_core_file_wine_to_w32_result'
                                              )
                                            )
                                          }
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(test)} {(-z)} 
                                                  {
                                                    (DQ 
                                                      ($ VSub_Name 
'$func_convert_core_path_wine_to_w32_result'
                                                      )
                                                    )
                                                  }
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (LhsName
                                                      name: 
func_convert_core_path_wine_to_w32_result
                                                    )
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      ($ VSub_Name 
'$func_convert_core_file_wine_to_w32_result'
                                                      )
                                                    }
                                                  spids: [12938]
                                                )
                                              ]
                                              spids: [12938]
                                            )
                                          ]
                                          spids: [16777215 12935]
                                        )
                                      ]
                                      else_action: [
                                        (C {(func_append)} 
                                          {(func_convert_core_path_wine_to_w32_result)} {(DQ (';') ($ VSub_Name '$func_convert_core_file_wine_to_w32_result'))}
                                        )
                                      ]
                                      spids: [12942 12955]
                                    )
                                  ]
                                  spids: [16777215 12921]
                                )
                              ]
                              spids: [16777215 12958]
                            )
                          ]
                          spids: [12896 12961]
                        )
                      spids: [12892 12894]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:IFS)
                          op: Equal
                          rhs: {($ VSub_Name '$oldIFS')}
                          spids: [12964]
                        )
                      ]
                      spids: [12964]
                    )
                  ]
                  spids: [16777215 12876]
                )
              ]
              spids: [16777215 12968]
            )
          ]
          spids: [12851]
        )
      spids: [12846 12850]
    )
    (FuncDef
      name: func_cygpath
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name '$LT_CYGPATH'))})
                            (C {(test)} {(-f)} {(DQ ($ VSub_Name '$LT_CYGPATH'))})
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_cygpath_result)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (SimpleCommand
                                        words: [{($ VSub_Name '$LT_CYGPATH')} {(DQ ($ VSub_At '$@'))}]
                                        redirects: [
                                          (Redir
                                            op_id: Redir_Great
                                            fd: 2
                                            arg_word: {(/dev/null)}
                                            spids: [13066]
                                          )
                                        ]
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [13059 13068]
                              )
                            }
                          spids: [13058]
                        )
                      ]
                      spids: [13058]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(DQ ($ VSub_QMark '$?'))} {(-ne)} {(0)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:func_cygpath_result)
                                  op: Equal
                                  rhs: {(EmptyPart)}
                                  spids: [13091]
                                )
                              ]
                              spids: [13091]
                            )
                          ]
                          spids: [16777215 13084]
                        )
                      ]
                      spids: [16777215 13094]
                    )
                  ]
                  spids: [16777215 13055]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:func_cygpath_result)
                      op: Equal
                      rhs: {(EmptyPart)}
                      spids: [13100]
                    )
                  ]
                  spids: [13100]
                )
                (C {(func_error)} 
                  {
                    (DQ ("LT_CYGPATH is empty or specifies non-existent file: '") 
                      ($ VSub_Name '$LT_CYGPATH') ("'")
                    )
                  }
                )
              ]
              spids: [13097 13112]
            )
          ]
          spids: [13027]
        )
      spids: [13022 13026]
    )
    (FuncDef
      name: func_convert_core_msys_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_convert_core_msys_to_w32_result)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (Subshell
                                    child: (C {(cmd)} {(//c)} {(echo)} {(DQ ($ VSub_Number '$1'))})
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [13162]
                                      )
                                    ]
                                    spids: [13148 13160]
                                  )
                                  (C {($ VSub_Name '$SED')} {(-e)} {(SQ <'s/[ ]*$//'>)} {(-e)} 
                                    {(DQ ($ VSub_Name '$sed_naive_backslashify'))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [13147 13181]
                      )
                    }
                  spids: [13146]
                )
              ]
              spids: [13146]
            )
          ]
          spids: [13135]
        )
      spids: [13130 13134]
    )
    (FuncDef
      name: func_convert_file_check
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(-z)} {(DQ ($ VSub_Number '$2'))})
                            (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_error)} {(DQ ('Could not determine host file name corresponding to'))})
                    (C {(func_error)} {(DQ ("  '") ($ VSub_Number '$1') ("'"))})
                    (C {(func_error)} {(DQ ('Continuing, but uninstalled executables may not work.'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_file_result)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [13265]
                        )
                      ]
                      spids: [13265]
                    )
                  ]
                  spids: [16777215 13235]
                )
              ]
              spids: [16777215 13269]
            )
          ]
          spids: [13207]
        )
      spids: [13202 13206]
    )
    (FuncDef
      name: func_convert_path_check
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(-z)} {(DQ ($ VSub_Number '$4'))})
                            (C {(test)} {(-n)} {(DQ ($ VSub_Number '$3'))})
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_error)} {(DQ ('Could not determine the host path corresponding to'))})
                    (C {(func_error)} {(DQ ("  '") ($ VSub_Number '$3') ("'"))})
                    (C {(func_error)} {(DQ ('Continuing, but uninstalled executables may not work.'))})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(test)} {(DQ (x) ($ VSub_Number '$1'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ (x) ($ VSub_Number '$2'))}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:lt_replace_pathsep_chars)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ('s|') ($ VSub_Number '$1') ('|') ($ VSub_Number '$2') ('|g'))
                                    }
                                  spids: [13378]
                                )
                              ]
                              spids: [13378]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:func_to_host_path_result)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(echo)} {(DQ ($ VSub_Number '$3'))})
                                                  (C {($ VSub_Name '$SED')} {(-e)} 
                                                    {(DQ ($ VSub_Name '$lt_replace_pathsep_chars'))}
                                                  )
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [13389 13406]
                                      )
                                    }
                                  spids: [13388]
                                )
                              ]
                              spids: [13388]
                            )
                          ]
                          spids: [16777215 13375]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:func_to_host_path_result)
                              op: Equal
                              rhs: {($ VSub_Number '$3')}
                              spids: [13412]
                            )
                          ]
                          spids: [13412]
                        )
                      ]
                      spids: [13409 13416]
                    )
                  ]
                  spids: [16777215 13323]
                )
              ]
              spids: [16777215 13419]
            )
          ]
          spids: [13295]
        )
      spids: [13290 13294]
    )
    (FuncDef
      name: func_convert_path_front_back_pathsep
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Case
              to_match: {($ VSub_Number '$4')}
              arms: [
                (case_arm
                  pat_list: [{($ VSub_Number '$1')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_path_result)
                          op: Equal
                          rhs: {($ VSub_Number '$3') ($ VSub_Name '$func_to_host_path_result')}
                          spids: [13460]
                        )
                      ]
                      spids: [13460]
                    )
                  ]
                  spids: [13456 13458 13465 16777215]
                )
              ]
              spids: [13449 13453 13468]
            )
            (Case
              to_match: {($ VSub_Number '$4')}
              arms: [
                (case_arm
                  pat_list: [{($ VSub_Number '$2')}]
                  action: [(C {(func_append)} {(func_to_host_path_result)} {(DQ ($ VSub_Number '$3'))})]
                  spids: [13478 13480 13491 16777215]
                )
              ]
              spids: [13471 13475 13494]
            )
          ]
          spids: [13442]
        )
      spids: [13437 13441]
    )
    (FuncDef
      name: func_to_host_file
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {($ VSub_Name '$to_host_file_cmd')} {(DQ ($ VSub_Number '$1'))})
          ]
          spids: [13540]
        )
      spids: [13535 13539]
    )
    (FuncDef
      name: func_to_tool_file
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Case
              to_match: {(Lit_Comma ',') ($ VSub_Number '$2') (Lit_Comma ',')}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (Lit_Comma ',') (DQ ($ VSub_Name '$to_tool_file_cmd')) 
                      (Lit_Comma ',') (Lit_Other '*')
                    }
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_tool_file_result)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [13603]
                        )
                      ]
                      spids: [13603]
                    )
                  ]
                  spids: [13593 13600 13607 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {($ VSub_Name '$to_tool_file_cmd')} {(DQ ($ VSub_Number '$1'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_tool_file_result)
                          op: Equal
                          rhs: {($ VSub_Name '$func_to_host_file_result')}
                          spids: [13621]
                        )
                      ]
                      spids: [13621]
                    )
                  ]
                  spids: [13610 13611 13625 16777215]
                )
              ]
              spids: [13584 13590 13628]
            )
          ]
          spids: [13577]
        )
      spids: [13572 13576]
    )
    (FuncDef
      name: func_convert_file_noop
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_to_host_file_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [13651]
                )
              ]
              spids: [13651]
            )
          ]
          spids: [13648]
        )
      spids: [13643 13647]
    )
    (FuncDef
      name: func_convert_file_msys_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_to_host_file_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [13685]
                )
              ]
              spids: [13685]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_convert_core_msys_to_w32)} {(DQ ($ VSub_Number '$1'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_file_result)
                          op: Equal
                          rhs: {($ VSub_Name '$func_convert_core_msys_to_w32_result')}
                          spids: [13710]
                        )
                      ]
                      spids: [13710]
                    )
                  ]
                  spids: [16777215 13700]
                )
              ]
              spids: [16777215 13714]
            )
            (C {(func_convert_file_check)} {(DQ ($ VSub_Number '$1'))} 
              {(DQ ($ VSub_Name '$func_to_host_file_result'))}
            )
          ]
          spids: [13678]
        )
      spids: [13673 13677]
    )
    (FuncDef
      name: func_convert_file_cygwin_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_to_host_file_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [13755]
                )
              ]
              spids: [13755]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_file_result)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(cygpath)} {(-m)} {(DQ ($ VSub_Number '$1'))})]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [13782 13790]
                              )
                            }
                          spids: [13781]
                        )
                      ]
                      spids: [13781]
                    )
                  ]
                  spids: [16777215 13770]
                )
              ]
              spids: [16777215 13793]
            )
            (C {(func_convert_file_check)} {(DQ ($ VSub_Number '$1'))} 
              {(DQ ($ VSub_Name '$func_to_host_file_result'))}
            )
          ]
          spids: [13748]
        )
      spids: [13743 13747]
    )
    (FuncDef
      name: func_convert_file_nix_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_to_host_file_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [13834]
                )
              ]
              spids: [13834]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_convert_core_file_wine_to_w32)} {(DQ ($ VSub_Number '$1'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_file_result)
                          op: Equal
                          rhs: {($ VSub_Name '$func_convert_core_file_wine_to_w32_result')}
                          spids: [13859]
                        )
                      ]
                      spids: [13859]
                    )
                  ]
                  spids: [16777215 13849]
                )
              ]
              spids: [16777215 13863]
            )
            (C {(func_convert_file_check)} {(DQ ($ VSub_Number '$1'))} 
              {(DQ ($ VSub_Name '$func_to_host_file_result'))}
            )
          ]
          spids: [13827]
        )
      spids: [13822 13826]
    )
    (FuncDef
      name: func_convert_file_msys_to_cygwin
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_to_host_file_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [13904]
                )
              ]
              spids: [13904]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_convert_core_msys_to_w32)} {(DQ ($ VSub_Number '$1'))})
                    (C {(func_cygpath)} {(-u)} 
                      {(DQ ($ VSub_Name '$func_convert_core_msys_to_w32_result'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_file_result)
                          op: Equal
                          rhs: {($ VSub_Name '$func_cygpath_result')}
                          spids: [13938]
                        )
                      ]
                      spids: [13938]
                    )
                  ]
                  spids: [16777215 13919]
                )
              ]
              spids: [16777215 13942]
            )
            (C {(func_convert_file_check)} {(DQ ($ VSub_Number '$1'))} 
              {(DQ ($ VSub_Name '$func_to_host_file_result'))}
            )
          ]
          spids: [13897]
        )
      spids: [13892 13896]
    )
    (FuncDef
      name: func_convert_file_nix_to_cygwin
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_to_host_file_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [13986]
                )
              ]
              spids: [13986]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_convert_core_file_wine_to_w32)} {(DQ ($ VSub_Number '$1'))})
                    (C {(func_cygpath)} {(-u)} 
                      {(DQ ($ VSub_Name '$func_convert_core_file_wine_to_w32_result'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_file_result)
                          op: Equal
                          rhs: {($ VSub_Name '$func_cygpath_result')}
                          spids: [14024]
                        )
                      ]
                      spids: [14024]
                    )
                  ]
                  spids: [16777215 14001]
                )
              ]
              spids: [16777215 14028]
            )
            (C {(func_convert_file_check)} {(DQ ($ VSub_Number '$1'))} 
              {(DQ ($ VSub_Name '$func_to_host_file_result'))}
            )
          ]
          spids: [13979]
        )
      spids: [13974 13978]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:to_host_path_cmd)
          op: Equal
          rhs: {(EmptyPart)}
          spids: [14116]
        )
      ]
      spids: [14116]
    )
    (FuncDef
      name: func_init_to_host_path_cmd
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$to_host_path_cmd'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_stripname)} {(SQ <func_convert_file_>)} {(SQ )} 
                      {(DQ ($ VSub_Name '$to_host_file_cmd'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:to_host_path_cmd)
                          op: Equal
                          rhs: {(func_convert_path_) ($ VSub_Name '$func_stripname_result')}
                          spids: [14158]
                        )
                      ]
                      spids: [14158]
                    )
                  ]
                  spids: [16777215 14141]
                )
              ]
              spids: [16777215 14163]
            )
          ]
          spids: [14123]
        )
      spids: [14118 14122]
    )
    (FuncDef
      name: func_to_host_path
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (C {(func_init_to_host_path_cmd)})
            (C {($ VSub_Name '$to_host_path_cmd')} {(DQ ($ VSub_Number '$1'))})
          ]
          spids: [14183]
        )
      spids: [14178 14182]
    )
    (FuncDef
      name: func_convert_path_noop
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_to_host_path_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [14220]
                )
              ]
              spids: [14220]
            )
          ]
          spids: [14217]
        )
      spids: [14212 14216]
    )
    (FuncDef
      name: func_convert_path_msys_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_to_host_path_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [14254]
                )
              ]
              spids: [14254]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_stripname)} {(Lit_Other ':')} {(Lit_Other ':')} {(DQ ($ VSub_Number '$1'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_path_tmp1)
                          op: Equal
                          rhs: {($ VSub_Name '$func_stripname_result')}
                          spids: [14295]
                        )
                      ]
                      spids: [14295]
                    )
                    (C {(func_convert_core_msys_to_w32)} {(DQ ($ VSub_Name '$func_to_host_path_tmp1'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_path_result)
                          op: Equal
                          rhs: {($ VSub_Name '$func_convert_core_msys_to_w32_result')}
                          spids: [14306]
                        )
                      ]
                      spids: [14306]
                    )
                    (C {(func_convert_path_check)} {(Lit_Other ':')} {(DQ (';'))} 
                      {(DQ ($ VSub_Name '$func_to_host_path_tmp1'))} {(DQ ($ VSub_Name '$func_to_host_path_result'))}
                    )
                    (C {(func_convert_path_front_back_pathsep)} {(DQ (':*'))} {(DQ ('*:'))} {(DQ (';'))} 
                      {(DQ ($ VSub_Number '$1'))}
                    )
                  ]
                  spids: [16777215 14269]
                )
              ]
              spids: [16777215 14348]
            )
          ]
          spids: [14247]
        )
      spids: [14242 14246]
    )
    (FuncDef
      name: func_convert_path_cygwin_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_to_host_path_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [14378]
                )
              ]
              spids: [14378]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_stripname)} {(Lit_Other ':')} {(Lit_Other ':')} {(DQ ($ VSub_Number '$1'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_path_tmp1)
                          op: Equal
                          rhs: {($ VSub_Name '$func_stripname_result')}
                          spids: [14411]
                        )
                      ]
                      spids: [14411]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_path_result)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(cygpath)} {(-m)} {(-p)} 
                                        {(DQ ($ VSub_Name '$func_to_host_path_tmp1'))}
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [14416 14426]
                              )
                            }
                          spids: [14415]
                        )
                      ]
                      spids: [14415]
                    )
                    (C {(func_convert_path_check)} {(Lit_Other ':')} {(DQ (';'))} 
                      {(DQ ($ VSub_Name '$func_to_host_path_tmp1'))} {(DQ ($ VSub_Name '$func_to_host_path_result'))}
                    )
                    (C {(func_convert_path_front_back_pathsep)} {(DQ (':*'))} {(DQ ('*:'))} {(DQ (';'))} 
                      {(DQ ($ VSub_Number '$1'))}
                    )
                  ]
                  spids: [16777215 14393]
                )
              ]
              spids: [16777215 14467]
            )
          ]
          spids: [14371]
        )
      spids: [14366 14370]
    )
    (FuncDef
      name: func_convert_path_nix_to_w32
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_to_host_path_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [14497]
                )
              ]
              spids: [14497]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_stripname)} {(Lit_Other ':')} {(Lit_Other ':')} {(DQ ($ VSub_Number '$1'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_path_tmp1)
                          op: Equal
                          rhs: {($ VSub_Name '$func_stripname_result')}
                          spids: [14530]
                        )
                      ]
                      spids: [14530]
                    )
                    (C {(func_convert_core_path_wine_to_w32)} 
                      {(DQ ($ VSub_Name '$func_to_host_path_tmp1'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_path_result)
                          op: Equal
                          rhs: {($ VSub_Name '$func_convert_core_path_wine_to_w32_result')}
                          spids: [14541]
                        )
                      ]
                      spids: [14541]
                    )
                    (C {(func_convert_path_check)} {(Lit_Other ':')} {(DQ (';'))} 
                      {(DQ ($ VSub_Name '$func_to_host_path_tmp1'))} {(DQ ($ VSub_Name '$func_to_host_path_result'))}
                    )
                    (C {(func_convert_path_front_back_pathsep)} {(DQ (':*'))} {(DQ ('*:'))} {(DQ (';'))} 
                      {(DQ ($ VSub_Number '$1'))}
                    )
                  ]
                  spids: [16777215 14512]
                )
              ]
              spids: [16777215 14583]
            )
          ]
          spids: [14490]
        )
      spids: [14485 14489]
    )
    (FuncDef
      name: func_convert_path_msys_to_cygwin
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_to_host_path_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [14613]
                )
              ]
              spids: [14613]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_stripname)} {(Lit_Other ':')} {(Lit_Other ':')} {(DQ ($ VSub_Number '$1'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_path_tmp1)
                          op: Equal
                          rhs: {($ VSub_Name '$func_stripname_result')}
                          spids: [14646]
                        )
                      ]
                      spids: [14646]
                    )
                    (C {(func_convert_core_msys_to_w32)} {(DQ ($ VSub_Name '$func_to_host_path_tmp1'))})
                    (C {(func_cygpath)} {(-u)} {(-p)} 
                      {(DQ ($ VSub_Name '$func_convert_core_msys_to_w32_result'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_path_result)
                          op: Equal
                          rhs: {($ VSub_Name '$func_cygpath_result')}
                          spids: [14668]
                        )
                      ]
                      spids: [14668]
                    )
                    (C {(func_convert_path_check)} {(Lit_Other ':')} {(Lit_Other ':')} 
                      {(DQ ($ VSub_Name '$func_to_host_path_tmp1'))} {(DQ ($ VSub_Name '$func_to_host_path_result'))}
                    )
                    (C {(func_convert_path_front_back_pathsep)} {(DQ (':*'))} {(DQ ('*:'))} 
                      {(Lit_Other ':')} {(DQ ($ VSub_Number '$1'))}
                    )
                  ]
                  spids: [16777215 14628]
                )
              ]
              spids: [16777215 14706]
            )
          ]
          spids: [14606]
        )
      spids: [14601 14605]
    )
    (FuncDef
      name: func_convert_path_nix_to_cygwin
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_to_host_path_result)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [14739]
                )
              ]
              spids: [14739]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Number '$1'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(func_stripname)} {(Lit_Other ':')} {(Lit_Other ':')} {(DQ ($ VSub_Number '$1'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_path_tmp1)
                          op: Equal
                          rhs: {($ VSub_Name '$func_stripname_result')}
                          spids: [14780]
                        )
                      ]
                      spids: [14780]
                    )
                    (C {(func_convert_core_path_wine_to_w32)} 
                      {(DQ ($ VSub_Name '$func_to_host_path_tmp1'))}
                    )
                    (C {(func_cygpath)} {(-u)} {(-p)} 
                      {(DQ ($ VSub_Name '$func_convert_core_path_wine_to_w32_result'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:func_to_host_path_result)
                          op: Equal
                          rhs: {($ VSub_Name '$func_cygpath_result')}
                          spids: [14802]
                        )
                      ]
                      spids: [14802]
                    )
                    (C {(func_convert_path_check)} {(Lit_Other ':')} {(Lit_Other ':')} 
                      {(DQ ($ VSub_Name '$func_to_host_path_tmp1'))} {(DQ ($ VSub_Name '$func_to_host_path_result'))}
                    )
                    (C {(func_convert_path_front_back_pathsep)} {(DQ (':*'))} {(DQ ('*:'))} 
                      {(Lit_Other ':')} {(DQ ($ VSub_Number '$1'))}
                    )
                  ]
                  spids: [16777215 14754]
                )
              ]
              spids: [16777215 14840]
            )
          ]
          spids: [14732]
        )
      spids: [14727 14731]
    )
    (FuncDef
      name: func_dll_def_p
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:func_dll_def_p_tmp)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {($ VSub_Name '$SED')} {(-n)} {(-e)} {(SQ <'s/^[\t ]*//'>)} {(-e)} 
                                {(SQ <'/^\\(;.*\\)*$/d'>)} {(-e)} {(SQ <'s/^\\(EXPORTS\\|LIBRARY\\)\\([\t ].*\\)*$/DEF/p'>)} {(-e)} {(q)} {(DQ ($ VSub_Number '$1'))}
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [14871 14911]
                      )
                    }
                  spids: [14870]
                )
              ]
              spids: [14870]
            )
            (C {(test)} {(DEF)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$func_dll_def_p_tmp'))})
          ]
          spids: [14863]
        )
      spids: [14858 14862]
    )
    (FuncDef
      name: func_mode_compile
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:base_compile)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [14947]
                )
              ]
              spids: [14947]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:srcfile)
                  op: Equal
                  rhs: {($ VSub_Name '$nonopt')}
                  spids: [14950]
                )
              ]
              spids: [14950]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:suppress_opt)
                  op: Equal
                  rhs: {(yes)}
                  spids: [14957]
                )
              ]
              spids: [14957]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:suppress_output)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [14961]
                )
              ]
              spids: [14961]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:arg_mode) op:Equal rhs:{(normal)} spids:[14964])]
              spids: [14964]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:libobj)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [14968]
                )
              ]
              spids: [14968]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:later) op:Equal rhs:{(EmptyPart)} spids:[14971])]
              spids: [14971]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pie_flag)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [14974]
                )
              ]
              spids: [14974]
            )
            (ForEach
              iter_name: arg
              do_arg_iter: T
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {($ VSub_Name '$arg_mode')}
                      arms: [
                        (case_arm
                          pat_list: [{(arg)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:lastarg)
                                  op: Equal
                                  rhs: {($ VSub_Name '$arg')}
                                  spids: [15002]
                                )
                              ]
                              spids: [15002]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:arg_mode)
                                  op: Equal
                                  rhs: {(normal)}
                                  spids: [15006]
                                )
                              ]
                              spids: [15006]
                            )
                          ]
                          spids: [14993 14995 15010 16777215]
                        )
                        (case_arm
                          pat_list: [{(target)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:libobj)
                                  op: Equal
                                  rhs: {($ VSub_Name '$arg')}
                                  spids: [15019]
                                )
                              ]
                              spids: [15019]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:arg_mode)
                                  op: Equal
                                  rhs: {(normal)}
                                  spids: [15023]
                                )
                              ]
                              spids: [15023]
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [15014 15016 15030 16777215]
                        )
                        (case_arm
                          pat_list: [{(normal)}]
                          action: [
                            (Case
                              to_match: {($ VSub_Name '$arg')}
                              arms: [
                                (case_arm
                                  pat_list: [{(-o)}]
                                  action: [
                                    (AndOr
                                      ops: [Op_DAmp]
                                      children: [
                                        (C {(test)} {(-n)} {(DQ ($ VSub_Name '$libobj'))})
                                        (C {(func_fatal_error)} 
                                          {(DQ ("you cannot specify '-o' more than once"))}
                                        )
                                      ]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:arg_mode)
                                          op: Equal
                                          rhs: {(target)}
                                          spids: [15073]
                                        )
                                      ]
                                      spids: [15073]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [15050 15051 15080 16777215]
                                )
                                (case_arm
                                  pat_list: [{(-pie)} {(-fpie)} {(-fPIE)}]
                                  action: [
                                    (C {(func_append)} {(pie_flag)} {(DQ (' ') ($ VSub_Name '$arg'))})
                                    (ControlFlow
                                      token: <ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [15084 15093 15109 16777215]
                                )
                                (case_arm
                                  pat_list: [{(-shared)} {(-static)} {(-prefer-pic)} {(-prefer-non-pic)}]
                                  action: [
                                    (C {(func_append)} {(later)} {(DQ (' ') ($ VSub_Name '$arg'))})
                                    (ControlFlow
                                      token: <ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [15113 15126 15142 16777215]
                                )
                                (case_arm
                                  pat_list: [{(-no-suppress)}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:suppress_opt)
                                          op: Equal
                                          rhs: {(no)}
                                          spids: [15150]
                                        )
                                      ]
                                      spids: [15150]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [15146 15147 15157 16777215]
                                )
                                (case_arm
                                  pat_list: [{(-Xcompiler)}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:arg_mode)
                                          op: Equal
                                          rhs: {(arg)}
                                          spids: [15165]
                                        )
                                      ]
                                      spids: [15165]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [15161 15162 15178 16777215]
                                )
                                (case_arm
                                  pat_list: [{(-Wc) (Lit_Comma ',') (Lit_Other '*')}]
                                  action: [
                                    (C {(func_stripname)} {(SQ <'-Wc,'>)} {(SQ )} 
                                      {(DQ ($ VSub_Name '$arg'))}
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:args)
                                          op: Equal
                                          rhs: {($ VSub_Name '$func_stripname_result')}
                                          spids: [15205]
                                        )
                                      ]
                                      spids: [15205]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:lastarg)
                                          op: Equal
                                          rhs: {(EmptyPart)}
                                          spids: [15209]
                                        )
                                      ]
                                      spids: [15209]
                                    )
                                    (Sentence
                                      child: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:save_ifs)
                                              op: Equal
                                              rhs: {($ VSub_Name '$IFS')}
                                              spids: [15212]
                                            )
                                          ]
                                          spids: [15212]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:IFS)
                                          op: Equal
                                          rhs: {(Lit_Comma ',')}
                                          spids: [15216]
                                        )
                                      ]
                                      spids: [15216]
                                    )
                                    (ForEach
                                      iter_name: arg
                                      iter_words: [{($ VSub_Name '$args')}]
                                      do_arg_iter: F
                                      body: 
                                        (DoGroup
                                          children: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:IFS)
                                                  op: Equal
                                                  rhs: {($ VSub_Name '$save_ifs')}
                                                  spids: [15232]
                                                )
                                              ]
                                              spids: [15232]
                                            )
                                            (C {(func_append_quoted)} {(lastarg)} 
                                              {(DQ ($ VSub_Name '$arg'))}
                                            )
                                          ]
                                          spids: [15229 15245]
                                        )
                                      spids: [15225 15227]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:IFS)
                                          op: Equal
                                          rhs: {($ VSub_Name '$save_ifs')}
                                          spids: [15248]
                                        )
                                      ]
                                      spids: [15248]
                                    )
                                    (C {(func_stripname)} {(SQ <' '>)} {(SQ )} 
                                      {(DQ ($ VSub_Name '$lastarg'))}
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:lastarg)
                                          op: Equal
                                          rhs: {($ VSub_Name '$func_stripname_result')}
                                          spids: [15266]
                                        )
                                      ]
                                      spids: [15266]
                                    )
                                    (C {(func_append)} {(base_compile)} 
                                      {(DQ (' ') ($ VSub_Name '$lastarg'))}
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [15185 15188 15288 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:lastarg)
                                          op: Equal
                                          rhs: {($ VSub_Name '$srcfile')}
                                          spids: [15308]
                                        )
                                      ]
                                      spids: [15308]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:srcfile)
                                          op: Equal
                                          rhs: {($ VSub_Name '$arg')}
                                          spids: [15312]
                                        )
                                      ]
                                      spids: [15312]
                                    )
                                  ]
                                  spids: [15292 15293 15316 16777215]
                                )
                              ]
                              spids: [15043 15047 15319]
                            )
                          ]
                          spids: [15034 15036 15325 16777215]
                        )
                      ]
                      spids: [14986 14990 15328]
                    )
                    (C {(func_append_quoted)} {(base_compile)} {(DQ ($ VSub_Name '$lastarg'))})
                  ]
                  spids: [14983 15348]
                )
              spids: [16777215 16777215]
            )
            (Case
              to_match: {($ VSub_Name '$arg_mode')}
              arms: [
                (case_arm
                  pat_list: [{(arg)}]
                  action: [
                    (C {(func_fatal_error)} {(DQ ('you must specify an argument for -Xcompile'))})
                  ]
                  spids: [15362 15363 15373 16777215]
                )
                (case_arm
                  pat_list: [{(target)}]
                  action: [(C {(func_fatal_error)} {(DQ ("you must specify a target with '-o'"))})]
                  spids: [15376 15377 15387 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(-z)} {(DQ ($ VSub_Name '$libobj'))})
                        (BraceGroup
                          children: [
                            (C {(func_basename)} {(DQ ($ VSub_Name '$srcfile'))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:libobj)
                                  op: Equal
                                  rhs: {($ VSub_Name '$func_basename_result')}
                                  spids: [15418]
                                )
                              ]
                              spids: [15418]
                            )
                          ]
                          spids: [15408]
                        )
                      ]
                    )
                  ]
                  spids: [15390 15391 15425 16777215]
                )
              ]
              spids: [15355 15359 15428]
            )
            (Case
              to_match: {($ VSub_Name '$libobj')}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (.) (Lit_Other '[') (cCFSifmso) (Lit_Other ']')}
                    {(Lit_Other '*') (.ada)}
                    {(Lit_Other '*') (.adb)}
                    {(Lit_Other '*') (.ads)}
                    {(Lit_Other '*') (.asm)}
                    {(Lit_Other '*') (.c) (Lit_Other '+') (Lit_Other '+')}
                    {(Lit_Other '*') (.cc)}
                    {(Lit_Other '*') (.ii)}
                    {(Lit_Other '*') (.class)}
                    {(Lit_Other '*') (.cpp)}
                    {(Lit_Other '*') (.cxx)}
                    {(Lit_Other '*') (.) (Lit_Other '[') (fF) (Lit_Other ']') (Lit_Other '[') (09) 
                      (Lit_Other ']') (Lit_Other '?')
                    }
                    {(Lit_Other '*') (.for)}
                    {(Lit_Other '*') (.java)}
                    {(Lit_Other '*') (.go)}
                    {(Lit_Other '*') (.obj)}
                    {(Lit_Other '*') (.sx)}
                    {(Lit_Other '*') (.cu)}
                    {(Lit_Other '*') (.cup)}
                  ]
                  action: [
                    (C {(func_xform)} {(DQ ($ VSub_Name '$libobj'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:libobj)
                          op: Equal
                          rhs: {($ VSub_Name '$func_xform_result')}
                          spids: [15567]
                        )
                      ]
                      spids: [15567]
                    )
                  ]
                  spids: [15447 15557 15571 16777215]
                )
              ]
              spids: [15440 15444 15574]
            )
            (Case
              to_match: {($ VSub_Name '$libobj')}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (.lo)}]
                  action: [
                    (Sentence
                      child: (C {(func_lo2o)} {(DQ ($ VSub_Name '$libobj'))})
                      terminator: <Op_Semi ';'>
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:obj)
                          op: Equal
                          rhs: {($ VSub_Name '$func_lo2o_result')}
                          spids: [15596]
                        )
                      ]
                      spids: [15596]
                    )
                  ]
                  spids: [15585 15587 15599 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(func_fatal_error)} 
                      {
                        (DQ ("cannot determine name of library object from '") ($ VSub_Name '$libobj') 
                          ("'")
                        )
                      }
                    )
                  ]
                  spids: [15602 15603 15615 16777215]
                )
              ]
              spids: [15578 15582 15618]
            )
            (C {(func_infer_tag)} {($ VSub_Name '$base_compile')})
            (ForEach
              iter_name: arg
              iter_words: [{($ VSub_Name '$later')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {($ VSub_Name '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{(-shared)}]
                          action: [
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(test)} {(yes)} {(Lit_Other '=')} 
                                  {(DQ ($ VSub_Name '$build_libtool_libs'))}
                                )
                                (C {(func_fatal_configuration)} {(DQ ('cannot build a shared library'))})
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:build_old_libs)
                                  op: Equal
                                  rhs: {(no)}
                                  spids: [15672]
                                )
                              ]
                              spids: [15672]
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [15647 15648 15679 16777215]
                        )
                        (case_arm
                          pat_list: [{(-static)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:build_libtool_libs)
                                  op: Equal
                                  rhs: {(no)}
                                  spids: [15687]
                                )
                              ]
                              spids: [15687]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:build_old_libs)
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [15691]
                                )
                              ]
                              spids: [15691]
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [15683 15684 15698 16777215]
                        )
                        (case_arm
                          pat_list: [{(-prefer-pic)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pic_mode)
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [15706]
                                )
                              ]
                              spids: [15706]
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [15702 15703 15713 16777215]
                        )
                        (case_arm
                          pat_list: [{(-prefer-non-pic)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pic_mode)
                                  op: Equal
                                  rhs: {(no)}
                                  spids: [15721]
                                )
                              ]
                              spids: [15721]
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [15717 15718 15728 16777215]
                        )
                      ]
                      spids: [15640 15644 15731]
                    )
                  ]
                  spids: [15637 15734]
                )
              spids: [15633 15635]
            )
            (C {(func_quote_for_eval)} {(DQ ($ VSub_Name '$libobj'))})
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (C {(test)} {(DQ (X) ($ VSub_Name '$libobj'))} {(KW_Bang '!') (Lit_Other '=')} 
                  {(DQ (X) ($ VSub_Name '$func_quote_for_eval_result'))}
                )
                (Pipeline
                  children: [
                    (C {($ VSub_Name '$ECHO')} {(DQ (X) ($ VSub_Name '$libobj'))})
                    (C {($ VSub_Name '$GREP')} {(SQ <'[]~#^*{};<>?"'>) (DQ ("'")) (SQ <'\t &()|`$[]'>)})
                  ]
                  negated: F
                )
                (C {(func_warning)} 
                  {
                    (DQ ("libobj name '") ($ VSub_Name '$libobj') 
                      ("' may not contain shell special characters.")
                    )
                  }
                )
              ]
            )
            (C {(func_dirname_and_basename)} {(DQ ($ VSub_Name '$obj'))} {(DQ (/))} {(DQ )})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:objname)
                  op: Equal
                  rhs: {($ VSub_Name '$func_basename_result')}
                  spids: [15812]
                )
              ]
              spids: [15812]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:xdir)
                  op: Equal
                  rhs: {($ VSub_Name '$func_dirname_result')}
                  spids: [15816]
                )
              ]
              spids: [15816]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lobj)
                  op: Equal
                  rhs: {($ VSub_Name '$xdir') ($ VSub_Name '$objdir') (/) ($ VSub_Name '$objname')}
                  spids: [15820]
                )
              ]
              spids: [15820]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-z)} {(DQ ($ VSub_Name '$base_compile'))})
                (C {(func_fatal_help)} {(DQ ('you must specify a compilation command'))})
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$build_old_libs'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:removelist)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name '$obj') (' ') ($ VSub_Name '$lobj') (' ') 
                                ($ VSub_Name '$libobj') (' ') (${ VSub_Name libobj) (T)
                              )
                            }
                          spids: [15868]
                        )
                      ]
                      spids: [15868]
                    )
                  ]
                  spids: [16777215 15865]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:removelist)
                      op: Equal
                      rhs: 
                        {
                          (DQ ($ VSub_Name '$lobj') (' ') ($ VSub_Name '$libobj') (' ') 
                            (${ VSub_Name libobj) (T)
                          )
                        }
                      spids: [15886]
                    )
                  ]
                  spids: [15886]
                )
              ]
              spids: [15883 15899]
            )
            (Case
              to_match: {($ VSub_Name '$host_os')}
              arms: [
                (case_arm
                  pat_list: [
                    {(cygwin) (Lit_Other '*')}
                    {(mingw) (Lit_Other '*')}
                    {(pw32) (Lit_Other '*')}
                    {(os2) (Lit_Other '*')}
                    {(cegcc) (Lit_Other '*')}
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pic_mode)
                          op: Equal
                          rhs: {(default)}
                          spids: [15939]
                        )
                      ]
                      spids: [15939]
                    )
                  ]
                  spids: [15914 15936 15943 16777215]
                )
              ]
              spids: [15907 15911 15946]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(no)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$pic_mode'))})
                            (C {(test)} {(pass_all)} {(KW_Bang '!') (Lit_Other '=')} 
                              {(DQ ($ VSub_Name '$deplibs_check_method'))}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pic_mode)
                          op: Equal
                          rhs: {(default)}
                          spids: [15982]
                        )
                      ]
                      spids: [15982]
                    )
                  ]
                  spids: [16777215 15975]
                )
              ]
              spids: [16777215 15986]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(no)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$compiler_c_o'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:output_obj)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Name '$srcfile'))})
                                          (C {($ VSub_Name '$SED')} {(SQ <'s%^.*/%%; s%\\.[^.]*$%%'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [16015 16029]
                              ) (.) ($ VSub_Name '$objext')
                            }
                          spids: [16014]
                        )
                      ]
                      spids: [16014]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:lockfile)
                          op: Equal
                          rhs: {($ VSub_Name '$output_obj') (.lock)}
                          spids: [16034]
                        )
                      ]
                      spids: [16034]
                    )
                  ]
                  spids: [16777215 16011]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:output_obj)
                      op: Equal
                      rhs: {(EmptyPart)}
                      spids: [16042]
                    )
                  ]
                  spids: [16042]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:need_locks)
                      op: Equal
                      rhs: {(no)}
                      spids: [16045]
                    )
                  ]
                  spids: [16045]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:lockfile)
                      op: Equal
                      rhs: {(EmptyPart)}
                      spids: [16049]
                    )
                  ]
                  spids: [16049]
                )
              ]
              spids: [16039 16052]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$need_locks'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Until
                      cond: [
                        (Sentence
                          child: 
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {($ VSub_Name '$opt_dry_run')})
                                (SimpleCommand
                                  words: [
                                    {(ln)}
                                    {(DQ ($ VSub_Name '$progpath'))}
                                    {(DQ ($ VSub_Name '$lockfile'))}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 2
                                      arg_word: {(/dev/null)}
                                      spids: [16096]
                                    )
                                  ]
                                )
                              ]
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (C {(func_echo)} 
                              {(DQ ('Waiting for ') ($ VSub_Name '$lockfile') (' to be removed'))}
                            )
                            (C {(sleep)} {(2)})
                          ]
                          spids: [16100 16117]
                        )
                    )
                  ]
                  spids: [16777215 16077]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(warn)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$need_locks'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-f)} {(DQ ($ VSub_Name '$lockfile'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {($ VSub_Name '$ECHO')} 
                              {
                                (DQ ('*** ERROR, ') ($ VSub_Name '$lockfile') 
                                  (' exists and contains:\n') 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (SimpleCommand
                                            words: [{(cat)} {($ VSub_Name '$lockfile')}]
                                            redirects: [
                                              (Redir
                                                op_id: Redir_Great
                                                fd: 2
                                                arg_word: {(/dev/null)}
                                                spids: [16162]
                                              )
                                            ]
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [16157 16164]
                                  ) ('\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.)
                                )
                              }
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {($ VSub_Name '$opt_dry_run')})
                                (C {($ VSub_Name '$RM')} {($ VSub_Name '$removelist')})
                              ]
                            )
                            (ControlFlow
                              token: <ControlFlow_Exit exit>
                              arg_word: {($ VSub_Name '$EXIT_FAILURE')}
                            )
                          ]
                          spids: [16777215 16147]
                        )
                      ]
                      spids: [16777215 16191]
                    )
                    (C {(func_append)} {(removelist)} {(DQ (' ') ($ VSub_Name '$output_obj'))})
                    (SimpleCommand
                      words: [{($ VSub_Name '$ECHO')} {(DQ ($ VSub_Name '$srcfile'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$lockfile'))}
                          spids: [16210]
                        )
                      ]
                    )
                  ]
                  spids: [16120 16133]
                )
              ]
              spids: [16777215 16217]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {($ VSub_Name '$opt_dry_run')})
                (C {($ VSub_Name '$RM')} {($ VSub_Name '$removelist')})
              ]
            )
            (C {(func_append)} {(removelist)} {(DQ (' ') ($ VSub_Name '$lockfile'))})
            (C {(trap)} {(SQ <'$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'>)} {(1)} {(2)} {(15)})
            (C {(func_to_tool_file)} {(DQ ($ VSub_Name '$srcfile'))} {(func_convert_file_msys_to_w32)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:srcfile)
                  op: Equal
                  rhs: {($ VSub_Name '$func_to_tool_file_result')}
                  spids: [16263]
                )
              ]
              spids: [16263]
            )
            (C {(func_quote_for_eval)} {(DQ ($ VSub_Name '$srcfile'))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:qsrcfile)
                  op: Equal
                  rhs: {($ VSub_Name '$func_quote_for_eval_result')}
                  spids: [16274]
                )
              ]
              spids: [16274]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$build_libtool_libs'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:fbsd_hideous_sh_bug)
                          op: Equal
                          rhs: {($ VSub_Name '$base_compile')}
                          spids: [16303]
                        )
                      ]
                      spids: [16303]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(test)} {(no)} {(KW_Bang '!') (Lit_Other '=')} 
                                  {(DQ ($ VSub_Name '$pic_mode'))}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:command)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$base_compile') (' ') ($ VSub_Name '$qsrcfile') 
                                        (' ') ($ VSub_Name '$pic_flag')
                                      )
                                    }
                                  spids: [16325]
                                )
                              ]
                              spids: [16325]
                            )
                          ]
                          spids: [16777215 16322]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:command)
                              op: Equal
                              rhs: {(DQ ($ VSub_Name '$base_compile') (' ') ($ VSub_Name '$qsrcfile'))}
                              spids: [16342]
                            )
                          ]
                          spids: [16342]
                        )
                      ]
                      spids: [16335 16350]
                    )
                    (C {(func_mkdir_p)} {(DQ ($ VSub_Name '$xdir') ($ VSub_Name '$objdir'))})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$output_obj'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(func_append)} {(command)} {(DQ (' -o ') ($ VSub_Name '$lobj'))})]
                          spids: [16777215 16374]
                        )
                      ]
                      spids: [16777215 16391]
                    )
                    (C {(func_show_eval_locale)} {(DQ ($ VSub_Name '$command'))} 
                      {(SQ <'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'>)}
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(test)} {(warn)} {(Lit_Other '=')} 
                                      {(DQ ($ VSub_Name '$need_locks'))}
                                    )
                                    (C {(test)} 
                                      {
                                        (DQ (X) 
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (SimpleCommand
                                                    words: [{(cat)} {($ VSub_Name '$lockfile')}]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_Great
                                                        fd: 2
                                                        arg_word: {(/dev/null)}
                                                        spids: [16433]
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [16428 16435]
                                          )
                                        )
                                      } {(KW_Bang '!') (Lit_Other '=')} {(DQ (X) ($ VSub_Name '$srcfile'))}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {($ VSub_Name '$ECHO')} 
                              {
                                (DQ ('*** ERROR, ') ($ VSub_Name '$lockfile') (' contains:\n') 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (SimpleCommand
                                            words: [{(cat)} {($ VSub_Name '$lockfile')}]
                                            redirects: [
                                              (Redir
                                                op_id: Redir_Great
                                                fd: 2
                                                arg_word: {(/dev/null)}
                                                spids: [16462]
                                              )
                                            ]
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [16457 16464]
                                  ) ('\n') ('\n') ('but it should contain:\n') ($ VSub_Name '$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.)
                                )
                              }
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {($ VSub_Name '$opt_dry_run')})
                                (C {($ VSub_Name '$RM')} {($ VSub_Name '$removelist')})
                              ]
                            )
                            (ControlFlow
                              token: <ControlFlow_Exit exit>
                              arg_word: {($ VSub_Name '$EXIT_FAILURE')}
                            )
                          ]
                          spids: [16777215 16447]
                        )
                      ]
                      spids: [16777215 16495]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(test)} {(-n)} {(DQ ($ VSub_Name '$output_obj'))})
                                    (C {(test)} {(DQ (X) ($ VSub_Name '$output_obj'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ (X) ($ VSub_Name '$lobj'))}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(func_show_eval)} {(SQ <'$MV "$output_obj" "$lobj"'>)} 
                              {(SQ <'error=$?; $opt_dry_run || $RM $removelist; exit $error'>)}
                            )
                          ]
                          spids: [16777215 16531]
                        )
                      ]
                      spids: [16777215 16547]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$suppress_opt'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:suppress_output)
                                  op: Equal
                                  rhs: {(SQ <' >/dev/null 2>&1'>)}
                                  spids: [16571]
                                )
                              ]
                              spids: [16571]
                            )
                          ]
                          spids: [16777215 16568]
                        )
                      ]
                      spids: [16777215 16577]
                    )
                  ]
                  spids: [16777215 16296]
                )
              ]
              spids: [16777215 16580]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$build_old_libs'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(test)} {(yes)} {(KW_Bang '!') (Lit_Other '=')} 
                                  {(DQ ($ VSub_Name '$pic_mode'))}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:command)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$base_compile') (' ') ($ VSub_Name '$qsrcfile') 
                                        ($ VSub_Name '$pie_flag')
                                      )
                                    }
                                  spids: [16625]
                                )
                              ]
                              spids: [16625]
                            )
                          ]
                          spids: [16777215 16618]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:command)
                              op: Equal
                              rhs: 
                                {
                                  (DQ ($ VSub_Name '$base_compile') (' ') ($ VSub_Name '$qsrcfile') 
                                    (' ') ($ VSub_Name '$pic_flag')
                                  )
                                }
                              spids: [16637]
                            )
                          ]
                          spids: [16637]
                        )
                      ]
                      spids: [16634 16647]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(test)} {(yes)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$compiler_c_o'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(func_append)} {(command)} {(DQ (' -o ') ($ VSub_Name '$obj'))})]
                          spids: [16777215 16663]
                        )
                      ]
                      spids: [16777215 16676]
                    )
                    (C {(func_append)} {(command)} {(DQ ($ VSub_Name '$suppress_output'))})
                    (C {(func_show_eval_locale)} {(DQ ($ VSub_Name '$command'))} 
                      {(SQ <'$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'>)}
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(test)} {(warn)} {(Lit_Other '=')} 
                                      {(DQ ($ VSub_Name '$need_locks'))}
                                    )
                                    (C {(test)} 
                                      {
                                        (DQ (X) 
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (SimpleCommand
                                                    words: [{(cat)} {($ VSub_Name '$lockfile')}]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_Great
                                                        fd: 2
                                                        arg_word: {(/dev/null)}
                                                        spids: [16731]
                                                      )
                                                    ]
                                                  )
                                                ]
                                              )
                                            left_token: <Left_Backtick '`'>
                                            spids: [16726 16733]
                                          )
                                        )
                                      } {(KW_Bang '!') (Lit_Other '=')} {(DQ (X) ($ VSub_Name '$srcfile'))}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {($ VSub_Name '$ECHO')} 
                              {
                                (DQ ('*** ERROR, ') ($ VSub_Name '$lockfile') (' contains:\n') 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (SimpleCommand
                                            words: [{(cat)} {($ VSub_Name '$lockfile')}]
                                            redirects: [
                                              (Redir
                                                op_id: Redir_Great
                                                fd: 2
                                                arg_word: {(/dev/null)}
                                                spids: [16760]
                                              )
                                            ]
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [16755 16762]
                                  ) ('\n') ('\n') ('but it should contain:\n') ($ VSub_Name '$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.)
                                )
                              }
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {($ VSub_Name '$opt_dry_run')})
                                (C {($ VSub_Name '$RM')} {($ VSub_Name '$removelist')})
                              ]
                            )
                            (ControlFlow
                              token: <ControlFlow_Exit exit>
                              arg_word: {($ VSub_Name '$EXIT_FAILURE')}
                            )
                          ]
                          spids: [16777215 16745]
                        )
                      ]
                      spids: [16777215 16793]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(test)} {(-n)} {(DQ ($ VSub_Name '$output_obj'))})
                                    (C {(test)} {(DQ (X) ($ VSub_Name '$output_obj'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ (X) ($ VSub_Name '$obj'))}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(func_show_eval)} {(SQ <'$MV "$output_obj" "$obj"'>)} 
                              {(SQ <'error=$?; $opt_dry_run || $RM $removelist; exit $error'>)}
                            )
                          ]
                          spids: [16777215 16829]
                        )
                      ]
                      spids: [16777215 16845]
                    )
                  ]
                  spids: [16777215 16601]
                )
              ]
              spids: [16777215 16848]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {($ VSub_Name '$opt_dry_run')})
                (BraceGroup
                  children: [
                    (C {(func_write_libtool_object)} {(DQ ($ VSub_Name '$libobj'))} 
                      {(DQ ($ VSub_Name '$objdir') (/) ($ VSub_Name '$objname'))} {(DQ ($ VSub_Name '$objname'))}
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(test)} {(no)} {(KW_Bang '!') (Lit_Other '=')} 
                                  {(DQ ($ VSub_Name '$need_locks'))}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:removelist)
                                  op: Equal
                                  rhs: {($ VSub_Name '$lockfile')}
                                  spids: [16898]
                                )
                              ]
                              spids: [16898]
                            )
                            (C {($ VSub_Name '$RM')} {(DQ ($ VSub_Name '$lockfile'))})
                          ]
                          spids: [16777215 16895]
                        )
                      ]
                      spids: [16777215 16909]
                    )
                  ]
                  spids: [16856]
                )
              ]
            )
            (ControlFlow
              token: <ControlFlow_Exit exit>
              arg_word: {($ VSub_Name '$EXIT_SUCCESS')}
            )
          ]
          spids: [14936]
        )
      spids: [14931 14935]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {($ VSub_Name '$opt_help')})
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(compile)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$opt_mode'))})
                (C {(func_mode_compile)} 
                  {
                    (BracedVarSub
                      token: <VSub_Number 1>
                      suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                      spids: [16944 16950]
                    )
                  }
                )
              ]
            )
          ]
          spids: [16927]
        )
      ]
    )
    (FuncDef
      name: func_mode_help
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {($ VSub_Name '$opt_mode')}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [(C {(func_help)})]
                  spids: [16777215 16976 16990 16777215]
                )
                (case_arm
                  pat_list: [{(clean)}]
                  action: [
                    (C {($ VSub_Name '$ECHO')} 
                      {
                        (DQ ('Usage: ') ($ VSub_Name '$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.')
                        )
                      }
                    )
                  ]
                  spids: [16994 16995 17017 16777215]
                )
                (case_arm
                  pat_list: [{(compile)}]
                  action: [
                    (C {($ VSub_Name '$ECHO')} 
                      {
                        (DQ ('Usage: ') ($ VSub_Name '$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'.")
                        )
                      }
                    )
                  ]
                  spids: [17021 17022 17054 16777215]
                )
                (case_arm
                  pat_list: [{(execute)}]
                  action: [
                    (C {($ VSub_Name '$ECHO')} 
                      {
                        (DQ ('Usage: ') ($ VSub_Name '$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.')
                        )
                      }
                    )
                  ]
                  spids: [17058 17059 17087 16777215]
                )
                (case_arm
                  pat_list: [{(finish)}]
                  action: [
                    (C {($ VSub_Name '$ECHO')} 
                      {
                        (DQ ('Usage: ') ($ VSub_Name '$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."
                          )
                        )
                      }
                    )
                  ]
                  spids: [17091 17092 17112 16777215]
                )
                (case_arm
                  pat_list: [{(install)}]
                  action: [
                    (C {($ VSub_Name '$ECHO')} 
                      {
                        (DQ ('Usage: ') ($ VSub_Name '$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).')
                        )
                      }
                    )
                  ]
                  spids: [17116 17117 17142 16777215]
                )
                (case_arm
                  pat_list: [{(link)}]
                  action: [
                    (C {($ VSub_Name '$ECHO')} 
                      {
                        (DQ ('Usage: ') ($ VSub_Name '$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 '.") 
                          ($ VSub_Name '$objext') ("', then a reloadable object file\n") ('is created, otherwise an executable program is created.')
                        )
                      }
                    )
                  ]
                  spids: [17146 17147 17225 16777215]
                )
                (case_arm
                  pat_list: [{(uninstall)}]
                  action: [
                    (C {($ VSub_Name '$ECHO')} 
                      {
                        (DQ ('Usage: ') ($ VSub_Name '$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.')
                        )
                      }
                    )
                  ]
                  spids: [17229 17230 17252 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(func_fatal_help)} 
                      {(DQ ("invalid operation mode '") ($ VSub_Name '$opt_mode') ("'"))}
                    )
                  ]
                  spids: [17256 17257 17269 16777215]
                )
              ]
              spids: [16967 16971 17272]
            )
            (C {(echo)})
            (C {($ VSub_Name '$ECHO')} 
              {
                (DQ ("Try '") ($ VSub_Name '$progname') 
                  (" --help' for more information about other modes.")
                )
              }
            )
          ]
          spids: [16960]
        )
      spids: [16955 16959]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {($ VSub_Name '$opt_help')}) terminator:<Op_Semi ';'>)]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(Lit_Other ':')} {(Lit_Other '=')} {(DQ ($ VSub_Name '$opt_help'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(func_mode_help)})]
                  spids: [16777215 17314]
                )
              ]
              else_action: [
                (Pipeline
                  children: [
                    (BraceGroup
                      children: [
                        (C {(func_help)} {(noexit)})
                        (ForEach
                          iter_name: opt_mode
                          iter_words: [
                            {(compile)}
                            {(link)}
                            {(execute)}
                            {(install)}
                            {(finish)}
                            {(uninstall)}
                            {(clean)}
                          ]
                          do_arg_iter: F
                          body: (DoGroup children:[(C {(func_mode_help)})] spids:[17352 17358])
                          spids: [17336 17350]
                        )
                      ]
                      spids: [17323]
                    )
                    (C {($ VSub_Name '$SED')} {(-n)} {(SQ <'1p; 2,$s/^Usage:/  or: /p'>)})
                  ]
                  negated: F
                )
                (Pipeline
                  children: [
                    (BraceGroup
                      children: [
                        (C {(func_help)} {(noexit)})
                        (ForEach
                          iter_name: opt_mode
                          iter_words: [
                            {(compile)}
                            {(link)}
                            {(execute)}
                            {(install)}
                            {(finish)}
                            {(uninstall)}
                            {(clean)}
                          ]
                          do_arg_iter: F
                          body: 
                            (DoGroup
                              children: [(C {(echo)}) (C {(func_mode_help)})]
                              spids: [17403 17412]
                            )
                          spids: [17387 17401]
                        )
                      ]
                      spids: [17374]
                    )
                    (C {($ VSub_Name '$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:/'>
                        )
                      }
                    )
                  ]
                  negated: F
                )
              ]
              spids: [17320 17435]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_QMark '$?')})
          ]
          spids: [16777215 17298]
        )
      ]
      spids: [16777215 17442]
    )
    (FuncDef
      name: func_mode_execute
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cmd)
                  op: Equal
                  rhs: {($ VSub_Name '$nonopt')}
                  spids: [17465]
                )
              ]
              spids: [17465]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-z)} {(DQ ($ VSub_Name '$cmd'))})
                (C {(func_fatal_help)} {(DQ ('you must specify a COMMAND'))})
              ]
            )
            (ForEach
              iter_name: file
              iter_words: [{($ VSub_Name '$opt_dlopen')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(-f)} {(DQ ($ VSub_Name '$file'))})
                        (C {(func_fatal_help)} {(DQ ("'") ($ VSub_Name '$file') ("' is not a file"))})
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:dir)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [17527]
                        )
                      ]
                      spids: [17527]
                    )
                    (Case
                      to_match: {($ VSub_Name '$file')}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other '*') (.la)}]
                          action: [
                            (C {(func_resolve_sysroot)} {(DQ ($ VSub_Name '$file'))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:file)
                                  op: Equal
                                  rhs: {($ VSub_Name '$func_resolve_sysroot_result')}
                                  spids: [17549]
                                )
                              ]
                              spids: [17549]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(func_lalib_unsafe_p)} {(DQ ($ VSub_Name '$file'))})
                                (C {(func_fatal_help)} 
                                  {
                                    (DQ ("'") ($ VSub_Name '$lib') ("' is not a valid libtool archive"))
                                  }
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dlname)
                                  op: Equal
                                  rhs: {(EmptyPart)}
                                  spids: [17582]
                                )
                              ]
                              spids: [17582]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:library_names)
                                  op: Equal
                                  rhs: {(EmptyPart)}
                                  spids: [17585]
                                )
                              ]
                              spids: [17585]
                            )
                            (C {(func_source)} {(DQ ($ VSub_Name '$file'))})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$dlname'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (AndOr
                                      ops: [Op_DAmp]
                                      children: [
                                        (C {(test)} {(-n)} {(DQ ($ VSub_Name '$library_names'))})
                                        (C {(func_warning)} 
                                          {
                                            (DQ ("'") ($ VSub_Name '$file') 
                                              ("' was not linked with '-export-dynamic'")
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [16777215 17611]
                                )
                              ]
                              spids: [16777215 17642]
                            )
                            (C {(func_dirname)} {(DQ ($ VSub_Name '$file'))} {(DQ )} {(DQ (.))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dir)
                                  op: Equal
                                  rhs: {($ VSub_Name '$func_dirname_result')}
                                  spids: [17660]
                                )
                              ]
                              spids: [17660]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(test)} {(-f)} 
                                          {
                                            (DQ ($ VSub_Name '$dir') (/) ($ VSub_Name '$objdir') (/) 
                                              ($ VSub_Name '$dlname')
                                            )
                                          }
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(func_append)} {(dir)} {(DQ (/) ($ VSub_Name '$objdir'))})
                                  ]
                                  spids: [16777215 17680]
                                )
                              ]
                              else_action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(test)} {(KW_Bang '!')} {(-f)} 
                                              {(DQ ($ VSub_Name '$dir') (/) ($ VSub_Name '$dlname'))}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(func_fatal_error)} 
                                          {
                                            (DQ ("cannot find '") ($ VSub_Name '$dlname') ("' in '") 
                                              ($ VSub_Name '$dir') ("' or '") ($ VSub_Name '$dir') (/) ($ VSub_Name '$objdir') ("'")
                                            )
                                          }
                                        )
                                      ]
                                      spids: [16777215 17711]
                                    )
                                  ]
                                  spids: [16777215 17729]
                                )
                              ]
                              spids: [17693 17732]
                            )
                          ]
                          spids: [17537 17539 17735 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*') (.lo)}]
                          action: [
                            (C {(func_dirname)} {(DQ ($ VSub_Name '$file'))} {(DQ )} {(DQ (.))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dir)
                                  op: Equal
                                  rhs: {($ VSub_Name '$func_dirname_result')}
                                  spids: [17762]
                                )
                              ]
                              spids: [17762]
                            )
                          ]
                          spids: [17739 17741 17766 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(func_warning)} 
                              {(DQ ("'-dlopen' is ignored for non-libtool libraries and objects"))}
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [17770 17771 17784 16777215]
                        )
                      ]
                      spids: [17530 17534 17787]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:absdir)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (AndOr
                                        ops: [Op_DAmp]
                                        children: [(C {(cd)} {(DQ ($ VSub_Name '$dir'))}) (C {(pwd)})]
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [17796 17806]
                              )
                            }
                          spids: [17795]
                        )
                      ]
                      spids: [17795]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(-n)} {(DQ ($ VSub_Name '$absdir'))})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:dir)
                              op: Equal
                              rhs: {($ VSub_Name '$absdir')}
                              spids: [17819]
                            )
                          ]
                          spids: [17819]
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(eval)} 
                                  {
                                    (DQ ('test -z ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                                      (EscapedLiteralPart
                                        token: <Lit_EscapedChar '\\$'>
                                      ) ($ VSub_Name '$shlibpath_var') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                                    )
                                  }
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(eval)} 
                              {
                                (DQ ($ VSub_Name '$shlibpath_var') ('=') 
                                  (EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\"'>
                                  ) (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (dir) 
                                  (EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\"'>
                                  )
                                )
                              }
                            )
                          ]
                          spids: [16777215 17841]
                        )
                      ]
                      else_action: [
                        (C {(eval)} 
                          {
                            (DQ ($ VSub_Name '$shlibpath_var') ('=') 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\"'>
                              ) (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('dir:') 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\$'>
                              ) ($ VSub_Name '$shlibpath_var') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                            )
                          }
                        )
                      ]
                      spids: [17856 17873]
                    )
                  ]
                  spids: [17502 17876]
                )
              spids: [17498 17500]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:libtool_execute_magic)
                  op: Equal
                  rhs: {($ VSub_Name '$magic')}
                  spids: [17888]
                )
              ]
              spids: [17888]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:args) op:Equal rhs:{(EmptyPart)} spids:[17897])]
              spids: [17897]
            )
            (ForEach
              iter_name: file
              do_arg_iter: T
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {($ VSub_Name '$file')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(-) (Lit_Other '*')}
                            {(Lit_Other '*') (.la)}
                            {(Lit_Other '*') (.lo)}
                          ]
                          spids: [17915 17928 17930 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(func_ltwrapper_script_p)} {(DQ ($ VSub_Name '$file'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(func_source)} {(DQ ($ VSub_Name '$file'))})
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:file)
                                          op: Equal
                                          rhs: {($ VSub_Name '$progdir') (/) ($ VSub_Name '$program')}
                                          spids: [17964]
                                        )
                                      ]
                                      spids: [17964]
                                    )
                                  ]
                                  spids: [16777215 17950]
                                )
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(func_ltwrapper_executable_p)} {(DQ ($ VSub_Name '$file'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(func_ltwrapper_scriptname)} {(DQ ($ VSub_Name '$file'))})
                                    (C {(func_source)} 
                                      {(DQ ($ VSub_Name '$func_ltwrapper_scriptname_result'))}
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:file)
                                          op: Equal
                                          rhs: {($ VSub_Name '$progdir') (/) ($ VSub_Name '$program')}
                                          spids: [18000]
                                        )
                                      ]
                                      spids: [18000]
                                    )
                                  ]
                                  spids: [17970 17979]
                                )
                              ]
                              spids: [16777215 18006]
                            )
                          ]
                          spids: [17933 17934 18009 16777215]
                        )
                      ]
                      spids: [17908 17912 18012]
                    )
                    (C {(func_append_quoted)} {(args)} {(DQ ($ VSub_Name '$file'))})
                  ]
                  spids: [17905 18028]
                )
              spids: [16777215 16777215]
            )
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {($ VSub_Name '$opt_dry_run')}) terminator:<Op_Semi ';'>)]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$shlibpath_var'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(eval)} 
                              {
                                (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('ECHO ') 
                                  (EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\"'>
                                  ) (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('shlibpath_var=') 
                                  (EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\$'>
                                  ) ($ VSub_Name '$shlibpath_var') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                                )
                              }
                            )
                            (C {(echo)} {(DQ ('export ') ($ VSub_Name '$shlibpath_var'))})
                          ]
                          spids: [16777215 18055]
                        )
                      ]
                      spids: [16777215 18080]
                    )
                    (C {($ VSub_Name '$ECHO')} {(DQ ($ VSub_Name '$cmd') ($ VSub_Name '$args'))})
                    (ControlFlow
                      token: <ControlFlow_Exit exit>
                      arg_word: {($ VSub_Name '$EXIT_SUCCESS')}
                    )
                  ]
                  spids: [16777215 18037]
                )
              ]
              else_action: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$shlibpath_var'))})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [(C {(eval)} {(DQ ('export ') ($ VSub_Name '$shlibpath_var'))})]
                      spids: [16777215 18110]
                    )
                  ]
                  spids: [16777215 18125]
                )
                (ForEach
                  iter_name: lt_var
                  iter_words: [{(LANG)} {(LANGUAGE)} {(LC_ALL)} {(LC_CTYPE)} {(LC_COLLATE)} {(LC_MESSAGES)}]
                  do_arg_iter: F
                  body: 
                    (DoGroup
                      children: [
                        (C {(eval)} 
                          {
                            (DQ ('if test ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\$'>
                              ) ('{save_') ($ VSub_Name '$lt_var') ('+set}') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                              (' = set; then\n') ('                ') ($ VSub_Name '$lt_var') ('=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                              (save_) ($ VSub_Name '$lt_var') ('; export ') ($ VSub_Name '$lt_var') ('\n') ('\t      else\n') ('\t\t') 
                              ($ VSub_Name '$lt_unset') (' ') ($ VSub_Name '$lt_var') ('\n') ('\t      fi')
                            )
                          }
                        )
                      ]
                      spids: [18152 18185]
                    )
                  spids: [18138 16777215]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:exec_cmd)
                      op: Equal
                      rhs: 
                        {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (cmd) 
                          ($ VSub_Name '$args')
                        }
                      spids: [18193]
                    )
                  ]
                  spids: [18193]
                )
              ]
              spids: [18096 18199]
            )
          ]
          spids: [17454]
        )
      spids: [17449 17453]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(execute)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$opt_mode'))})
        (C {(func_mode_execute)} 
          {
            (BracedVarSub
              token: <VSub_Number 1>
              suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
              spids: [18218 18224]
            )
          }
        )
      ]
    )
    (FuncDef
      name: func_mode_finish
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:libs) op:Equal rhs:{(EmptyPart)} spids:[18243])]
              spids: [18243]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:libdirs)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [18246]
                )
              ]
              spids: [18246]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:admincmds)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [18249]
                )
              ]
              spids: [18249]
            )
            (ForEach
              iter_name: opt
              iter_words: [
                {(DQ ($ VSub_Name '$nonopt'))}
                {
                  (BracedVarSub
                    token: <VSub_Number 1>
                    suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
                    spids: [18263 18269]
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-d)} {(DQ ($ VSub_Name '$opt'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(func_append)} {(libdirs)} {(DQ (' ') ($ VSub_Name '$opt'))})]
                          spids: [16777215 18286]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-f)} {(DQ ($ VSub_Name '$opt'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(func_lalib_unsafe_p)} {(DQ ($ VSub_Name '$opt'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(func_append)} {(libs)} {(DQ (' ') ($ VSub_Name '$opt'))})
                                  ]
                                  spids: [16777215 18323]
                                )
                              ]
                              else_action: [
                                (C {(func_warning)} 
                                  {
                                    (DQ ("'") ($ VSub_Name '$opt') ("' is not a valid libtool archive"))
                                  }
                                )
                              ]
                              spids: [18336 18348]
                            )
                          ]
                          spids: [18300 18311]
                        )
                      ]
                      else_action: [
                        (C {(func_fatal_error)} {(DQ ("invalid argument '") ($ VSub_Name '$opt') ("'"))})
                      ]
                      spids: [18352 18364]
                    )
                  ]
                  spids: [18272 18367]
                )
              spids: [18258 16777215]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$libs'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$lt_sysroot'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:sysroot_regex)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {($ VSub_Name '$ECHO')} 
                                                    {(DQ ($ VSub_Name '$lt_sysroot'))}
                                                  )
                                                  (C {($ VSub_Name '$SED')} 
                                                    {(DQ ($ VSub_Name '$sed_make_literal_regex'))}
                                                  )
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [18400 18414]
                                      )
                                    }
                                  spids: [18399]
                                )
                              ]
                              spids: [18399]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:sysroot_cmd)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (s/) (Lit_Other '\\') ("([ ']") (Lit_Other '\\') (')') 
                                        ($ VSub_Name '$sysroot_regex') (/) (Lit_Other '\\') ('1/g;')
                                      )
                                    }
                                  spids: [18417]
                                )
                              ]
                              spids: [18417]
                            )
                          ]
                          spids: [16777215 18396]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:sysroot_cmd)
                              op: Equal
                              rhs: {(EmptyPart)}
                              spids: [18434]
                            )
                          ]
                          spids: [18434]
                        )
                      ]
                      spids: [18431 18437]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {($ VSub_Name '$opt_dry_run')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (ForEach
                              iter_name: lib
                              iter_words: [{($ VSub_Name '$libs')}]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (C {(echo)} 
                                      {
                                        (DQ ('removing references to ') ($ VSub_Name '$lt_sysroot') 
                                          (" and '=' prefixes from ") ($ VSub_Name '$lib')
                                        )
                                      }
                                    )
                                  ]
                                  spids: [18462 18475]
                                )
                              spids: [18458 18460]
                            )
                          ]
                          spids: [16777215 18450]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:tmpdir)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: (CommandList children:[(C {(func_mktempdir)})])
                                    left_token: <Left_Backtick '`'>
                                    spids: [18482 18484]
                                  )
                                }
                              spids: [18481]
                            )
                          ]
                          spids: [18481]
                        )
                        (ForEach
                          iter_name: lib
                          iter_words: [{($ VSub_Name '$libs')}]
                          do_arg_iter: F
                          body: 
                            (DoGroup
                              children: [
                                (SimpleCommand
                                  words: [
                                    {($ VSub_Name '$SED')}
                                    {(-e)}
                                    {
                                      (DQ ($ VSub_Name '$sysroot_cmd') (' s/') (Lit_Other '\\') 
                                        ("([ ']-[LR]") (Lit_Other '\\') (')=/') (Lit_Other '\\') ('1/g; s/') (Lit_Other '\\') ("([ ']") (Lit_Other '\\') (')=/') 
                                        (Lit_Other '\\') (1/g)
                                      )
                                    }
                                    {($ VSub_Name '$lib')}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 16777215
                                      arg_word: {($ VSub_Name '$tmpdir') (/tmp-la)}
                                      spids: [18524]
                                    )
                                  ]
                                )
                                (C {(mv)} {(-f)} {($ VSub_Name '$tmpdir') (/tmp-la)} 
                                  {($ VSub_Name '$lib')}
                                )
                              ]
                              spids: [18496 18540]
                            )
                          spids: [18492 18494]
                        )
                        (C {(${ VSub_Name RM) (r)} {(DQ ($ VSub_Name '$tmpdir'))})
                      ]
                      spids: [18478 18553]
                    )
                  ]
                  spids: [16777215 18382]
                )
              ]
              spids: [16777215 18556]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(-n)} 
                              {(DQ ($ VSub_Name '$finish_cmds') ($ VSub_Name '$finish_eval'))}
                            )
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name '$libdirs'))})
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (ForEach
                      iter_name: libdir
                      iter_words: [{($ VSub_Name '$libdirs')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$finish_cmds'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(func_execute_cmds)} {(DQ ($ VSub_Name '$finish_cmds'))} 
                                      {(SQ <'admincmds="$admincmds\n'>) (DQ ($ VSub_Name '$cmd')) 
                                        (SQ <'"'>)
                                      }
                                    )
                                  ]
                                  spids: [16777215 18608]
                                )
                              ]
                              spids: [16777215 18632]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$finish_eval'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eval)} 
                                      {(Lit_VarLike 'cmds=') 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar '\\"'>
                                        ) ($ VSub_Name '$finish_eval') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                                      }
                                    )
                                    (AndOr
                                      ops: [Op_DPipe Op_DPipe]
                                      children: [
                                        (C {($ VSub_Name '$opt_dry_run')})
                                        (C {(eval)} {(DQ ($ VSub_Name '$cmds'))})
                                        (C {(func_append)} {(admincmds)} 
                                          {(DQ ('\n') ('       ') ($ VSub_Name '$cmds'))}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [16777215 18646]
                                )
                              ]
                              spids: [16777215 18684]
                            )
                          ]
                          spids: [18594 18687]
                        )
                      spids: [18590 18592]
                    )
                  ]
                  spids: [16777215 18582]
                )
              ]
              spids: [16777215 18690]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {($ VSub_Name '$opt_quiet')})
                (ControlFlow
                  token: <ControlFlow_Exit exit>
                  arg_word: {($ VSub_Name '$EXIT_SUCCESS')}
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(-n)} 
                              {(DQ ($ VSub_Name '$finish_cmds') ($ VSub_Name '$finish_eval'))}
                            )
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name '$libdirs'))})
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {(DQ (----------------------------------------------------------------------))}
                    )
                    (C {(echo)} {(DQ ('Libraries have been installed in:'))})
                    (ForEach
                      iter_name: libdir
                      iter_words: [{($ VSub_Name '$libdirs')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [(C {($ VSub_Name '$ECHO')} {(DQ ('   ') ($ VSub_Name '$libdir'))})]
                          spids: [18756 18767]
                        )
                      spids: [18752 18754]
                    )
                    (C {(echo)})
                    (C {(echo)} 
                      {(DQ ('If you ever happen to want to link against installed libraries'))}
                    )
                    (C {(echo)} 
                      {(DQ ('in a given directory, LIBDIR, you must either use libtool, and'))}
                    )
                    (C {(echo)} 
                      {(DQ ("specify the full pathname of the library, or use the '-LLIBDIR'"))}
                    )
                    (C {(echo)} {(DQ ('flag during linking and do at least one of the following:'))})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$shlibpath_var'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ ("   - add LIBDIR to the '") ($ VSub_Name '$shlibpath_var') 
                                  ("' environment variable")
                                )
                              }
                            )
                            (C {(echo)} {(DQ ('     during execution'))})
                          ]
                          spids: [16777215 18812]
                        )
                      ]
                      spids: [16777215 18831]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$runpath_var'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ ("   - add LIBDIR to the '") ($ VSub_Name '$runpath_var') 
                                  ("' environment variable")
                                )
                              }
                            )
                            (C {(echo)} {(DQ ('     during linking'))})
                          ]
                          spids: [16777215 18845]
                        )
                      ]
                      spids: [16777215 18864]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$hardcode_libdir_flag_spec'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:libdir)
                                  op: Equal
                                  rhs: {(LIBDIR)}
                                  spids: [18881]
                                )
                              ]
                              spids: [18881]
                            )
                            (C {(eval)} 
                              {(Lit_VarLike 'flag=') 
                                (EscapedLiteralPart
                                  token: <Lit_EscapedChar '\\"'>
                                ) ($ VSub_Name '$hardcode_libdir_flag_spec') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                              }
                            )
                            (C {($ VSub_Name '$ECHO')} 
                              {(DQ ("   - use the '") ($ VSub_Name '$flag') ("' linker flag"))}
                            )
                          ]
                          spids: [16777215 18878]
                        )
                      ]
                      spids: [16777215 18903]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$admincmds'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {($ VSub_Name '$ECHO')} 
                              {
                                (DQ ('   - have your system administrator run these commands:') 
                                  ($ VSub_Name '$admincmds')
                                )
                              }
                            )
                          ]
                          spids: [16777215 18917]
                        )
                      ]
                      spids: [16777215 18928]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-f)} {(/etc/ld.so.conf)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ 
                                  (
"   - have your system administrator add LIBDIR to '/etc/ld.so.conf'"
                                  )
                                )
                              }
                            )
                          ]
                          spids: [16777215 18940]
                        )
                      ]
                      spids: [16777215 18950]
                    )
                    (C {(echo)})
                    (C {(echo)} 
                      {(DQ ('See any operating system documentation about shared libraries for'))}
                    )
                    (Case
                      to_match: {($ VSub_Name '$host')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(solaris2.) (Lit_Other '[') (6789) (Lit_Other ']')}
                            {(solaris2.1) (Lit_Other '[') (0-9) (Lit_Other ']')}
                          ]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ 
                                  (
'more information, such as the ld(1), crle(1) and ld.so(8) manual'
                                  )
                                )
                              }
                            )
                            (C {(echo)} {(DQ (pages.))})
                          ]
                          spids: [18971 18980 18997 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ 
                                  (
'more information, such as the ld(1) and ld.so(8) manual pages.'
                                  )
                                )
                              }
                            )
                          ]
                          spids: [19000 19001 19011 16777215]
                        )
                      ]
                      spids: [18964 18968 19014]
                    )
                    (C {(echo)} 
                      {(DQ (----------------------------------------------------------------------))}
                    )
                  ]
                  spids: [16777215 18730]
                )
              ]
              spids: [16777215 19024]
            )
            (ControlFlow
              token: <ControlFlow_Exit exit>
              arg_word: {($ VSub_Name '$EXIT_SUCCESS')}
            )
          ]
          spids: [18236]
        )
      spids: [18231 18235]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(finish)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$opt_mode'))})
        (C {(func_mode_finish)} 
          {
            (BracedVarSub
              token: <VSub_Number 1>
              suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
              spids: [19048 19054]
            )
          }
        )
      ]
    )
    (FuncDef
      name: func_mode_install
      body: 
        (BraceGroup
          children: [
            (C {($ VSub_Name '$debug_cmd')})
            (If
              arms: [
                (if_arm
                  cond: [
                    (AndOr
                      ops: [Op_DPipe Op_DPipe]
                      children: [
                        (C {(test)} {(DQ ($ VSub_Name '$SHELL'))} {(Lit_Other '=')} 
                          {(DQ ($ VSub_Name '$nonopt'))}
                        )
                        (C {(test)} {(/bin/sh)} {(Lit_Other '=')} {(DQ ($ VSub_Name '$nonopt'))})
                        (Case
                          to_match: {($ VSub_Name '$nonopt')}
                          arms: [
                            (case_arm
                              pat_list: [{(Lit_Other '*') (shtool) (Lit_Other '*')}]
                              action: [(C {(Lit_Other ':')})]
                              spids: [19120 19123 19126 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [(C {(false)})]
                              spids: [19128 19129 19132 16777215]
                            )
                          ]
                          spids: [19114 19118 19134]
                        )
                      ]
                    )
                  ]
                  action: [
                    (C {(func_quote_for_eval)} {(DQ ($ VSub_Name '$nonopt'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:install_prog)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$func_quote_for_eval_result') (' '))}
                          spids: [19151]
                        )
                      ]
                      spids: [19151]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:arg)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [19158]
                        )
                      ]
                      spids: [19158]
                    )
                    (C {(shift)})
                  ]
                  spids: [16777215 19137]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:install_prog)
                      op: Equal
                      rhs: {(EmptyPart)}
                      spids: [19168]
                    )
                  ]
                  spids: [19168]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:arg)
                      op: Equal
                      rhs: {($ VSub_Name '$nonopt')}
                      spids: [19171]
                    )
                  ]
                  spids: [19171]
                )
              ]
              spids: [19165 19175]
            )
            (C {(func_quote_for_eval)} {(DQ ($ VSub_Name '$arg'))})
            (C {(func_append)} {(install_prog)} {(DQ ($ VSub_Name '$func_quote_for_eval_result'))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:install_shared_prog)
                  op: Equal
                  rhs: {($ VSub_Name '$install_prog')}
                  spids: [19203]
                )
              ]
              spids: [19203]
            )
            (Case
              to_match: {(DQ (' ') ($ VSub_Name '$install_prog') (' '))}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '*') (Lit_Other '[') 
                      (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (/) (Lit_Other ']') (cp) 
                      (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) (Lit_Other '*')
                    }
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:install_cp)
                          op: Equal
                          rhs: {(Lit_Other ':')}
                          spids: [19229]
                        )
                      ]
                      spids: [19229]
                    )
                  ]
                  spids: [19218 19227 19232 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:install_cp)
                          op: Equal
                          rhs: {(false)}
                          spids: [19238]
                        )
                      ]
                      spids: [19238]
                    )
                  ]
                  spids: [19235 19236 19241 16777215]
                )
              ]
              spids: [19207 19215 19244]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:dest) op:Equal rhs:{(EmptyPart)} spids:[19252])]
              spids: [19252]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:files) op:Equal rhs:{(EmptyPart)} spids:[19255])]
              spids: [19255]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:opts) op:Equal rhs:{(EmptyPart)} spids:[19258])]
              spids: [19258]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:prev) op:Equal rhs:{(EmptyPart)} spids:[19261])]
              spids: [19261]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:install_type)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [19264]
                )
              ]
              spids: [19264]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:isdir) op:Equal rhs:{(false)} spids:[19267])]
              spids: [19267]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:stripme)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [19271]
                )
              ]
              spids: [19271]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:no_mode)
                  op: Equal
                  rhs: {(Lit_Other ':')}
                  spids: [19274]
                )
              ]
              spids: [19274]
            )
            (ForEach
              iter_name: arg
              do_arg_iter: T
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:arg2)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [19286]
                        )
                      ]
                      spids: [19286]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$dest'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(func_append)} {(files)} {(DQ (' ') ($ VSub_Name '$dest'))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dest)
                                  op: Equal
                                  rhs: {($ VSub_Name '$arg')}
                                  spids: [19313]
                                )
                              ]
                              spids: [19313]
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [16777215 19300]
                        )
                      ]
                      spids: [16777215 19320]
                    )
                    (Case
                      to_match: {($ VSub_Name '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{(-d)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:isdir)
                                  op: Equal
                                  rhs: {(Lit_Other ':')}
                                  spids: [19334]
                                )
                              ]
                              spids: [19334]
                            )
                          ]
                          spids: [19331 19332 19337 16777215]
                        )
                        (case_arm
                          pat_list: [{(-f)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {($ VSub_Name '$install_cp')})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: (C {(Lit_Other ':')})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [16777215 19349]
                                )
                              ]
                              else_action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:prev)
                                      op: Equal
                                      rhs: {($ VSub_Name '$arg')}
                                      spids: [19357]
                                    )
                                  ]
                                  spids: [19357]
                                )
                              ]
                              spids: [19354 19361]
                            )
                          ]
                          spids: [19340 19341 19364 16777215]
                        )
                        (case_arm
                          pat_list: [{(-g)} {(-m)} {(-o)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:prev)
                                  op: Equal
                                  rhs: {($ VSub_Name '$arg')}
                                  spids: [19379]
                                )
                              ]
                              spids: [19379]
                            )
                          ]
                          spids: [19367 19376 19383 16777215]
                        )
                        (case_arm
                          pat_list: [{(-s)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:stripme)
                                  op: Equal
                                  rhs: {(DQ (' -s'))}
                                  spids: [19390]
                                )
                              ]
                              spids: [19390]
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [19386 19387 19399 16777215]
                        )
                        (case_arm
                          pat_list: [{(-) (Lit_Other '*')}]
                          spids: [19402 19404 19407 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$prev'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (AndOr
                                                  ops: [Op_DAmp]
                                                  children: [
                                                    (C {(test)} {(X-m)} {(Lit_Other '=')} 
                                                      {(DQ (X) ($ VSub_Name '$prev'))}
                                                    )
                                                    (C {(test)} {(-n)} 
                                                      {(DQ ($ VSub_Name '$install_override_mode'))}
                                                    )
                                                  ]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:arg2)
                                                  op: Equal
                                                  rhs: {($ VSub_Name '$install_override_mode')}
                                                  spids: [19459]
                                                )
                                              ]
                                              spids: [19459]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:no_mode)
                                                  op: Equal
                                                  rhs: {(false)}
                                                  spids: [19463]
                                                )
                                              ]
                                              spids: [19463]
                                            )
                                          ]
                                          spids: [16777215 19456]
                                        )
                                      ]
                                      spids: [16777215 19467]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:prev)
                                          op: Equal
                                          rhs: {(EmptyPart)}
                                          spids: [19470]
                                        )
                                      ]
                                      spids: [19470]
                                    )
                                  ]
                                  spids: [16777215 19429]
                                )
                              ]
                              else_action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:dest)
                                      op: Equal
                                      rhs: {($ VSub_Name '$arg')}
                                      spids: [19476]
                                    )
                                  ]
                                  spids: [19476]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Continue continue>
                                )
                              ]
                              spids: [19473 19483]
                            )
                          ]
                          spids: [19410 19411 19486 16777215]
                        )
                      ]
                      spids: [19324 19328 19489]
                    )
                    (C {(func_quote_for_eval)} {(DQ ($ VSub_Name '$arg'))})
                    (C {(func_append)} {(install_prog)} 
                      {(DQ (' ') ($ VSub_Name '$func_quote_for_eval_result'))}
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$arg2'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(func_quote_for_eval)} {(DQ ($ VSub_Name '$arg2'))})]
                          spids: [16777215 19525]
                        )
                      ]
                      spids: [16777215 19535]
                    )
                    (C {(func_append)} {(install_shared_prog)} 
                      {(DQ (' ') ($ VSub_Name '$func_quote_for_eval_result'))}
                    )
                  ]
                  spids: [19283 19548]
                )
              spids: [16777215 16777215]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-z)} {(DQ ($ VSub_Name '$install_prog'))})
                (C {(func_fatal_help)} {(DQ ('you must specify an install program'))})
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-n)} {(DQ ($ VSub_Name '$prev'))})
                (C {(func_fatal_help)} 
                  {(DQ ("the '") ($ VSub_Name '$prev') ("' option requires an argument"))}
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(-n)} {(DQ ($ VSub_Name '$install_override_mode'))})
                            (C {($ VSub_Name '$no_mode')})
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {($ VSub_Name '$install_cp')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
                          spids: [16777215 19617]
                        )
                      ]
                      else_action: [
                        (C {(func_quote_for_eval)} {(DQ ($ VSub_Name '$install_override_mode'))})
                        (C {(func_append)} {(install_shared_prog)} 
                          {(DQ (' -m ') ($ VSub_Name '$func_quote_for_eval_result'))}
                        )
                      ]
                      spids: [19622 19642]
                    )
                  ]
                  spids: [16777215 19609]
                )
              ]
              spids: [16777215 19645]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$files'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$dest'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(func_fatal_help)} {(DQ ('no file or destination specified'))})]
                          spids: [16777215 19674]
                        )
                      ]
                      else_action: [(C {(func_fatal_help)} {(DQ ('you must specify a destination'))})]
                      spids: [19684 19694]
                    )
                  ]
                  spids: [16777215 19660]
                )
              ]
              spids: [16777215 19697]
            )
            (C {(func_stripname)} {(SQ )} {(SQ </>)} {(DQ ($ VSub_Name '$dest'))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dest)
                  op: Equal
                  rhs: {($ VSub_Name '$func_stripname_result')}
                  spids: [19719]
                )
              ]
              spids: [19719]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-d)} {(DQ ($ VSub_Name '$dest'))})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:isdir)
                      op: Equal
                      rhs: {(Lit_Other ':')}
                      spids: [19738]
                    )
                  ]
                  spids: [19738]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {($ VSub_Name '$isdir')}) terminator:<Op_Semi ';'>)]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:destdir)
                          op: Equal
                          rhs: {($ VSub_Name '$dest')}
                          spids: [19750]
                        )
                      ]
                      spids: [19750]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:destname)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [19754]
                        )
                      ]
                      spids: [19754]
                    )
                  ]
                  spids: [16777215 19747]
                )
              ]
              else_action: [
                (C {(func_dirname_and_basename)} {(DQ ($ VSub_Name '$dest'))} {(DQ )} {(DQ (.))})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:destdir)
                      op: Equal
                      rhs: {($ VSub_Name '$func_dirname_result')}
                      spids: [19774]
                    )
                  ]
                  spids: [19774]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:destname)
                      op: Equal
                      rhs: {($ VSub_Name '$func_basename_result')}
                      spids: [19778]
                    )
                  ]
                  spids: [19778]
                )
                (Sentence
                  child: (C {(set)} {(dummy)} {($ VSub_Name '$files')})
                  terminator: <Op_Semi ';'>
                )
                (C {(shift)})
                (AndOr
                  ops: [Op_DAmp]
                  children: [
                    (C {(test)} {(DQ ($ VSub_Pound '$#'))} {(-gt)} {(1)})
                    (C {(func_fatal_help)} {(DQ ("'") ($ VSub_Name '$dest') ("' is not a directory"))})
                  ]
                )
              ]
              spids: [19757 19820]
            )
            (Case
              to_match: {($ VSub_Name '$destdir')}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '[') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (/) 
                      (Lit_Other ']') (Lit_Other '*')
                    }
                    {(Lit_Other '[') (A-Za-z) (Lit_Other ']') (Lit_Other ':') (Lit_Other '[') 
                      (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (/) (Lit_Other ']') (Lit_Other '*')
                    }
                  ]
                  spids: [19830 19847 19849 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (ForEach
                      iter_name: file
                      iter_words: [{($ VSub_Name '$files')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Case
                              to_match: {($ VSub_Name '$file')}
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other '*') (.lo)}]
                                  spids: [19875 19877 19879 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (C {(func_fatal_help)} 
                                      {
                                        (DQ ("'") ($ VSub_Name '$destdir') 
                                          ("' must be an absolute directory name")
                                        )
                                      }
                                    )
                                  ]
                                  spids: [19882 19883 19895 16777215]
                                )
                              ]
                              spids: [19868 19872 19898]
                            )
                          ]
                          spids: [19865 19901]
                        )
                      spids: [19861 19863]
                    )
                  ]
                  spids: [19852 19853 19904 16777215]
                )
              ]
              spids: [19823 19827 19907]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:libtool_install_magic)
                  op: Equal
                  rhs: {($ VSub_Name '$magic')}
                  spids: [19919]
                )
              ]
              spids: [19919]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:staticlibs)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [19924]
                )
              ]
              spids: [19924]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:future_libdirs)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [19927]
                )
              ]
              spids: [19927]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:current_libdirs)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [19930]
                )
              ]
              spids: [19930]
            )
            (ForEach
              iter_name: file
              iter_words: [{($ VSub_Name '$files')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {($ VSub_Name '$file')}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other '*') (.) ($ VSub_Name '$libext')}]
                          action: [(C {(func_append)} {(staticlibs)} {(DQ (' ') ($ VSub_Name '$file'))})]
                          spids: [19957 19960 19977 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*') (.la)}]
                          action: [
                            (C {(func_resolve_sysroot)} {(DQ ($ VSub_Name '$file'))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:file)
                                  op: Equal
                                  rhs: {($ VSub_Name '$func_resolve_sysroot_result')}
                                  spids: [19993]
                                )
                              ]
                              spids: [19993]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(func_lalib_unsafe_p)} {(DQ ($ VSub_Name '$file'))})
                                (C {(func_fatal_help)} 
                                  {
                                    (DQ ("'") ($ VSub_Name '$file') 
                                      ("' is not a valid libtool archive")
                                    )
                                  }
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:library_names)
                                  op: Equal
                                  rhs: {(EmptyPart)}
                                  spids: [20022]
                                )
                              ]
                              spids: [20022]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:old_library)
                                  op: Equal
                                  rhs: {(EmptyPart)}
                                  spids: [20025]
                                )
                              ]
                              spids: [20025]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:relink_command)
                                  op: Equal
                                  rhs: {(EmptyPart)}
                                  spids: [20028]
                                )
                              ]
                              spids: [20028]
                            )
                            (C {(func_source)} {(DQ ($ VSub_Name '$file'))})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(test)} {(DQ (X) ($ VSub_Name '$destdir'))} 
                                          {(Lit_Other '=')} {(DQ (X) ($ VSub_Name '$libdir'))}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Case
                                      to_match: {(DQ ($ VSub_Name '$current_libdirs') (' '))}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {(Lit_Other '*') (DQ (' ') ($ VSub_Name '$libdir') (' ')) 
                                              (Lit_Other '*')
                                            }
                                          ]
                                          spids: [20073 20080 20082 16777215]
                                        )
                                        (case_arm
                                          pat_list: [{(Lit_Other '*')}]
                                          action: [
                                            (C {(func_append)} {(current_libdirs)} 
                                              {(DQ (' ') ($ VSub_Name '$libdir'))}
                                            )
                                          ]
                                          spids: [20085 20086 20097 16777215]
                                        )
                                      ]
                                      spids: [20063 20070 20100]
                                    )
                                  ]
                                  spids: [16777215 20060]
                                )
                              ]
                              else_action: [
                                (Case
                                  to_match: {(DQ ($ VSub_Name '$future_libdirs') (' '))}
                                  arms: [
                                    (case_arm
                                      pat_list: [
                                        {(Lit_Other '*') (DQ (' ') ($ VSub_Name '$libdir') (' ')) 
                                          (Lit_Other '*')
                                        }
                                      ]
                                      spids: [20120 20127 20129 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(Lit_Other '*')}]
                                      action: [
                                        (C {(func_append)} {(future_libdirs)} 
                                          {(DQ (' ') ($ VSub_Name '$libdir'))}
                                        )
                                      ]
                                      spids: [20132 20133 20144 16777215]
                                    )
                                  ]
                                  spids: [20110 20117 20147]
                                )
                              ]
                              spids: [20103 20150]
                            )
                            (C {(func_dirname)} {(DQ ($ VSub_Name '$file'))} {(DQ (/))} {(DQ )})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dir)
                                  op: Equal
                                  rhs: {($ VSub_Name '$func_dirname_result')}
                                  spids: [20168]
                                )
                              ]
                              spids: [20168]
                            )
                            (C {(func_append)} {(dir)} {(DQ ($ VSub_Name '$objdir'))})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$relink_command'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:inst_prefix_dir)
                                          op: Equal
                                          rhs: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (Pipeline
                                                        children: [
                                                          (C {($ VSub_Name '$ECHO')} 
                                                            {(DQ ($ VSub_Name '$destdir'))}
                                                          )
                                                          (C {($ VSub_Name '$SED')} {(-e)} 
                                                            {
                                                              (DQ ('s%') ($ VSub_Name '$libdir') 
                                                                (EscapedLiteralPart
                                                                  token: <Lit_EscapedChar '\\$'>
                                                                ) ('%%')
                                                              )
                                                            }
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [20201 20220]
                                              )
                                            }
                                          spids: [20200]
                                        )
                                      ]
                                      spids: [20200]
                                    )
                                    (AndOr
                                      ops: [Op_DAmp]
                                      children: [
                                        (C {(test)} {(DQ ($ VSub_Name '$inst_prefix_dir'))} 
                                          {(Lit_Other '=')} {(DQ ($ VSub_Name '$destdir'))}
                                        )
                                        (C {(func_fatal_error)} 
                                          {
                                            (DQ ("error: cannot install '") ($ VSub_Name '$file') 
                                              ("' to a directory not ending in ") ($ VSub_Name '$libdir')
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(test)} {(-n)} 
                                                  {(DQ ($ VSub_Name '$inst_prefix_dir'))}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:relink_command)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (Pipeline
                                                                children: [
                                                                  (C {($ VSub_Name '$ECHO')} 
                                                                    {
                                                                      (DQ 
                                                                        ($ VSub_Name 
'$relink_command'
                                                                        )
                                                                      )
                                                                    }
                                                                  )
                                                                  (C {($ VSub_Name '$SED')} 
                                                                    {
                                                                      (DQ 
                                                                        (
's%@inst_prefix_dir@%-inst-prefix-dir '
                                                                        ) ($ VSub_Name '$inst_prefix_dir') ('%')
                                                                      )
                                                                    }
                                                                  )
                                                                ]
                                                                negated: F
                                                              )
                                                            ]
                                                          )
                                                        left_token: <Left_Backtick '`'>
                                                        spids: [20294 20310]
                                                      )
                                                    }
                                                  spids: [20293]
                                                )
                                              ]
                                              spids: [20293]
                                            )
                                          ]
                                          spids: [16777215 20286]
                                        )
                                      ]
                                      else_action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:relink_command)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (CommandSubPart
                                                    command_list: 
                                                      (CommandList
                                                        children: [
                                                          (Pipeline
                                                            children: [
                                                              (C {($ VSub_Name '$ECHO')} 
                                                                {
                                                                  (DQ ($ VSub_Name '$relink_command'))
                                                                }
                                                              )
                                                              (C {($ VSub_Name '$SED')} 
                                                                {(DQ ('s%@inst_prefix_dir@%%'))}
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                        ]
                                                      )
                                                    left_token: <Left_Backtick '`'>
                                                    spids: [20317 20331]
                                                  )
                                                }
                                              spids: [20316]
                                            )
                                          ]
                                          spids: [20316]
                                        )
                                      ]
                                      spids: [20313 20334]
                                    )
                                    (C {(