(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (FuncDef
      name: filter-py
      body: 
        (BraceGroup
          children: [(C {(grep)} {(-E)} {(-v)} {(SQ <'__init__.py$|_test.py$'>)})]
          spids: [42]
        )
      spids: [38 41]
    )
    (FuncDef
      name: oil-osh-files
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (BraceGroup
                  children: [
                    (Sentence
                      child: 
                        (C {(ls)} 
                          (BracedWordTree
                            parts: [
                              (BracedAltPart
                                words: [{(bin)} {(osh)} {(core)}]
                              )
                              (/)
                              (Lit_Other '*')
                              (.py)
                            ]
                          ) {(native/) (Lit_Other '*') (.c)} {(osh/osh.asdl)} {(core/runtime.asdl)}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [68]
                )
                (C {(filter-py)})
                (C {(grep)} {(-E)} {(-v)} {(SQ <'_gen.py$|test_lib.py'>)})
              ]
              negated: F
            )
          ]
          spids: [65]
        )
      spids: [61 64]
    )
    (FuncDef
      name: asdl-cloc
      body: 
        (BraceGroup
          children: [
            (C {(python)} {(-c)} 
              {
                (SQ <'\n'> <'import sys\n'> <'\n'> <'total = 0\n'> <'for path in sys.argv[1:]:\n'> 
                  <'  num_lines = 0\n'> <'  with open(path) as f:\n'> <'    for line in f:\n'> <'      line = line.strip()\n'> 
                  <'      if not line or line.startswith("--"):\n'> <'        continue\n'> <'      num_lines += 1\n'> <'\n'> <'  print "%5d %s" % (num_lines, path)\n'> 
                  <'  total += num_lines\n'> <'\n'> <'print "%5d %s" % (total, "total")\n'>
                )
              } {(DQ ($ VSub_At '$@'))}
            )
          ]
          spids: [124]
        )
      spids: [120 123]
    )
    (FuncDef
      name: oil-osh-cloc
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(SQ <'OIL AND OSH (non-blank non-comment lines)'>)})
            (C {(echo)})
            (Pipeline
              children: [(C {(oil-osh-files)}) (C {(xargs)} {(cloc)} {(--quiet)} {(DQ ($ VSub_At '$@'))})]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <'ASDL SCHEMAS (non-blank non-comment lines)'>)})
            (C {(asdl-cloc)} {(osh/osh.asdl)} {(core/runtime.asdl)})
          ]
          spids: [162]
        )
      spids: [158 161]
    )
    (FuncDef
      name: all
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(SQ <'BUILD AUTOMATION'>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [(build/) (Lit_Other '*') (.) (BracedAltPart words:[{(sh)} {(py)}])]
                  ) {(Makefile)} {(configure)} {(install)}
                )
                (C {(filter-py)})
                (C {(sort)} {(--numeric)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <'TEST AUTOMATION'>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [(test/) (Lit_Other '*') (.) (BracedAltPart words:[{(sh)} {(py)} {(R)}])]
                  )
                )
                (C {(filter-py)})
                (C {(sort)} {(--numeric)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <'RELEASE AUTOMATION'>)})
            (Pipeline
              children: [(C {(wc)} {(-l)} {(scripts/release.sh)}) (C {(sort)} {(--numeric)})]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <BENCHMARKS>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [
                      (benchmarks/)
                      (Lit_Other '*')
                      (.)
                      (BracedAltPart words:[{(sh)} {(py)} {(R)}])
                    ]
                  )
                )
                (C {(sort)} {(--numeric)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <'SPEC TESTS'>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} {(spec/) (Lit_Other '*') (.test.sh)})
                (C {(sort)} {(--numeric)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <'GOLD TESTS'>)})
            (Pipeline
              children: [(C {(wc)} {(-l)} {(gold/) (Lit_Other '*') (.sh)}) (C {(sort)} {(--numeric)})]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <ASDL>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [
                      (asdl/)
                      (BracedAltPart
                        words: [{(asdl_) (Lit_Other '*')} {(const)} {(py_meta)} {(encode)} {(format)}]
                      )
                      (.py)
                    ]
                  )
                )
                (C {(sort)} {(--numeric)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <'CODE GENERATORS'>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} {(asdl/gen_) (Lit_Other '*') (.py)} 
                  {(Lit_Other '*') (/) (Lit_Other '*') (_gen.py)}
                )
                (C {(sort)} {(--numeric)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <'GENERATED CODE'>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [(_devbuild/gen/) (Lit_Other '*') (.) (BracedAltPart words:[{(py)} {(h)}])]
                  )
                )
                (C {(sort)} {(--numeric)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <TOOLS>)})
            (Pipeline
              children: [
                (C {(ls)} {(tools/) (Lit_Other '*') (.py)})
                (C {(filter-py)})
                (C {(xargs)} {(wc)} {(-l)})
                (C {(sort)} {(--numeric)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <WEB>)})
            (Pipeline
              children: [
                (C {(ls)} {(web/) (Lit_Other '*') (.js)} 
                  (BracedWordTree
                    parts: [
                      (web/)
                      (Lit_Other '*')
                      (/)
                      (Lit_Other '*')
                      (.)
                      (BracedAltPart words:[{(js)} {(py)}])
                    ]
                  )
                )
                (C {(xargs)} {(wc)} {(-l)})
                (C {(sort)} {(--numeric)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <'OTHER UNIT TESTS'>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [
                      (BracedAltPart
                        words: [{(build)} {(test)} {(asdl)} {(tools)}]
                      )
                      (/)
                      (Lit_Other '*')
                      (_test.py)
                    ]
                  )
                )
                (C {(sort)} {(--numeric)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <'OIL UNIT TESTS'>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [
                      (BracedAltPart
                        words: [{(osh)} {(core)} {(native)} {(tools)}]
                      )
                      (/)
                      (Lit_Other '*')
                      (_test.py)
                    ]
                  )
                )
                (C {(sort)} {(--numeric)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <'OIL AND OSH'>)})
            (Pipeline
              children: [(C {(oil-osh-files)}) (C {(xargs)} {(wc)} {(-l)}) (C {(sort)} {(--numeric)})]
              negated: F
            )
            (C {(echo)})
            (ControlFlow token:<ControlFlow_Return return>)
            (C {(echo)} {(SQ <DOCS>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} {(README.md)} {(doc/) (Lit_Other '*')})
                (C {(sort)} {(--numeric)})
              ]
              negated: F
            )
            (C {(echo)})
          ]
          spids: [229]
        )
      spids: [225 228]
    )
    (FuncDef
      name: parser
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(SQ <'AST and IDs'>)})
            (Pipeline
              children: [(C {(wc)} {(-l)} {(osh/osh.asdl)} {(core/id_kind.py)}) (C {(sort)} {(-n)})]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <'Lexer / Parser'>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [
                      (osh/)
                      (BracedAltPart
                        words: [{(Lit_Other '*') (_parse.py)} {(lex.py)} {(parse_lib.py)}]
                      )
                    ]
                  ) {(core/word.py)}
                )
                (C {(sort)} {(-n)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <'Compiler / Middle End'>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [(core/) (BracedAltPart words:[{(braces)} {(word_compile)}]) (.py)]
                  )
                )
                (C {(sort)} {(-n)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <'Common Algorithms'>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [(core/) (BracedAltPart words:[{(tdop)} {(lexer)}]) (.py)]
                  )
                )
                (C {(sort)} {(-n)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <Utilities>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [(core/) (BracedAltPart words:[{(alloc)} {(ui)} {(reader)}]) (.py)]
                  )
                )
                (C {(sort)} {(-n)})
              ]
              negated: F
            )
            (C {(echo)})
          ]
          spids: [739]
        )
      spids: [735 738]
    )
    (FuncDef
      name: parser-port
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(wc)} {(-l)} {(core/tdop.py)} {(osh/) (Lit_Other '*') (_parse.py)})
                (C {(sort)} {(-n)})
              ]
              negated: F
            )
          ]
          spids: [902]
        )
      spids: [898 901]
    )
    (FuncDef
      name: runtime
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(SQ <Runtime>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [(core/) (BracedAltPart words:[{(process)} {(state)}]) (.py)]
                  ) {(core/runtime.asdl)}
                )
                (C {(sort)} {(-n)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <Evaluators>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [(core/) (Lit_Other '*') (_) (BracedAltPart words:[{(exec)} {(eval)}]) (.py)]
                  )
                )
                (C {(sort)} {(-n)})
              ]
              negated: F
            )
            (C {(echo)})
            (C {(echo)} {(SQ <Builtins>)})
            (C {(wc)} {(-l)} 
              (BracedWordTree
                parts: [(core/) (BracedAltPart words:[{(builtin)} {(test_builtin)}]) (.py)]
              )
            )
            (C {(echo)})
            (C {(echo)} {(SQ <Libraries>)})
            (Pipeline
              children: [
                (C {(wc)} {(-l)} 
                  (BracedWordTree
                    parts: [
                      (core/)
                      (BracedAltPart
                        words: [{(args)} {(glob_)} {(legacy)} {(libstr)}]
                      )
                      (.py)
                    ]
                  )
                )
                (C {(sort)} {(-n)})
              ]
              negated: F
            )
            (C {(echo)})
          ]
          spids: [928]
        )
      spids: [924 927]
    )
    (FuncDef
      name: instructions
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:bin) op:Equal rhs:{(_tmp/oil)} spids:[1080])]
              spids: [1078]
            )
            (Pipeline
              children: [
                (C {(objdump)} {(-d)} {($ VSub_Name '$bin')})
                (C {(cut)} {(-f3)})
                (C {(grep)} {(-oE)} {(DQ ('^[a-z]+'))})
                (C {(sort)})
                (C {(uniq)} {(-c)})
                (C {(sort)} {(-n)})
              ]
              negated: F
            )
          ]
          spids: [1070]
        )
      spids: [1066 1069]
    )
    (FuncDef
      name: hist
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [(C {(sort)}) (C {(uniq)} {(-c)}) (C {(sort)} {(-n)})]
              negated: F
            )
          ]
          spids: [1129]
        )
      spids: [1125 1128]
    )
    (FuncDef
      name: stdlib-imports
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(oil-osh-files)})
                (C {(xargs)} {(grep)} {(--no-filename)} {(SQ <'^import'>)})
                (C {(hist)})
              ]
              negated: F
            )
          ]
          spids: [1153]
        )
      spids: [1149 1152]
    )
    (FuncDef
      name: imports
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(oil-osh-files)})
                (C {(xargs)} {(grep)} {(--no-filename)} {(-w)} {(import)})
                (C {(hist)})
              ]
              negated: F
            )
          ]
          spids: [1181]
        )
      spids: [1177 1180]
    )
    (FuncDef
      name: top-level
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(grep)} {(SQ <'^[a-zA-Z]'>)} 
                  (BracedWordTree
                    parts: [(BracedAltPart words:[{(core)} {(osh)}]) (/) (Lit_Other '*') (.py)]
                  )
                )
                (C {(grep)} {(-v)} {(SQ <_test.py>)})
                (C {(egrep)} {(-v)} {(SQ <':import|from|class|def'>)})
              ]
              negated: F
            )
          ]
          spids: [1212]
        )
      spids: [1208 1211]
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)