(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:rc_files)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Star '*'>
                suffix_op: 
                  (suffix_op.Unary
                    tok: <Id.VTest_ColonHyphen ':-'>
                    arg_word: 
                      {<Id.Lit_Slash '/'> <etc> <Id.Lit_Slash '/'> <rc.d> <Id.Lit_Slash '/'> 
                        <Id.Lit_Other '*'>
                      }
                  )
              )
            }
          spids: [97]
        )
      ]
    )
    (BraceGroup
      children: [
        (C {<echo>} {(SQ <' digraph {'>)})
        (command.ForEach
          iter_name: f
          iter_words: [{($ Id.VSub_DollarName '$rc_files')}]
          do_arg_iter: F
          body: 
            (command.DoGroup
              children: [
                (command.Simple
                  words: [
                    {<awk>}
                    {
                      (SQ <'\n'> <'/# PROVIDE: /\t{ provide = $3 }\n'> 
                        <'/# REQUIRE: /\t{ for (i = 3; i <= NF; i++) requires[$i] = $i }\n'> <'/# BEFORE: /\t{ for (i = 3; i <= NF; i++) befores[$i] = $i }\n'> <'\n'> <'END {\n'> 
                        <'\tprint "    \\"" provide "\\";"\n'> <'\tfor (x in requires) print "    \\"" provide "\\"->\\"" x "\\";"\n'> 
                        <'\tfor (x in befores) print "    \\"" x "\\"->\\"" provide "\\";"\n'> <'}\n'>
                      )
                    }
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_Less '<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: {($ Id.VSub_DollarName '$f')}
                    )
                  ]
                  do_fork: T
                )
              ]
            )
        )
        (C {<echo>} {(SQ <'}'>)})
      ]
    )
  ]
)