(CommandList children: [ (C {(set)} {(-e)}) (FuncDef name: usage body: (BraceGroup children: [(C {(echo)} {(DQ ("Usage: -o file"))}) (C {(exit)} {(1)})] spids: [26] ) spids: [22 25] ) (AndOr children: [ (C {(Lit_Other "[")} {($ VSub_Pound "$#")} {(Lit_Other "=")} {(0)} {(Lit_Other "]")}) (C {(usage)}) ] op_id: Op_DAmp ) (While cond: [(C {(Lit_Other "[")} {($ VSub_Pound "$#")} {(-gt)} {(0)} {(Lit_Other "]")})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:flag) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [73] ) ] spids: [73] ) (Case to_match: {(DQ ($ VSub_Name "$flag"))} arms: [ (case_arm pat_list: [{(-o)}] action: [ (AndOr children: [ (C {(Lit_Other "[")} {($ VSub_Pound "$#")} {(-eq)} {(1)} {(Lit_Other "]")}) (C {(usage)}) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:out) op: Equal rhs: {(DQ ($ VSub_Number "$2"))} spids: [107] ) ] spids: [107] ) (C {(mkdir)} {(-p)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {($ VSub_Number "$2")})] ) left_token: <Left_CommandSub "$("> spids: [118 122] ) ) } ) (C {(shift)}) ] spids: [88 89 129 -1] ) (case_arm pat_list: [{(-l) (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LIBS) op: Equal rhs: {(DQ ($ VSub_Name "$LIBS") (" ") ($ VSub_Number "$1"))} spids: [137] ) ] spids: [137] ) (C {(shift)}) ] spids: [132 134 148 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (C {(echo)} {(DQ ("Unknown option ") ($ VSub_Number "$1"))}) (C {(exit)} {(1)}) ] spids: [151 152 -1 168] ) ] spids: [79 85 168] ) (C {(shift)}) ] spids: [70 173] ) ) (AndOr children: [ (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$out"))} {(Lit_Other "]")}) (C {(usage)}) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:package) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(basename)} {(DQ ($ VSub_Name "$out"))})]) left_token: <Left_CommandSub "$("> spids: [192 198] ) } spids: [191] ) ] spids: [191] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dir) op: Equal rhs: {(DQ (/src/) ($ VSub_Name "$package"))} spids: [201] ) ] spids: [201] ) (C {(mkdir)} {(-p)} {($ VSub_Name "$dir")}) (C {(tar)} {(xf)} {(-)} {(-C)} {($ VSub_Name "$dir")}) (Subshell child: (CommandList children: [ (C {(cd)} {($ VSub_Name "$dir")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CFILES) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(find)} {(.)} {(-name)} {(SQ <"*.c">)})] ) left_token: <Left_CommandSub "$("> spids: [238 248] ) } spids: [237] ) ] spids: [237] ) (C {(cc)} {(-static)} {(-O2)} {(-Wall)} {(-Werror)} {(-o)} {(../../) ($ VSub_Name "$out")} {($ VSub_Name "$CFILES")} {($ VSub_Name "$LIBS")} ) ] ) spids: [229 270] ) (C {(tar)} {(cf)} {(-)} {($ VSub_Name "$out")}) (C {(exit)} {(0)}) ] )