(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:includedir)
          op: Equal
          rhs: {(DQ ($ VSub_Number '$1'))}
          spids: [48]
        )
      ]
      spids: [48]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:objpfx)
          op: Equal
          rhs: {(DQ ($ VSub_Number '$2'))}
          spids: [53]
        )
      ]
      spids: [53]
    )
    (C {(cd)} {(DQ ($ VSub_Name '$objpfx'))})
    (C {(shopt)} {(-s)} {(nullglob)})
    (C {(exec)} {(${ VSub_Name AWK)} {(-v)} {(Lit_VarLike 'includedir=') (DQ ($ VSub_Name '$includedir'))} 
      {
        (SQ <'\n'> <'BEGIN {\n'> <'  status = 0\n'> <'  exclude = "^" includedir \\\n'> 
          <
'    "/(.*-.*-.*/|)(asm[-/]|arch|linux/|selinux/|mach/|device/|hurd/(((hurd|ioctl)_types|paths)\\\\.h|ioctls\\\\.defs)|cthreads\\\\.h|gd|nss3/|c\\\\+\\\\+/|sys/(capability|sdt(|-config))\\\\.h|libaudit\\\\.h)"\n'
          > <'}\n'> <'/^[^ ]/ && $1 ~ /.*:/ { obj = $1 }\n'> <'{\n'> <'  for (i = 1; i <= NF; ++i) {\n'> 
          <'    if ($i ~ ("^" includedir) && $i !~ exclude) {\n'> <'      print "***", obj, "uses", $i\n'> <'      status = 1\n'> <'    }\n'> <'  }\n'> <'}\n'> 
          <'END { exit status }'>
        )
      } 
      (BracedWordTree
        parts: [(Lit_Other '*') (/) (Lit_Other '*') (.) (BracedAltPart words:[{(o)} {(os)} {(oS)}]) (.d)]
      )
    )
  ]
)