(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INSTALL) op: Equal rhs: { (BracedVarSub token: <VSub_Name REAL_INSTALL> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(install)}) spids: [148 152] ) } spids: [147] ) ] spids: [147] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OBJDIR) op:Equal rhs:{(.)} spids:[154])] spids: [154] ) (While cond: [(C {(Lit_Other ':')})] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (Lit_Other '=') (Lit_Other '*')}] action: [ (Sentence child: (C {(eval)} {(DQ ($ VSub_Number '$1'))}) terminator: <Op_Semi ';'> ) (C {(shift)}) ] spids: [174 177 187 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [190 191 194 16777215] ) ] spids: [165 171 197] ) ] spids: [162 199] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_DIRDEP) op: Equal rhs: { (BracedVarSub token: <VSub_Name _DIRDEP> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name '$OBJDIR') (Lit_Slash /) (.dirdep)} ) spids: [206 212] ) } spids: [205] ) ] spids: [205] ) (AndOr ops: [Op_DAmp Op_DPipe] children: [ (C {(Lit_Other '[')} {(-s)} {($ VSub_Name '$_DIRDEP')} {(Lit_Other ']')}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:EXEC) op:Equal rhs:{(EmptyPart)} spids:[224])] spids: [224] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:EXEC) op:Equal rhs:{(exec)} spids:[228])] spids: [228] ) ] ) (AndOr ops: [Op_DPipe] children: [ (C {($ VSub_Name '$EXEC')} {($ VSub_Name '$INSTALL')} {(DQ ($ VSub_At '$@'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) (FuncDef name: LnCp body: (BraceGroup children: [ (SimpleCommand words: [{(rm)} {(-f)} {($ VSub_Number '$2')}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[262])] ) (AndOr ops: [Op_DPipe] children: [ (SimpleCommand words: [{(ln)} {($ VSub_Number '$1')} {($ VSub_Number '$2')}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[273])] ) (C {(cp)} {(-p)} {($ VSub_Number '$1')} {($ VSub_Number '$2')}) ] ) ] spids: [253] ) spids: [249 252] ) (FuncDef name: StageDirdep body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:t) op: Equal rhs: {($ VSub_Number '$1')} spids: [297] ) ] spids: [297] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {($ VSub_Name '$t') (.dirdep)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (AndOr ops: [Op_DAmp] children: [ (C {(cmp)} {(-s)} {($ VSub_Name '$_DIRDEP')} {($ VSub_Name '$t') (.dirdep)}) (ControlFlow token:<ControlFlow_Return return>) ] ) (SimpleCommand words: [ {(echo)} { (DQ ('ERROR: ') ($ VSub_Name '$t') (' installed by ') (CommandSubPart command_list: (CommandList children: [(C {(cat)} {($ VSub_Name '$t') (.dirdep)})] ) left_token: <Left_Backtick '`'> spids: [336 341] ) (' not ') (CommandSubPart command_list: (CommandList children: [(C {(cat)} {($ VSub_Name '$_DIRDEP')})] ) left_token: <Left_Backtick '`'> spids: [343 347] ) ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[350])] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 313] ) ] spids: [16777215 359] ) (AndOr ops: [Op_DPipe] children: [ (C {(LnCp)} {($ VSub_Name '$_DIRDEP')} {($ VSub_Name '$t') (.dirdep)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ] spids: [294] ) spids: [290 293] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:args) op:Equal rhs:{(DQ ($ VSub_At '$@'))} spids:[378])] spids: [378] ) (While cond: [(C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(8)} {(Lit_Other ']')})] body: (DoGroup children:[(C {(shift)} {(8)})] spids:[395 402]) ) (C {(eval)} {(Lit_VarLike 'dest=') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ($ VSub_Pound '$#')} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {($ VSub_Name '$dest')} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(StageDirdep)} {($ VSub_Name '$dest')})] spids: [16777215 421] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {($ VSub_Name '$dest')} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (ForEach iter_name: f iter_words: [{($ VSub_Name '$args')}] do_arg_iter: F body: (DoGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-f)} {($ VSub_Name '$f')}) (ControlFlow token:<ControlFlow_Continue continue>) ] ) (C {(StageDirdep)} {($ VSub_Name '$dest') (/) (BracedVarSub token: <VSub_Name f> suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*') (Lit_Slash /)}) spids: [473 478] ) } ) ] spids: [455 481] ) spids: [451 16777215] ) ] spids: [432 443] ) ] spids: [16777215 483] ) ] )