(CommandList children: [ (FuncDef name: register_die_hook body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:x) op:Equal spids:[19])] spids: [17] ) (ForEach iter_name: x iter_words: [{($ VSub_Star '$*')}] do_arg_iter: F body: (DoGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(has)} {($ VSub_Name '$x')} {($ VSub_Name '$EBUILD_DEATH_HOOKS')}) (C {(export)} {(Lit_VarLike 'EBUILD_DEATH_HOOKS=') (DQ ($ VSub_Name '$EBUILD_DEATH_HOOKS') (' ') ($ VSub_Name '$x')) } ) ] ) ] spids: [32 55] ) spids: [27 30] ) ] spids: [14] ) spids: [10 13] ) (FuncDef name: register_success_hook body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:x) op:Equal spids:[69])] spids: [67] ) (ForEach iter_name: x iter_words: [{($ VSub_Star '$*')}] do_arg_iter: F body: (DoGroup children: [ (AndOr ops: [Op_DPipe] children: [ (C {(has)} {($ VSub_Name '$x')} {($ VSub_Name '$EBUILD_SUCCESS_HOOKS')}) (C {(export)} {(Lit_VarLike 'EBUILD_SUCCESS_HOOKS=') (DQ ($ VSub_Name '$EBUILD_SUCCESS_HOOKS') (' ') ($ VSub_Name '$x')) } ) ] ) ] spids: [82 105] ) spids: [77 80] ) ] spids: [64] ) spids: [60 63] ) (FuncDef name: __strip_duplicate_slashes body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_n child:{($ VSub_Number '$1')})) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:removed) op: Equal rhs: {($ VSub_Number '$1')} spids: [134] ) ] spids: [132] ) (While cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name removed)} right: {(Lit_Other '*') (//) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:removed) op: Equal rhs: { (BracedVarSub token: <VSub_Name removed> suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar '\\/'>) (EscapedLiteralPart token: <Lit_EscapedChar '\\/'> ) } replace: {(Lit_Slash /)} do_all: T do_prefix: F do_suffix: F ) spids: [160 168] ) } spids: [159] ) ] spids: [159] ) ] spids: [156 171] ) ) (C {(echo)} {(DQ (${ VSub_Name removed))}) ] spids: [16777215 129] ) ] spids: [16777215 183] ) ] spids: [114] ) spids: [110 113] ) (FuncDef name: KV_major body: (BraceGroup children: [ (AndOr ops: [Op_DAmp] children: [ (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Number '$1')}) ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:KV) op:Equal rhs:{($ VSub_At '$@')} spids:[213])] spids: [211] ) (C {(echo)} { (DQ (BracedVarSub token: <VSub_Name KV> suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('.*')}) spids: [220 224] ) ) } ) ] spids: [192] ) spids: [188 191] ) (FuncDef name: KV_minor body: (BraceGroup children: [ (AndOr ops: [Op_DAmp] children: [ (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Number '$1')}) ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:KV) op:Equal rhs:{($ VSub_At '$@')} spids:[255])] spids: [253] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KV) op: Equal rhs: { (BracedVarSub token: <VSub_Name KV> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*.')}) spids: [260 264] ) } spids: [259] ) ] spids: [259] ) (C {(echo)} { (DQ (BracedVarSub token: <VSub_Name KV> suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('.*')}) spids: [270 274] ) ) } ) ] spids: [234] ) spids: [230 233] ) (FuncDef name: KV_micro body: (BraceGroup children: [ (AndOr ops: [Op_DAmp] children: [ (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Number '$1')}) ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:KV) op:Equal rhs:{($ VSub_At '$@')} spids:[305])] spids: [303] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KV) op: Equal rhs: { (BracedVarSub token: <VSub_Name KV> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*.*.')}) spids: [310 314] ) } spids: [309] ) ] spids: [309] ) (C {(echo)} { (DQ (BracedVarSub token: <VSub_Name KV> suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('[^[:digit:]]*')}) spids: [320 324] ) ) } ) ] spids: [284] ) spids: [280 283] ) (FuncDef name: KV_to_int body: (BraceGroup children: [ (AndOr ops: [Op_DAmp] children: [ (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Number '$1')}) ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:KV_MAJOR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(KV_major)} {(DQ ($ VSub_Number '$1'))})] ) left_token: <Left_CommandSub '$('> spids: [356 362] ) } spids: [355] ) ] spids: [353] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:KV_MINOR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(KV_minor)} {(DQ ($ VSub_Number '$1'))})] ) left_token: <Left_CommandSub '$('> spids: [368 374] ) } spids: [367] ) ] spids: [365] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:KV_MICRO) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(KV_micro)} {(DQ ($ VSub_Number '$1'))})] ) left_token: <Left_CommandSub '$('> spids: [380 386] ) } spids: [379] ) ] spids: [377] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:KV_int) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithBinary op_id: Arith_Plus left: (ArithBinary op_id: Arith_Star left: (ArithVarRef name:KV_MAJOR) right: (ArithWord w:{(Lit_Digits 65536)}) ) right: (ArithBinary op_id: Arith_Star left: (ArithVarRef name:KV_MINOR) right: (ArithWord w:{(Lit_Digits 256)}) ) ) right: (ArithVarRef name:KV_MICRO) ) spids: [392 413] ) } spids: [391] ) ] spids: [389] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_ge left: {(${ VSub_Name KV_int)} right: {(131584)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ (${ VSub_Name KV_int))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [16777215 441] ) ] spids: [16777215 458] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [334] ) spids: [330 333] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:_RC_GET_KV_CACHE) op:Equal rhs:{(DQ )} spids:[469])] spids: [469] ) (FuncDef name: get_KV body: (BraceGroup children: [ (AndOr ops: [Op_DAmp] children: [ (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{(${ VSub_Name _RC_GET_KV_CACHE)}) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_RC_GET_KV_CACHE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-r)})]) left_token: <Left_CommandSub '$('> spids: [495 499] ) } spids: [494] ) ] spids: [494] ) ] ) (C {(echo)} { (CommandSubPart command_list: (CommandList children: [(C {(KV_to_int)} {(DQ (${ VSub_Name _RC_GET_KV_CACHE))})] ) left_token: <Left_CommandSub '$('> spids: [505 513] ) } ) (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_QMark '$?')}) ] spids: [477] ) spids: [473 476] ) ] )