(command.CommandList children: [ (C {(Id.KW_Set set)} {(-o)} {(nounset)}) (C {(Id.KW_Set set)} {(-o)} {(pipefail)}) (C {(Id.KW_Set set)} {(-o)} {(errexit)}) (command.ShFunction name: filter-py body: (command.BraceGroup children: [ (C {(grep)} {(-E)} {(-v)} {(SQ (Token id:Id.Lit_Chars val:'__init__.py$|_test.py$' span_id:52))} ) ] ) ) (command.ShFunction name: oil-osh-files body: (command.BraceGroup children: [ (command.Pipeline children: [ (command.BraceGroup children: [ (command.Sentence child: (C {(ls)} (word.BracedTree parts: [ (word_part.BracedTuple words: [{(bin)} {(osh)} {(core)}] ) (/) (Id.Lit_Star '*') (.py) ] ) {(native/) (Id.Lit_Star '*') (.c)} (word.BracedTree parts: [(osh/) (word_part.BracedTuple words:[{(osh)} {(types)}]) (.asdl)] ) {(core/runtime.asdl)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:96) ) ] ) (C {(filter-py)}) (C {(grep)} {(-E)} {(-v)} {(SQ (Token id:Id.Lit_Chars val:'_gen.py$|test_lib.py' span_id:114))} ) ] negated: F ) ] ) ) (command.ShFunction name: asdl-cloc body: (command.BraceGroup children: [ (C {(python)} {(-c)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:138) (Token id:Id.Lit_Chars val:'import sys\n' span_id:139) (Token id:Id.Lit_Chars val:'\n' span_id:140) (Token id:Id.Lit_Chars val:'total = 0\n' span_id:141) (Token id: Id.Lit_Chars val: 'for path in sys.argv[1:]:\n' span_id: 142 ) (Token id:Id.Lit_Chars val:' num_lines = 0\n' span_id:143) (Token id: Id.Lit_Chars val: ' with open(path) as f:\n' span_id: 144 ) (Token id:Id.Lit_Chars val:' for line in f:\n' span_id:145) (Token id: Id.Lit_Chars val: ' line = line.strip()\n' span_id: 146 ) (Token id:Id.Lit_Chars val:' if not line or line.startswith("--"):\n' span_id:147) (Token id:Id.Lit_Chars val:' continue\n' span_id:148) (Token id:Id.Lit_Chars val:' num_lines += 1\n' span_id:149) (Token id:Id.Lit_Chars val:'\n' span_id:150) (Token id:Id.Lit_Chars val:' print "%5d %s" % (num_lines, path)\n' span_id:151) (Token id:Id.Lit_Chars val:' total += num_lines\n' span_id:152) (Token id:Id.Lit_Chars val:'\n' span_id:153) (Token id: Id.Lit_Chars val: 'print "%5d %s" % (total, "total")\n' span_id: 154 ) ) } {(DQ ($ Id.VSub_At '$@'))} ) ] ) ) (command.ShFunction name: oil-osh-cloc body: (command.BraceGroup children: [ (C {(echo)} { (SQ (Token id: Id.Lit_Chars val: 'OIL AND OSH (non-blank non-comment lines)' span_id: 174 ) ) } ) (C {(echo)}) (command.Pipeline children: [ (C {(oil-osh-files)}) (C {(xargs)} {(cloc)} {(--quiet)} {(DQ ($ Id.VSub_At '$@'))}) ] negated: F ) (C {(echo)}) (C {(echo)} { (SQ (Token id: Id.Lit_Chars val: 'ASDL SCHEMAS (non-blank non-comment lines)' span_id: 212 ) ) } ) (C {(asdl-cloc)} {(osh/osh.asdl)} {(core/runtime.asdl)}) ] ) ) (command.ShFunction name: all body: (command.BraceGroup children: [ (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'BUILD AUTOMATION' span_id:241))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [ (build/) (Id.Lit_Star '*') (.) (word_part.BracedTuple words:[{(mk)} {(sh)} {(py)}]) ] ) {(Makefile)} {(Id.Lit_Star '*') (.mk)} {(configure)} {(install)} ) (C {(filter-py)}) (C {(sort)} {(--numeric)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'TEST AUTOMATION' span_id:288))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [ (test/) (Id.Lit_Star '*') (.) (word_part.BracedTuple words:[{(sh)} {(py)} {(R)}]) ] ) ) (C {(filter-py)}) (C {(sort)} {(--numeric)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'RELEASE AUTOMATION' span_id:325))}) (command.Pipeline children: [(C {(wc)} {(-l)} {(scripts/release.sh)}) (C {(sort)} {(--numeric)})] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:BENCHMARKS span_id:349))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [ (benchmarks/) (Id.Lit_Star '*') (.) (word_part.BracedTuple words:[{(sh)} {(py)} {(R)}]) ] ) ) (C {(sort)} {(--numeric)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'SPEC TESTS' span_id:382))}) (command.Pipeline children: [ (C {(wc)} {(-l)} {(spec/) (Id.Lit_Star '*') (.test.sh)}) (C {(sort)} {(--numeric)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'GOLD TESTS' span_id:408))}) (command.Pipeline children: [(C {(wc)} {(-l)} {(gold/) (Id.Lit_Star '*') (.sh)}) (C {(sort)} {(--numeric)})] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:ASDL span_id:434))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [ (asdl/) (word_part.BracedTuple words: [{(asdl_) (Id.Lit_Star '*')} {(const)} {(py_meta)} {(encode)} {(format)}] ) (.py) ] ) ) (C {(sort)} {(--numeric)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'CODE GENERATORS' span_id:471))}) (command.Pipeline children: [ (C {(wc)} {(-l)} {(asdl/gen_) (Id.Lit_Star '*') (.py)} {(Id.Lit_Star '*') (/) (Id.Lit_Star '*') (_gen.py)} ) (C {(sort)} {(--numeric)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'GENERATED CODE' span_id:502))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [ (_devbuild/gen/) (Id.Lit_Star '*') (.) (word_part.BracedTuple words:[{(py)} {(h)}]) ] ) ) (C {(sort)} {(--numeric)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:TOOLS span_id:533))}) (command.Pipeline children: [ (C {(ls)} {(tools/) (Id.Lit_Star '*') (.py)}) (C {(filter-py)}) (C {(xargs)} {(wc)} {(-l)}) (C {(sort)} {(--numeric)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:WEB span_id:569))}) (command.Pipeline children: [ (C {(ls)} {(web/) (Id.Lit_Star '*') (.js)} (word.BracedTree parts: [ (web/) (Id.Lit_Star '*') (/) (Id.Lit_Star '*') (.) (word_part.BracedTuple words:[{(js)} {(py)}]) ] ) ) (C {(xargs)} {(wc)} {(-l)}) (C {(sort)} {(--numeric)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'OTHER UNIT TESTS' span_id:612))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [ (word_part.BracedTuple words: [{(build)} {(test)} {(asdl)} {(tools)}] ) (/) (Id.Lit_Star '*') (_test.py) ] ) ) (C {(sort)} {(--numeric)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'OIL UNIT TESTS' span_id:647))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [ (word_part.BracedTuple words: [{(osh)} {(core)} {(native)} {(tools)}] ) (/) (Id.Lit_Star '*') (_test.py) ] ) ) (C {(sort)} {(--numeric)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'OIL AND OSH' span_id:682))}) (command.Pipeline children: [(C {(oil-osh-files)}) (C {(xargs)} {(wc)} {(-l)}) (C {(sort)} {(--numeric)})] negated: F ) (C {(echo)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:708) ) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:DOCS span_id:719))}) (command.Pipeline children: [ (C {(wc)} {(-l)} {(README.md)} {(doc/) (Id.Lit_Star '*')}) (C {(sort)} {(--numeric)}) ] negated: F ) (C {(echo)}) ] ) ) (command.ShFunction name: parser body: (command.BraceGroup children: [ (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'AST and IDs' span_id:757))}) (command.Pipeline children: [(C {(wc)} {(-l)} {(osh/osh.asdl)} {(core/id_kind.py)}) (C {(sort)} {(-n)})] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'Lexer / Parser' span_id:783))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [ (osh/) (word_part.BracedTuple words: [{(Id.Lit_Star '*') (_parse.py)} {(lex.py)} {(parse_lib.py)}] ) ] ) {(core/word.py)} ) (C {(sort)} {(-n)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'Compiler / Middle End' span_id:817))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [(core/) (word_part.BracedTuple words:[{(braces)} {(word_compile)}]) (.py)] ) ) (C {(sort)} {(-n)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'Common Algorithms' span_id:847))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [(core/) (word_part.BracedTuple words:[{(tdop)} {(lexer)}]) (.py)] ) ) (C {(sort)} {(-n)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:Utilities span_id:877))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [(core/) (word_part.BracedTuple words:[{(alloc)} {(ui)} {(reader)}]) (.py)] ) ) (C {(sort)} {(-n)}) ] negated: F ) (C {(echo)}) ] ) ) (command.ShFunction name: parser-port body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(wc)} {(-l)} {(core/tdop.py)} {(osh/) (Id.Lit_Star '*') (_parse.py)}) (C {(sort)} {(-n)}) ] negated: F ) ] ) ) (command.ShFunction name: runtime body: (command.BraceGroup children: [ (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:Runtime span_id:951))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [(core/) (word_part.BracedTuple words:[{(process)} {(state)}]) (.py)] ) {(core/runtime.asdl)} ) (C {(sort)} {(-n)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:Evaluators span_id:987))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [ (core/) (Id.Lit_Star '*') (_) (word_part.BracedTuple words:[{(exec)} {(eval)}]) (.py) ] ) ) (C {(sort)} {(-n)}) ] negated: F ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:Builtins span_id:1019))}) (C {(wc)} {(-l)} (word.BracedTree parts: [(core/) (word_part.BracedTuple words:[{(builtin)} {(test_builtin)}]) (.py)] ) ) (C {(echo)}) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:Libraries span_id:1043))}) (command.Pipeline children: [ (C {(wc)} {(-l)} (word.BracedTree parts: [ (core/) (word_part.BracedTuple words: [{(args)} {(glob_)} {(legacy)} {(libstr)}] ) (.py) ] ) ) (C {(sort)} {(-n)}) ] negated: F ) (C {(echo)}) ] ) ) (command.ShFunction name: instructions body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'bin=') (_tmp/oil)}) (command.Pipeline children: [ (C {(objdump)} {(-d)} {($ Id.VSub_DollarName '$bin')}) (C {(cut)} {(-f3)}) (C {(grep)} {(-oE)} {(DQ ('^[a-z]+'))}) (C {(sort)}) (C {(uniq)} {(-c)}) (C {(sort)} {(-n)}) ] negated: F ) ] ) ) (command.ShFunction name: hist body: (command.BraceGroup children: [ (command.Pipeline children: [(C {(sort)}) (C {(uniq)} {(-c)}) (C {(sort)} {(-n)})] negated: F ) ] ) ) (command.ShFunction name: stdlib-imports body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(oil-osh-files)}) (C {(xargs)} {(grep)} {(--no-filename)} {(SQ (Token id:Id.Lit_Chars val:'^import' span_id:1179))} ) (C {(hist)}) ] negated: F ) ] ) ) (command.ShFunction name: imports body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(oil-osh-files)}) (C {(xargs)} {(grep)} {(--no-filename)} {(-w)} {(import)}) (C {(hist)}) ] negated: F ) ] ) ) (command.ShFunction name: top-level body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(grep)} {(SQ (Token id:Id.Lit_Chars val:'^[a-zA-Z]' span_id:1230))} (word.BracedTree parts: [(word_part.BracedTuple words:[{(core)} {(osh)}]) (/) (Id.Lit_Star '*') (.py)] ) ) (C {(grep)} {(-v)} {(SQ (Token id:Id.Lit_Chars val:_test.py span_id:1251))}) (C {(egrep)} {(-v)} {(SQ (Token id:Id.Lit_Chars val:':import|from|class|def' span_id:1263))} ) ] negated: F ) ] ) ) (command.ShFunction name: _python-symbols body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'main=') ($ Id.VSub_Number '$1')}) (C {(local)} {(Id.Lit_VarLike 'name=') ($ Id.VSub_Number '$2')}) (C {(local)} {(Id.Lit_VarLike 'out=') (_tmp/) (${ Id.VSub_Name name) (-python-symbols.txt)}) (command.Pipeline children: [ (command.Simple words: [{($ Id.VSub_DollarName '$main')}] more_env: [(env_pair name:CALLGRAPH val:{(1)} spids:[1303])] ) (C {(tee)} {($ Id.VSub_DollarName '$out')}) ] negated: F ) (C {(wc)} {(-l)} {($ Id.VSub_DollarName '$out')}) (C {(echo)}) (C {(echo)} {(DQ ('Wrote ') ($ Id.VSub_DollarName '$out'))}) ] ) ) (command.ShFunction name: oil-python-symbols body: (command.BraceGroup children:[(C {(_python-symbols)} {(bin/oil.py)} {(oil)})]) ) (command.ShFunction name: opy-python-symbols body: (command.BraceGroup children:[(C {(_python-symbols)} {(bin/opy_.py)} {(opy)})]) ) (command.ShFunction name: old-style-classes body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {(oil-python-symbols)}) (C {(grep)} {(-v)} {(SQ (Token id:Id.Lit_Chars val:'<' span_id:1385))}) ] negated: F ) ] ) ) (C {(DQ ($ Id.VSub_At '$@'))}) ] )