(CommandList
  children: [
    (C {(Lit_Other ":")} {(generate)} {(DQ ("<sys/param.h> + <sys/types.h> + <sys/stat.h>"))} {(include)} 
      {(sequence)}
    )
    (Case
      to_match: {($ VSub_Pound "$#")}
      arms: [
        (case_arm pat_list:[{(0)}] spids:[818284-1])
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [(C {(eval)} {($ VSub_Number "$1")}) (C {(shift)})]
          spids: [86 87 97 -1]
        )
      ]
      spids: [75 79 99]
    )
    (ForEach
      iter_name: i
      iter_words: [
        {(DQ ("#include <sys/param.h>"))}
        {
          (DQ ("#include <sys/param.h>\n") ("#ifndef S_IFDIR\n") ("#include <sys/stat.h>\n") ("#endif"))
        }
        {
          (DQ ("#include <sys/param.h>\n") ("#ifndef S_IFDIR\n") ("#include <sys/types.h>\n") 
            ("#include <sys/stat.h>\n") ("#endif")
          )
        }
        {
          (DQ ("#ifndef S_IFDIR\n") ("#include <sys/types.h>\n") ("#include <sys/stat.h>\n") ("#endif"))
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ($ VSub_Name "$i") ("\n") ("struct stat V_stat_V;\n") 
                    ("F_stat_F() { V_stat_V.st_mode = 0; }")
                  )
                }
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {($ VSub_Name "$tmp") (.c)}
                  spids: [144]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (SimpleCommand
                      words: [{($ VSub_Name "$cc")} {(-c)} {($ VSub_Name "$tmp") (.c)}]
                      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[159])]
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ($ VSub_Name "$i"))})
                    (ControlFlow token:<ControlFlow_Break break>)
                  ]
                  spids: [-1 163]
                )
              ]
              spids: [-1 175]
            )
          ]
          spids: [133 177]
        )
      spids: [106 -1]
    )
  ]
)