(CommandList
  children: [
    (FuncDef
      name: makeAbsolute
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {($ VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [{(/) (Lit_Other '*')}]
                  action: [(C {(echo)} {(DQ ($ VSub_Number '$1'))})]
                  spids: [18 20 34 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Pipeline
                      children: [
                        (C {(echo)} 
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(makeAbsolute)} {(DQ ($ VSub_Number '$2'))} 
                                      {(DQ ($ VSub_Name '$PWD'))}
                                    )
                                  ]
                                )
                              left_token: <Left_Backtick '`'>
                              spids: [47 57]
                            ) (/) (DQ ($ VSub_Number '$1'))
                          }
                        )
                        (C {(sed)} {(SQ <'s,/\\.$,,'>)})
                      ]
                      negated: F
                    )
                  ]
                  spids: [37 38 72 16777215]
                )
              ]
              spids: [11 15 75]
            )
          ]
          spids: [8]
        )
      spids: [4 7]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:me)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(which)} {(DQ ($ VSub_Number '$0'))})])
                left_token: <Left_Backtick '`'>
                spids: [81 87]
              )
            }
          spids: [80]
        )
      ]
      spids: [80]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(-L)} {(DQ ($ VSub_Name '$me'))})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:readlink)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [{(type)} {(readlink)}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [116]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [111 118]
                          )
                        }
                      spids: [110]
                    )
                  ]
                  spids: [110]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:readlink)
                      op: Equal
                      rhs: {(EmptyPart)}
                      spids: [122]
                    )
                  ]
                  spids: [122]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$readlink'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:me)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(readlink)} {(-nf)} {(DQ ($ VSub_Name '$me'))})]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [144 152]
                              )
                            }
                          spids: [143]
                        )
                      ]
                      spids: [143]
                    )
                  ]
                  spids: [16777215 136]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:me)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(ls)} {(-l)} {(DQ ($ VSub_Name '$me'))})
                                      (C {(sed)} {(SQ <'s/^.*-> //'>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [163 179]
                          )
                        }
                      spids: [162]
                    )
                  ]
                  spids: [162]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:base)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(dirname)} {(DQ ($ VSub_Name '$me'))})]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [183 189]
                          )
                        }
                      spids: [182]
                    )
                  ]
                  spids: [182]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:me)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (C {(makeAbsolute)} {(DQ ($ VSub_Name '$me'))} 
                                    {(DQ ($ VSub_Name '$base'))}
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [193 203]
                          )
                        }
                      spids: [192]
                    )
                  ]
                  spids: [192]
                )
              ]
              spids: [155 206]
            )
          ]
          spids: [16777215 103]
        )
      ]
      spids: [16777215 208]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:bindir)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(dirname)} {(DQ ($ VSub_Name '$me'))})])
                left_token: <Left_Backtick '`'>
                spids: [212 218]
              )
            }
          spids: [211]
        )
      ]
      spids: [211]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:libdir)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Sentence
                        child: (C {(cd)} {(DQ ($ VSub_Name '$bindir') (/../lib))})
                        terminator: <Op_Semi ';'>
                      )
                      (C {(pwd)})
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [221 232]
              )
            }
          spids: [220]
        )
      ]
      spids: [220]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:LD_LIBRARY_PATH)
          op: Equal
          rhs: 
            {($ VSub_Name '$libdir') (Lit_Other ':') ($ VSub_Name '$libdir') (/qtcreator) 
              (BracedVarSub
                token: <VSub_Name LD_LIBRARY_PATH>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonPlus
                    arg_word: {(':') ($ VSub_Name '$LD_LIBRARY_PATH')}
                  )
                spids: [239 244]
              )
            }
          spids: [234]
        )
      ]
      spids: [234]
    )
    (C {(export)} {(LD_LIBRARY_PATH)})
    (C {(exec)} {(DQ ($ VSub_Name '$bindir') (/qtcreator))} 
      {
        (BracedVarSub
          token: <VSub_Number 1>
          suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(DQ ($ VSub_At '$@'))})
          spids: [257 263]
        )
      }
    )
  ]
)