(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 '$@'))}) ] )