(CommandList
  children: [
    (FuncDef
      name: k_script_build
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KOALEPHANT_TOOL_VERSION)
                  op: Equal
                  rhs: {(DQ (1.0.0))}
                  spids: [29]
                )
              ]
              spids: [27]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KOALEPHANT_TOOL_DESCRIPTION)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (
'Process shell source (.) statements into absolute references or inline the script'
                        )
                      )
                    }
                  spids: [37]
                )
              ]
              spids: [35]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:KOALEPHANT_TOOL_OPTIONS)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (SimpleCommand
                                  words: [{(cat)}]
                                  redirects: [
                                    (HereDoc
                                      op_id: Redir_DLessDash
                                      fd: 16777215
                                      body: 
                                        {
                                          (DQ ('Options:\n') ('\n') 
                                            (
' -c, --cd                           change to the input file directory before building\n'
                                            ) (' -f, --file file                    the source to read. If not specified, defaults to stdin\n') 
                                            (
' -o, --output file                  the file to write to. If not specified, defaults to stdout\n'
                                            ) 
                                            (
' -d, --define var=val               define simple replacements to be performed while processing e.g. LIB_PATH=/foo\n'
                                            ) 
                                            (
' -i, --inline, --static path        dir or file path to explicitly inline. Can be specified multiple times\n'
                                            ) 
                                            (
' -l, --link, --dynamic path=abs     dir or file path to explicitly link to. Can be specified multiple times\n'
                                            ) (' -r, --report                       process input and report all discovered inclusions\n') 
                                            (
' -x, --executable                   mark the resulting file (if not stdout) executable\n'
                                            ) (' -h, --help                         show this help\n') 
                                            (
' -v, --version                      show the version\n'
                                            ) (' -V, --verbose                      show verbose output\n') 
                                            (
' -D, --debug                        show debug output\n'
                                            ) (' -q, --quiet                        suppress all output except errors\n') ('\n')
                                          )
                                        }
                                      do_expansion: True
                                      here_end: EOT
                                      was_filled: True
                                      spids: [50]
                                    )
                                  ]
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [47 71]
                        )
                      )
                    }
                  spids: [45]
                )
              ]
              spids: [43]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:FIND_SOURCE_LINES)
                  op: Equal
                  rhs: 
                    {
                      (DQ ('s/^') (Lit_Other '\\') ('s*') (Lit_Other '\\') 
                        ('. (.*)/K_SCRIPT_BUILD_REPORT') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (1/p)
                      )
                    }
                  spids: [77]
                )
              ]
              spids: [75]
            )
            (Assignment
              keyword: Assign_Readonly
              pairs: [(assign_pair lhs:(LhsName name:FIND_SOURCE_LINES) op:Equal spids:[91])]
              spids: [89]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:FIX_NEWLINES)
                  op: Equal
                  rhs: {(SQ <'$a\\\\'>)}
                  spids: [97]
                )
              ]
              spids: [95]
            )
            (Assignment
              keyword: Assign_Readonly
              pairs: [(assign_pair lhs:(LhsName name:FIX_NEWLINES) op:Equal spids:[105])]
              spids: [103]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:infile) op:Equal rhs:{(/dev/stdin)} spids:[111])]
              spids: [109]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:outfile)
                  op: Equal
                  rhs: {(/dev/stdout)}
                  spids: [117]
                )
              ]
              spids: [115]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:executable) op:Equal rhs:{(false)} spids:[124])]
              spids: [122]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:report) op:Equal rhs:{(false)} spids:[131])]
              spids: [129]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:changeDir) op:Equal rhs:{(false)} spids:[137])]
              spids: [135]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:changeDirPath) op:Equal rhs:{(DQ )} spids:[143])]
              spids: [141]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:sourcePaths) op:Equal rhs:{(DQ )} spids:[151])]
              spids: [149]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:definitions) op:Equal rhs:{(DQ )} spids:[158])]
              spids: [156]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:newline)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: (CommandList children:[(C {(printf)} {(SQ <'\\n '>)})])
                          left_token: <Left_CommandSub '$('>
                          spids: [168 174]
                        )
                      )
                    }
                  spids: [166]
                )
              ]
              spids: [164]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:newline)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name newline>
                          suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(' ')})
                          spids: [180 184]
                        )
                      )
                    }
                  spids: [178]
                )
              ]
              spids: [178]
            )
            (C {(.)} {(./shell-script-library.lib.sh)})
            (SimpleCommand
              words: [{(k_log_level)} {(${ VSub_Name KOALEPHANT_LOG_LEVEL_NOTICE)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[201])]
            )
            (FuncDef
              name: add_source_path
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:type)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [216]
                        )
                      ]
                      spids: [214]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:source)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$2'))}
                          spids: [224]
                        )
                      ]
                      spids: [222]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:value)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Number 3>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                  spids: [234 237]
                                )
                              )
                            }
                          spids: [232]
                        )
                      ]
                      spids: [230]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:sep) op:Equal rhs:{(DQ )} spids:[243])]
                      spids: [241]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name sourcePaths))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:sep)
                                  op: Equal
                                  rhs: {(DQ (Lit_Other '\\') (n))}
                                  spids: [266]
                                )
                              ]
                              spids: [266]
                            )
                          ]
                          spids: [16777215 263]
                        )
                      ]
                      spids: [16777215 273]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:sourcePaths)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(printf)} {(DQ ('%s') (${ VSub_Name sep) ('%s#%s#%s'))} 
                                          {(DQ (${ VSub_Name sourcePaths))} {(DQ (${ VSub_Name type))} {(DQ (${ VSub_Name source))} {(DQ (${ VSub_Name value))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [279 313]
                                )
                              )
                            }
                          spids: [277]
                        )
                      ]
                      spids: [277]
                    )
                  ]
                  spids: [211]
                )
              spids: [207 210]
            )
            (FuncDef
              name: add_dynamic_mapping
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:find)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [330]
                        )
                      ]
                      spids: [328]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:target)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$2'))}
                          spids: [338]
                        )
                      ]
                      spids: [336]
                    )
                    (C {(k_log_info)} 
                      {
                        (DQ ("Adding dynamic mapping for '") (${ VSub_Name find) ("' => '") 
                          (${ VSub_Name target) ("'")
                        )
                      }
                    )
                    (C {(add_source_path)} {(dynamic)} {(DQ (${ VSub_Name find))} 
                      {(DQ (${ VSub_Name target))}
                    )
                  ]
                  spids: [325]
                )
              spids: [321 324]
            )
            (FuncDef
              name: add_static_path
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:path)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [390]
                        )
                      ]
                      spids: [388]
                    )
                    (C {(k_log_info)} {(DQ ("Adding static path for '") (${ VSub_Name path) ("'"))})
                    (C {(add_source_path)} {(static)} {(DQ (${ VSub_Name path))})
                  ]
                  spids: [385]
                )
              spids: [381 384]
            )
            (FuncDef
              name: add_definition
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:definition)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [432]
                        )
                      ]
                      spids: [430]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:value)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$2'))}
                          spids: [440]
                        )
                      ]
                      spids: [438]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:sep) op:Equal rhs:{(DQ )} spids:[448])]
                      spids: [446]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name definitions))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:sep)
                                  op: Equal
                                  rhs: {(DQ (Lit_Other '\\') (n))}
                                  spids: [471]
                                )
                              ]
                              spids: [471]
                            )
                          ]
                          spids: [16777215 468]
                        )
                      ]
                      spids: [16777215 478]
                    )
                    (C {(k_log_info)} 
                      {
                        (DQ ("Adding definition for '") (${ VSub_Name definition) ("' with value '") 
                          (${ VSub_Name value) ("'")
                        )
                      }
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:definitions)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(printf)} {(DQ ('%s') (${ VSub_Name sep) ('%s %s'))} 
                                          {(DQ (${ VSub_Name definitions))} {(DQ ($ VSub_Name '$definition'))} {(DQ (${ VSub_Name value))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [500 526]
                                )
                              )
                            }
                          spids: [498]
                        )
                      ]
                      spids: [498]
                    )
                  ]
                  spids: [427]
                )
              spids: [423 426]
            )
            (FuncDef
              name: get_definition_pattern
              body: 
                (BraceGroup
                  children: [
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name definitions))})
                        (While
                          cond: [
                            (Sentence
                              child: 
                                (SimpleCommand
                                  words: [{(read)} {(-r)} {(key)} {(value)}]
                                  more_env: [(env_pair name:IFS val:{(DQ (' '))} spids:[553])]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          body: 
                            (DoGroup
                              children: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name key))} 
                                              {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                                      spids: [16777215 585]
                                    )
                                  ]
                                  spids: [16777215 591]
                                )
                                (C {(k_log_debug)} 
                                  {
                                    (DQ ("Using definition: '") (${ VSub_Name key) ("' = '") 
                                      (${ VSub_Name value) ("'")
                                    )
                                  }
                                )
                                (C {(printf)} 
                                  {
                                    (DQ ('s#([^A-Za-z0-9_])%s([^A-Za-z0-9_])#') 
                                      (EscapedLiteralPart
                                        token: <Lit_EscapedChar '\\\\'>
                                      ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ('1%s') 
                                      (EscapedLiteralPart
                                        token: <Lit_EscapedChar '\\\\'>
                                      ) (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ('2#g; ')
                                    )
                                  } {(DQ (${ VSub_Name key))} {(DQ (${ VSub_Name value))}
                                )
                              ]
                              spids: [567 634]
                            )
                        )
                      ]
                      negated: False
                    )
                  ]
                  spids: [538]
                )
              spids: [534 537]
            )
            (FuncDef
              name: get_include_pattern
              body: 
                (BraceGroup
                  children: [
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name sourcePaths))})
                        (While
                          cond: [
                            (Sentence
                              child: 
                                (SimpleCommand
                                  words: [{(read)} {(-r)} {(type)} {(source)} {(value)}]
                                  more_env: [(env_pair name:IFS val:{(DQ ('#'))} spids:[660])]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          body: 
                            (DoGroup
                              children: [
                                (Case
                                  to_match: {(DQ (${ VSub_Name type))}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(dynamic)}]
                                      action: [
                                        (C {(printf)} {(DQ ('s#%s#%s#g; '))} 
                                          {
                                            (DQ ('^(') (Lit_Other '\\') ('s*') (Lit_Other '\\') (.) 
                                              (Lit_Other '\\') ('s+)([') (Lit_Other '\\') ("'") (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (']?)(') 
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (C {(escape_sed_pattern)} 
                                                        {(DQ (${ VSub_Name source))}
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_CommandSub '$('>
                                                spids: [712 720]
                                              ) (')(.*') (Lit_Other '\\') (2) (Lit_Other '\\') ('s*)') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>)
                                            )
                                          } 
                                          {
                                            (DQ (Lit_Other '\\') (1) (Lit_Other '\\') (2) 
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (C {(escape_sed_replacement)} 
                                                        {(DQ (${ VSub_Name value))}
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_CommandSub '$('>
                                                spids: [734 742]
                                              ) (Lit_Other '\\') (4)
                                            )
                                          }
                                        )
                                      ]
                                      spids: [690 691 748 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(static)}]
                                      action: [
                                        (C {(printf)} {(DQ ('s#%s#%s#g; '))} 
                                          {
                                            (DQ ('^(') (Lit_Other '\\') ('s*)') (Lit_Other '\\') (.) 
                                              (Lit_Other '\\') ('s+([') (Lit_Other '\\') ("'") (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (']?)(') 
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (C {(glob_to_sed)} {(${ VSub_Name source)})
                                                    ]
                                                  )
                                                left_token: <Left_CommandSub '$('>
                                                spids: [774 780]
                                              ) (')') (Lit_Other '\\') (2) (Lit_Other '\\') ('s*') (Lit_Other '$')
                                            )
                                          } {(DQ (K_SCRIPT_BUILD_INCLUDE) (Lit_Other '\\') (1) (Lit_Other '\\') (3))}
                                        )
                                      ]
                                      spids: [752 753 798 16777215]
                                    )
                                  ]
                                  spids: [679 687 802]
                                )
                              ]
                              spids: [676 805]
                            )
                        )
                      ]
                      negated: False
                    )
                  ]
                  spids: [645]
                )
              spids: [641 644]
            )
            (FuncDef
              name: glob_to_sed
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pattern)
                          op: Equal
                          rhs: {(DQ )}
                          spids: [821]
                        )
                      ]
                      spids: [819]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:sep)
                          op: Equal
                          rhs: {(DQ ('|'))}
                          spids: [828]
                        )
                      ]
                      spids: [826]
                    )
                    (C {(k_log_debug)} 
                      {(DQ ("Converting glob pattern to sed: '") ($ VSub_At '$@') ("'"))}
                    )
                    (ForEach
                      iter_name: file
                      iter_words: [{(DQ ($ VSub_At '$@'))}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (C {(k_log_debug)} 
                              {(DQ ("Checking file exists: '") (${ VSub_Name file) ("'"))}
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-e)} {(DQ (${ VSub_Name file))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:pattern)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ (${ VSub_Name pattern) 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(escape_sed_pattern)} 
                                                          {(DQ (${ VSub_Name file))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [891 899]
                                                ) (${ VSub_Name sep)
                                              )
                                            }
                                          spids: [886]
                                        )
                                      ]
                                      spids: [886]
                                    )
                                  ]
                                  spids: [16777215 883]
                                )
                              ]
                              spids: [16777215 906]
                            )
                          ]
                          spids: [854 909]
                        )
                      spids: [848 852]
                    )
                    (C {(printf)} {(DQ ('%s'))} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name pattern>
                            suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(${ VSub_Name sep)})
                            spids: [920 926]
                          )
                        )
                      }
                    )
                  ]
                  spids: [816]
                )
              spids: [812 815]
            )
            (FuncDef
              name: escape_sed_pattern
              body: 
                (BraceGroup
                  children: [
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Number 1))})
                        (C {(sed)} {(-e)} {(SQ <'s/[]\\/$*.^\\|[()?+{}]/\\\\&/g'>)})
                      ]
                      negated: False
                    )
                  ]
                  spids: [938]
                )
              spids: [934 937]
            )
            (FuncDef
              name: escape_sed_replacement
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:delimiter)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Number 2>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VTest_ColonHyphen
                                      arg_word: {(Lit_Slash /)}
                                    )
                                  spids: [975 979]
                                )
                              )
                            }
                          spids: [973]
                        )
                      ]
                      spids: [971]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} 
                                  {
                                    (BracedVarSub
                                      token: <VSub_Name delimiter>
                                      prefix_op: VSub_Pound
                                      spids: [988 991]
                                    )
                                  } {(-ne)} {(1)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(k_log_alert)} 
                              {
                                (DQ ('Error, pattern delimiter must be exactly one character: ') 
                                  (${ VSub_Name delimiter)
                                )
                              }
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(2)}
                            )
                          ]
                          spids: [16777215 1000]
                        )
                      ]
                      spids: [16777215 1018]
                    )
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Number 1))})
                        (C {(sed)} {(-e)} 
                          {
                            (DQ ('s/[') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) 
                              (${ VSub_Name delimiter) (Lit_Other '\\') ('&]/') (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\\\'>
                              ) ('&/g')
                            )
                          }
                        )
                      ]
                      negated: False
                    )
                  ]
                  spids: [968]
                )
              spids: [964 967]
            )
            (FuncDef
              name: process_stream
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pattern)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$1'))}
                          spids: [1064]
                        )
                      ]
                      spids: [1062]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:parentPrefix)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Number 2>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                                  spids: [1074 1077]
                                )
                              )
                            }
                          spids: [1072]
                        )
                      ]
                      spids: [1070]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-ge)} {(2)} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(shift)} {(2)})]
                          spids: [16777215 1094]
                        )
                      ]
                      else_action: [(C {(shift)})]
                      spids: [1102 1108]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:sedOpts)
                          op: Equal
                          rhs: {(DQ ($ VSub_Star '$*'))}
                          spids: [1113]
                        )
                      ]
                      spids: [1111]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:defPattern)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [(C {(get_definition_pattern)})]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [1124 1126]
                                )
                              )
                            }
                          spids: [1122]
                        )
                      ]
                      spids: [1120]
                    )
                    (C {(k_log_debug)} 
                      {
                        (DQ ("Processing stream using pattern: '") (${ VSub_Name pattern) 
                          ("', definition pattern: '") (${ VSub_Name defPattern) ("'")
                        )
                      }
                    )
                    (Pipeline
                      children: [
                        (C {(sed)} {(-E)} {(${ VSub_Name sedOpts)} {(-e)} 
                          {(DQ (${ VSub_Name FIX_NEWLINES))} {(-e)} {(DQ (${ VSub_Name defPattern))} {(-e)} {(DQ ('s/^/') (${ VSub_Name parentPrefix) (/g))} {(-e)} 
                          {(DQ (${ VSub_Name pattern))}
                        )
                        (While
                          cond: [
                            (Sentence
                              child: 
                                (SimpleCommand
                                  words: [{(read)} {(-r)} {(line)}]
                                  more_env: [(env_pair name:IFS val:{(SQ )} spids:[1193])]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          body: 
                            (DoGroup
                              children: [
                                (Assignment
                                  keyword: Assign_Local
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:prefix)
                                      op: Equal
                                      rhs: {(DQ (${ VSub_Name parentPrefix))}
                                      spids: [1207]
                                    )
                                  ]
                                  spids: [1205]
                                )
                                (Assignment
                                  keyword: Assign_Local
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:includeFile)
                                      op: Equal
                                      rhs: {(DQ )}
                                      spids: [1217]
                                    )
                                  ]
                                  spids: [1215]
                                )
                                (Case
                                  to_match: {(DQ (${ VSub_Name line))}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(K_SCRIPT_BUILD_INCLUDE) (Lit_Other '*')}]
                                      action: [
                                        (C {(k_log_debug)} 
                                          {(DQ ("Processing 'include' line: '") (${ VSub_Name line))}
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:line)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (C {(k_string_remove_start)} 
                                                              {(DQ (K_SCRIPT_BUILD_INCLUDE))} {(DQ (${ VSub_Name line))}
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [1252 1264]
                                                    )
                                                  )
                                                }
                                              spids: [1250]
                                            )
                                          ]
                                          spids: [1250]
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:trimmed)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (C {(k_string_trim)} 
                                                              {(DQ (${ VSub_Name line))}
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [1270 1278]
                                                    )
                                                  )
                                                }
                                              spids: [1268]
                                            )
                                          ]
                                          spids: [1268]
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:prefix)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ (${ VSub_Name prefix) 
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (C {(k_string_remove_end)} 
                                                              {(DQ (${ VSub_Name trimmed))} {(DQ (${ VSub_Name line))}
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [1287 1301]
                                                    )
                                                  )
                                                }
                                              spids: [1282]
                                            )
                                          ]
                                          spids: [1282]
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:includeFile)
                                              op: Equal
                                              rhs: {(DQ (${ VSub_Name trimmed))}
                                              spids: [1305]
                                            )
                                          ]
                                          spids: [1305]
                                        )
                                      ]
                                      spids: [1234 1237 1313 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(K_SCRIPT_BUILD_REPORT) (Lit_Other '*')}]
                                      action: [
                                        (C {(k_log_debug)} 
                                          {(DQ ("Processing 'report' line: '") (${ VSub_Name line))}
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:line)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (C {(k_string_remove_start)} 
                                                              {(DQ (K_SCRIPT_BUILD_REPORT))} {(DQ (${ VSub_Name line))}
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [1335 1347]
                                                    )
                                                  )
                                                }
                                              spids: [1333]
                                            )
                                          ]
                                          spids: [1333]
                                        )
                                        (C {(printf)} {(DQ ('%s') (Lit_Other '\\') (n))} 
                                          {(DQ (${ VSub_Name line))}
                                        )
                                      ]
                                      spids: [1317 1320 1366 16777215]
                                    )
                                  ]
                                  spids: [1223 1231 1369]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (AndOr
                                              children: [
                                                (C {(Lit_Other '[')} {(-n)} 
                                                  {(DQ (${ VSub_Name includeFile))} {(Lit_Other ']')}
                                                )
                                                (C {(Lit_Other '[')} {(-f)} 
                                                  {(DQ (${ VSub_Name includeFile))} {(Lit_Other ']')}
                                                )
                                              ]
                                              op_id: Op_DAmp
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(k_log_debug)} 
                                          {
                                            (DQ ("Including file: '") (${ VSub_Name includeFile) ("'"))
                                          }
                                        )
                                        (C {(printf)} 
                                          {
                                            (DQ (${ VSub_Name prefix) ('#K_SCRIPT_BUILD: include(%s)') 
                                              (Lit_Other '\\') (n)
                                            )
                                          } {(DQ (${ VSub_Name includeFile))}
                                        )
                                        (SimpleCommand
                                          words: [
                                            {(process_stream)}
                                            {(DQ (${ VSub_Name pattern))}
                                            {(DQ (${ VSub_Name prefix))}
                                            {(${ VSub_Name sedOpts)}
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Less
                                              fd: 16777215
                                              arg_word: {(DQ (${ VSub_Name includeFile))}
                                              spids: [1452]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [16777215 1402]
                                    )
                                  ]
                                  else_action: [
                                    (C {(k_log_debug)} 
                                      {(DQ ("Regular line: '") (${ VSub_Name line) ("'"))}
                                    )
                                    (C {(printf)} {(DQ ('%s') (Lit_Other '\\') (n))} 
                                      {(DQ (${ VSub_Name line))}
                                    )
                                  ]
                                  spids: [1461 1490]
                                )
                              ]
                              spids: [1202 1493]
                            )
                        )
                      ]
                      negated: False
                    )
                  ]
                  spids: [1059]
                )
              spids: [1055 1058]
            )
            (FuncDef
              name: handle_changedir
              body: 
                (BraceGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(${ VSub_Name changeDir)} {(Lit_Other '=')} 
                                  {(true)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name changeDirPath))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name infile))} 
                                                  {(Lit_Other ']')}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:changeDirPath)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        (CommandSubPart
                                                          command_list: 
                                                            (CommandList
                                                              children: [
                                                                (C {(k_fs_dirname)} 
                                                                  {(DQ (${ VSub_Name infile))}
                                                                )
                                                              ]
                                                            )
                                                          left_token: <Left_CommandSub '$('>
                                                          spids: [1563 1571]
                                                        )
                                                      )
                                                    }
                                                  spids: [1561]
                                                )
                                              ]
                                              spids: [1561]
                                            )
                                          ]
                                          spids: [16777215 1558]
                                        )
                                      ]
                                      else_action: [
                                        (C {(k_log_err)} 
                                          {
                                            (DQ 
                                              (
'No directory given to -c/--cd and no -f/--file specified'
                                              )
                                            )
                                          }
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(2)}
                                        )
                                      ]
                                      spids: [1575 1590]
                                    )
                                  ]
                                  spids: [16777215 1540]
                                )
                              ]
                              spids: [16777215 1593]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name infile))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:infile)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(k_fs_resolve)} {(DQ (${ VSub_Name infile))})
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [1618 1626]
                                                )
                                              )
                                            }
                                          spids: [1616]
                                        )
                                      ]
                                      spids: [1616]
                                    )
                                  ]
                                  spids: [16777215 1613]
                                )
                              ]
                              spids: [16777215 1630]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name outfile))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:outfile)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(k_fs_resolve)} 
                                                          {(DQ (${ VSub_Name outfile))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [1654 1662]
                                                )
                                              )
                                            }
                                          spids: [1652]
                                        )
                                      ]
                                      spids: [1652]
                                    )
                                  ]
                                  spids: [16777215 1649]
                                )
                              ]
                              spids: [16777215 1666]
                            )
                            (C {(cd)} {(DQ (${ VSub_Name changeDirPath))})
                          ]
                          spids: [16777215 1522]
                        )
                      ]
                      spids: [16777215 1679]
                    )
                  ]
                  spids: [1504]
                )
              spids: [1500 1503]
            )
            (FuncDef
              name: handle_executable
              body: 
                (BraceGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(${ VSub_Name executable)} {(Lit_Other '=')} 
                                  {(true)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name outfile))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(chmod)} {(Lit_Other '+') (x)} {(DQ (${ VSub_Name outfile))})
                                  ]
                                  spids: [16777215 1726]
                                )
                              ]
                              else_action: [
                                (C {(k_log_err)} 
                                  {(DQ ('Cannot set executable bit when output is stdout'))}
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(2)}
                                )
                              ]
                              spids: [1741 1756]
                            )
                          ]
                          spids: [16777215 1708]
                        )
                      ]
                      spids: [16777215 1759]
                    )
                  ]
                  spids: [1690]
                )
              spids: [1686 1689]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:tmpVal) op:Equal spids:[1768])]
              spids: [1766]
            )
            (While
              cond: [
                (Sentence
                  child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {(DQ ($ VSub_Number '$1'))}
                      arms: [
                        (case_arm
                          pat_list: [{(-h)} {(--help)}]
                          action: [(C {(k_usage)}) (C {(exit)})]
                          spids: [1797 1800 1809 16777215]
                        )
                        (case_arm
                          pat_list: [{(-c)} {(--cd)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:changeDir)
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [1819]
                                )
                              ]
                              spids: [1819]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:changeDirPath)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(k_option_optional_arg)} {(DQ ($ VSub_At '$@'))})
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1825 1831]
                                        )
                                      )
                                    }
                                  spids: [1823]
                                )
                              ]
                              spids: [1823]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name changeDirPath))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(shift)})]
                                  spids: [16777215 1850]
                                )
                              ]
                              spids: [16777215 1856]
                            )
                            (C {(shift)})
                          ]
                          spids: [1813 1816 1863 16777215]
                        )
                        (case_arm
                          pat_list: [{(-f)} {(--file)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:infile)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(k_option_requires_arg)} {(DQ ($ VSub_At '$@'))})
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1875 1881]
                                        )
                                      )
                                    }
                                  spids: [1873]
                                )
                              ]
                              spids: [1873]
                            )
                            (C {(shift)} {(2)})
                          ]
                          spids: [1867 1870 1890 16777215]
                        )
                        (case_arm
                          pat_list: [{(-d)} {(--define)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:tmpVal)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(k_option_requires_arg)} {(DQ ($ VSub_At '$@'))})
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1902 1908]
                                        )
                                      )
                                    }
                                  spids: [1900]
                                )
                              ]
                              spids: [1900]
                            )
                            (C {(add_definition)} 
                              {
                                (DQ 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {(echo)} {(DQ (${ VSub_Name tmpVal))})
                                              (C {(cut)} {(-d)} {(Lit_Other '=')} {(-f)} {(1)})
                                            ]
                                            negated: False
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [1915 1935]
                                  )
                                )
                              } 
                              {
                                (DQ 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {(echo)} {(DQ (${ VSub_Name tmpVal))})
                                              (C {(cut)} {(-d)} {(Lit_Other '=')} {(-f)} {(2)})
                                            ]
                                            negated: False
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [1939 1959]
                                  )
                                )
                              }
                            )
                            (C {(shift)} {(2)})
                          ]
                          spids: [1894 1897 1968 16777215]
                        )
                        (case_arm
                          pat_list: [{(-o)} {(--output)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:outfile)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(k_option_requires_arg)} {(DQ ($ VSub_At '$@'))})
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1980 1986]
                                        )
                                      )
                                    }
                                  spids: [1978]
                                )
                              ]
                              spids: [1978]
                            )
                            (C {(shift)} {(2)})
                          ]
                          spids: [1972 1975 1995 16777215]
                        )
                        (case_arm
                          pat_list: [{(-i)} {(--inline)} {(--static)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:tmpVal)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(k_option_optional_arg)} {(DQ ($ VSub_At '$@'))})
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [2009 2015]
                                        )
                                      )
                                    }
                                  spids: [2007]
                                )
                              ]
                              spids: [2007]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name tmpVal))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(add_static_path)} {(DQ (${ VSub_Name tmpVal))})
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 2034]
                                )
                              ]
                              else_action: [(C {(add_static_path)} {(DQ ('./*'))}) (C {(shift)})]
                              spids: [2051 2064]
                            )
                          ]
                          spids: [1999 2004 2067 16777215]
                        )
                        (case_arm
                          pat_list: [{(-l)} {(--link)} {(--dynamic)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:tmpVal)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(k_option_requires_arg)} {(DQ ($ VSub_At '$@'))})
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [2081 2087]
                                        )
                                      )
                                    }
                                  spids: [2079]
                                )
                              ]
                              spids: [2079]
                            )
                            (C {(add_dynamic_mapping)} 
                              {
                                (DQ 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {(echo)} {(DQ (${ VSub_Name tmpVal))})
                                              (C {(cut)} {(-d)} {(Lit_Other '=')} {(-f)} {(1)})
                                            ]
                                            negated: False
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [2094 2114]
                                  )
                                )
                              } 
                              {
                                (DQ 
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {(echo)} {(DQ (${ VSub_Name tmpVal))})
                                              (C {(cut)} {(-d)} {(Lit_Other '=')} {(-f)} {(2)})
                                            ]
                                            negated: False
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [2118 2138]
                                  )
                                )
                              }
                            )
                            (C {(shift)} {(2)})
                          ]
                          spids: [2071 2076 2147 16777215]
                        )
                        (case_arm
                          pat_list: [{(-r)} {(--report)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:report)
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [2157]
                                )
                              ]
                              spids: [2157]
                            )
                            (C {(shift)})
                          ]
                          spids: [2151 2154 2164 16777215]
                        )
                        (case_arm
                          pat_list: [{(-x)} {(--exec)} {(--executable)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:executable)
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [2176]
                                )
                              ]
                              spids: [2176]
                            )
                            (C {(shift)})
                          ]
                          spids: [2168 2173 2183 16777215]
                        )
                        (case_arm
                          pat_list: [{(-v)} {(--version)}]
                          action: [(C {(k_version)}) (C {(exit)})]
                          spids: [2187 2190 2199 16777215]
                        )
                        (case_arm
                          pat_list: [{(-V)} {(--verbose)}]
                          action: [
                            (SimpleCommand
                              words: [{(k_log_level)} {(${ VSub_Name KOALEPHANT_LOG_LEVEL_INFO)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                  spids: [2215]
                                )
                              ]
                            )
                            (C {(shift)})
                          ]
                          spids: [2203 2206 2223 16777215]
                        )
                        (case_arm
                          pat_list: [{(-D)} {(--debug)}]
                          action: [
                            (SimpleCommand
                              words: [{(k_log_level)} {(${ VSub_Name KOALEPHANT_LOG_LEVEL_DEBUG)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                  spids: [2239]
                                )
                              ]
                            )
                            (C {(shift)})
                          ]
                          spids: [2227 2230 2247 16777215]
                        )
                        (case_arm
                          pat_list: [{(-q)} {(--quiet)}]
                          action: [
                            (SimpleCommand
                              words: [{(k_log_level)} {(${ VSub_Name KOALEPHANT_LOG_LEVEL_ERR)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                  spids: [2263]
                                )
                              ]
                            )
                            (C {(shift)})
                          ]
                          spids: [2251 2254 2271 16777215]
                        )
                        (case_arm
                          pat_list: [{(--)}]
                          action: [(C {(shift)}) (ControlFlow token:<ControlFlow_Break break>)]
                          spids: [2275 2276 2285 16777215]
                        )
                        (case_arm
                          pat_list: [{(-) (Lit_Other '*')}]
                          action: [
                            (SimpleCommand
                              words: [{(echo)} {(DQ ('Unknown option: ') (${ VSub_Number 1))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: 16777215
                                  arg_word: {(2)}
                                  spids: [2303]
                                )
                              ]
                            )
                            (C {(k_usage)})
                            (C {(exit)} {(1)})
                          ]
                          spids: [2289 2291 2315 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [2319 2320 2326 16777215]
                        )
                      ]
                      spids: [1787 1793 2329]
                    )
                  ]
                  spids: [1784 2332]
                )
            )
            (C {(handle_changedir)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(${ VSub_Name report)} {(Lit_Other '=')} {(true)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(process_stream)} {(DQ (${ VSub_Name FIND_SOURCE_LINES))} {(DQ )} {(-n)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Less
                          fd: 16777215
                          arg_word: {(DQ (${ VSub_Name infile))}
                          spids: [2371]
                        )
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(DQ (${ VSub_Name outfile))}
                          spids: [2379]
                        )
                      ]
                    )
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [16777215 2355]
                )
              ]
              spids: [16777215 2391]
            )
            (SimpleCommand
              words: [
                {(process_stream)}
                {
                  (DQ 
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(get_include_pattern)})])
                      left_token: <Left_CommandSub '$('>
                      spids: [2398 2400]
                    )
                  )
                }
              ]
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: 16777215
                  arg_word: {(DQ (${ VSub_Name infile))}
                  spids: [2403]
                )
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(DQ (${ VSub_Name outfile))}
                  spids: [2411]
                )
              ]
            )
            (C {(handle_executable)})
          ]
          spids: [23]
        )
      spids: [19 22]
    )
    (C {(k_script_build)} {(DQ ($ VSub_At '$@'))})
  ]
)