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