(CommandList children: [ (Sentence child: (C {(.)} { (DQ (BracedVarSub token: <VSub_Name srcdir> suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(.)}) spids: [47 51] ) (/tests/init.sh) ) } ) terminator: <Op_Semi ';'> ) (C {(path_prepend_)} {(./src)}) (C {(print_ver_)} {(chgrp)}) (C {(require_membership_in_two_groups_)}) (Sentence child:(C {(set)} {(_)} {($ VSub_Name '$groups')}) terminator:<Op_Semi ';'>) (C {(shift)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:g1) op:Equal rhs:{($ VSub_Number '$1')} spids:[77])] spids: [77] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:g2) op:Equal rhs:{($ VSub_Number '$2')} spids:[80])] spids: [80] ) (C {(mkdir)} {(d)}) (C {(touch)} {(f)} {(f2)} {(d/f3)}) (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {($ VSub_Name '$g1')} {(f)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[103])] spids: [103] ) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {($ VSub_Name '$g2')} {(f)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[114])] spids: [114] ) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {($ VSub_Name '$g2')} {(f2)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[125])] spids: [125] ) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {(-R)} {($ VSub_Name '$g1')} {(d)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[138])] spids: [138] ) ] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:d_files) op:Equal rhs:{(SQ <'d d/f3'>)} spids:[142])] spids: [142] ) (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {($ VSub_Name '$g1')} {(f)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[156])] spids: [156] ) ] ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--p) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [163 172] ) } {(Lit_Other '=')} {($ VSub_Name '$g1')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[180])] spids: [180] ) ] ) (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {($ VSub_Name '$g2')} {(f)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[191])] spids: [191] ) ] ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--p) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [198 207] ) } {(Lit_Other '=')} {($ VSub_Name '$g2')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[215])] spids: [215] ) ] ) (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {($ VSub_Name '$g2')} {(f)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[226])] spids: [226] ) ] ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--p) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [233 242] ) } {(Lit_Other '=')} {($ VSub_Name '$g2')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[250])] spids: [250] ) ] ) (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {(SQ )} {(f)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[262])] spids: [262] ) ] ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--p) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [269 278] ) } {(Lit_Other '=')} {($ VSub_Name '$g2')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[286])] spids: [286] ) ] ) (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {($ VSub_Name '$g1')} {(f)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[297])] spids: [297] ) ] ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--p) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [304 313] ) } {(Lit_Other '=')} {($ VSub_Name '$g1')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[321])] spids: [321] ) ] ) (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {($ VSub_Name '$g1')} {(f)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[332])] spids: [332] ) ] ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--p) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [339 348] ) } {(Lit_Other '=')} {($ VSub_Name '$g1')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[356])] spids: [356] ) ] ) (Sentence child: (C {(chgrp)} {(--reference) (Lit_Other '=') (f2)} {(f)}) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--p) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [371 380] ) } {(Lit_Other '=')} {($ VSub_Name '$g2')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[388])] spids: [388] ) ] ) (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {(-R)} {($ VSub_Name '$g2')} {(d)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[401])] spids: [401] ) ] ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [ (C {(stat)} {(--p) (Lit_Other '=') (Lit_Other '%') (g) (Lit_Other ':')} {($ VSub_Name '$d_files')} ) ] ) left_token: <Left_CommandSub '$('> spids: [407 417] ) } {(Lit_Other '=')} {(DQ ($ VSub_Name '$g2') (':') ($ VSub_Name '$g2') (':'))} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[430])] spids: [430] ) ] ) (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {(-R)} {($ VSub_Name '$g1')} {(d)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[442])] spids: [442] ) ] ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [ (C {(stat)} {(--p) (Lit_Other '=') (Lit_Other '%') (g) (Lit_Other ':')} {($ VSub_Name '$d_files')} ) ] ) left_token: <Left_CommandSub '$('> spids: [448 458] ) } {(Lit_Other '=')} {(DQ ($ VSub_Name '$g1') (':') ($ VSub_Name '$g1') (':'))} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[471])] spids: [471] ) ] ) (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {(-R)} {($ VSub_Name '$g2')} {(d)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[483])] spids: [483] ) ] ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [ (C {(stat)} {(--p) (Lit_Other '=') (Lit_Other '%') (g) (Lit_Other ':')} {($ VSub_Name '$d_files')} ) ] ) left_token: <Left_CommandSub '$('> spids: [489 499] ) } {(Lit_Other '=')} {(DQ ($ VSub_Name '$g2') (':') ($ VSub_Name '$g2') (':'))} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[512])] spids: [512] ) ] ) (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {(-R)} {($ VSub_Name '$g1')} {(d)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[524])] spids: [524] ) ] ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [ (C {(stat)} {(--p) (Lit_Other '=') (Lit_Other '%') (g) (Lit_Other ':')} {($ VSub_Name '$d_files')} ) ] ) left_token: <Left_CommandSub '$('> spids: [530 540] ) } {(Lit_Other '=')} {(DQ ($ VSub_Name '$g1') (':') ($ VSub_Name '$g1') (':'))} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[553])] spids: [553] ) ] ) (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(chgrp)} {($ VSub_Name '$g2')} {(d)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[563])] spids: [563] ) ] ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [ (C {(stat)} {(--p) (Lit_Other '=') (Lit_Other '%') (g) (Lit_Other ':')} {($ VSub_Name '$d_files')} ) ] ) left_token: <Left_CommandSub '$('> spids: [569 579] ) } {(Lit_Other '=')} {(DQ ($ VSub_Name '$g2') (':') ($ VSub_Name '$g1') (':'))} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[592])] spids: [592] ) ] ) (C {(rm)} {(-f)} {(f)}) (C {(touch)} {(f)}) (C {(ln)} {(-s)} {(f)} {(symlink)}) (C {(chgrp)} {($ VSub_Name '$g1')} {(f)}) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--printf) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [622 631] ) } {(Lit_Other '=')} {($ VSub_Name '$g1')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[639])] spids: [639] ) ] ) (C {(chgrp)} {(-h)} {($ VSub_Name '$g2')} {(symlink)}) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--printf) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [656 665] ) } {(Lit_Other '=')} {($ VSub_Name '$g1')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[673])] spids: [673] ) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--printf) (Lit_Other '=') (Lit_Other '%') (g)} {(symlink)})] ) left_token: <Left_CommandSub '$('> spids: [685 694] ) } {(Lit_Other '=')} {($ VSub_Name '$g2')} ) (SimpleCommand words: [{(echo)} {(SQ <'info: failed to set group of symlink'>)}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[709])] ) ] ) (Sentence child: (C {(chown)} {(--from) (Lit_Other '=') (Lit_Other ':') ($ VSub_Name '$g1')} {(Lit_Other ':') ($ VSub_Name '$g2')} {(f)} ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--printf) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [728 737] ) } {(Lit_Other '=')} {($ VSub_Name '$g2')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[745])] spids: [745] ) ] ) (Sentence child:(C {(chgrp)} {($ VSub_Name '$g1')} {(symlink)}) terminator:<Op_Semi ';'>) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--printf) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [767 776] ) } {(Lit_Other '=')} {($ VSub_Name '$g1')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[784])] spids: [784] ) ] ) (Sentence child: (C {(chown)} {(--from) (Lit_Other '=') (Lit_Other ':') ($ VSub_Name '$g1')} {(Lit_Other ':') ($ VSub_Name '$g2')} {(f)} ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--printf) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [802 811] ) } {(Lit_Other '=')} {($ VSub_Name '$g2')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[819])] spids: [819] ) ] ) (Sentence child: (C {(chgrp)} {(-h)} {($ VSub_Name '$g1')} {(f)} {(symlink)}) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--printf) (Lit_Other '=') (Lit_Other '%') (g)} {(symlink)})] ) left_token: <Left_CommandSub '$('> spids: [839 848] ) } {(Lit_Other '=')} {($ VSub_Name '$g1')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[856])] spids: [856] ) ] ) (C {(chgrp)} {(-R)} {($ VSub_Name '$g2')} {(symlink)}) (Sentence child: (C {(chown)} {(--from) (Lit_Other '=') (Lit_Other ':') ($ VSub_Name '$g1')} {(Lit_Other ':') ($ VSub_Name '$g2')} {(f)} ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--printf) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [882 891] ) } {(Lit_Other '=')} {($ VSub_Name '$g2')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[899])] spids: [899] ) ] ) (C {(chmod)} {(a-r)} {(f)}) (Sentence child: (C {(chown)} {(--from) (Lit_Other '=') (Lit_Other ':') ($ VSub_Name '$g2')} {(Lit_Other ':') ($ VSub_Name '$g1')} {(f)} ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--printf) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [927 936] ) } {(Lit_Other '=')} {($ VSub_Name '$g1')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[944])] spids: [944] ) ] ) (C {(chmod)} {(0)} {(f)}) (Sentence child: (C {(chown)} {(--from) (Lit_Other '=') (Lit_Other ':') ($ VSub_Name '$g1')} {(Lit_Other ':') ($ VSub_Name '$g2')} {(f)} ) terminator: <Op_Semi ';'> ) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (CommandSubPart command_list: (CommandList children: [(C {(stat)} {(--printf) (Lit_Other '=') (Lit_Other '%') (g)} {(f)})] ) left_token: <Left_CommandSub '$('> spids: [968 977] ) } {(Lit_Other '=')} {($ VSub_Name '$g2')} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[985])] spids: [985] ) ] ) (C {(rm)} {(-f)} {(f)} {(g)}) (C {(touch)} {(f)} {(g)}) (C {(chgrp)} {($ VSub_Name '$g1')} {(f)} {(g)}) (C {(chgrp)} {($ VSub_Name '$g2')} {(g)}) (C {(sleep)} {(1)}) (C {(chgrp)} {($ VSub_Name '$g1')} {(f)}) (C {(chgrp)} {(SQ )} {(f)}) (AndOr ops: [Op_DPipe] children: [ (C {(test)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(ls)} {(-C)} {(-c)} {(-t)} {(f)} {(g)})]) left_token: <Left_CommandSub '$('> spids: [1059 1071] ) ) } {(Lit_Other '=')} {(SQ <'f g'>)} ) (BraceGroup children: [ (Case to_match: {($ VSub_Name '$host_triplet')} arms: [ (case_arm pat_list: [{(Lit_Other '*') (openbsd) (Lit_Other '*')}] action: [ (SimpleCommand words: [{(echo)} {(ignoring)} {(known)} {(OpenBSD-specific)} {(chgrp)} {(failure)}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[1111])] ) ] spids: [1094 1097 1114 16777215] ) (case_arm pat_list: [ {(Lit_Other '*') (darwin7.9.) (Lit_Other '*')} {(Lit_Other '*') (darwin8.) (Lit_Other '*')} ] action: [ (SimpleCommand words: [{(echo)} {(ignoring)} {(known)} {(MacOS)} {(X-specific)} {(chgrp)} {(failure)}] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[1141])] ) ] spids: [1117 1124 1144 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Sentence child: (SimpleCommand words: [ {(echo)} {($ VSub_Name '$host_triplet') (Lit_Other ':')} {(no-change)} {(chgrp)} {(failed)} {(to)} {(update)} {(ctime)} ] redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[1167])] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[1172])] spids: [1172] ) ] spids: [1147 1148 1175 16777215] ) ] spids: [1087 1091 1178] ) ] spids: [1084] ) ] ) (C {(Exit)} {($ VSub_Name '$fail')}) ] )