(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (C {(source)} {(build/common.sh)})
    (FuncDef
      name: download-re2c
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(_deps)})
            (C {(wget)} {(--directory)} {(_deps)} 
              {(https) (Lit_Other ':') 
                (//github.com/skvadrik/re2c/releases/download/1.0.3/re2c-1.0.3.tar.gz)
              }
            )
          ]
          spids: [111]
        )
      spids: [107 110]
    )
    (FuncDef
      name: install-re2c
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(_deps)})
            (SimpleCommand
              words: [{(tar)} {(-x)} {(-z)}]
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: 16777215
                  arg_word: {(re2c-1.0.3.tar.gz)}
                  spids: [154]
                )
              ]
            )
            (C {(cd)} {(re2c-1.0.3)})
            (C {(./configure)})
            (C {(make)})
          ]
          spids: [140]
        )
      spids: [136 139]
    )
    (FuncDef
      name: re2c
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: (C {(_deps/re2c-1.0.3/re2c)} {(DQ ($ VSub_At '$@'))})
              terminator: <Op_Semi ';'>
            )
          ]
          spids: [176]
        )
      spids: [172 175]
    )
    (FuncDef
      name: download-clang
      body: 
        (BraceGroup
          children: [
            (C {(wget)} {(--directory)} {(_deps)} 
              {(http) (Lit_Other ':') (//releases.llvm.org/5.0.1/clang) (Lit_Other '+') 
                (llvm-5.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz)
              }
            )
          ]
          spids: [192]
        )
      spids: [188 191]
    )
    (FuncDef
      name: extract-clang
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(_deps)})
            (TimeBlock
              pipeline: 
                (SimpleCommand
                  words: [{(tar)} {(-x)} {(--xz)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(clang) (Lit_Other '*') (.tar.xz)}
                      spids: [232]
                    )
                  ]
                )
            )
          ]
          spids: [216]
        )
      spids: [212 215]
    )
    (FuncDef
      name: types-gen
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(osh/ast_gen.py)} {(DQ ($ VSub_At '$@'))}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(_devbuild/gen/osh-types.h)}
                  spids: [257]
                )
              ]
              more_env: [(env_pair name:PYTHONPATH val:{(.)} spids:[248])]
            )
          ]
          spids: [245]
        )
      spids: [241 244]
    )
    (FuncDef
      name: id-gen
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(core/id_kind_gen.py)} {(c)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(_devbuild/gen/id.h)}
                  spids: [278]
                )
              ]
              more_env: [(env_pair name:PYTHONPATH val:{(.)} spids:[271])]
            )
          ]
          spids: [268]
        )
      spids: [264 267]
    )
    (FuncDef
      name: lexer-gen
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(core/lexer_gen.py)} {(DQ ($ VSub_At '$@'))}]
                  more_env: [(env_pair name:PYTHONPATH val:{(.)} spids:[291])]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          spids: [289]
        )
      spids: [285 288]
    )
    (FuncDef
      name: osh-lex-gen
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(lexer-gen)} {(c)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(_devbuild/gen/osh-lex.re2c.h)}
                  spids: [321]
                )
              ]
            )
          ]
          spids: [314]
        )
      spids: [310 313]
    )
    (FuncDef
      name: print-regex
      body: 
        (BraceGroup
          children: [(Sentence child:(C {(lexer-gen)} {(print-regex)}) terminator:<Op_Semi ';'>)]
          spids: [332]
        )
      spids: [328 331]
    )
    (FuncDef
      name: print-all
      body: 
        (BraceGroup
          children: [(Sentence child:(C {(lexer-gen)} {(print-all)}) terminator:<Op_Semi ';'>)]
          spids: [345]
        )
      spids: [341 344]
    )
    (FuncDef
      name: osh-lex-gen-native
      body: 
        (BraceGroup
          children: [
            (C {(re2c)} {(-W)} {(-Wno-match-empty-string)} {(-Werror)} {(-o)} {(_devbuild/gen/osh-lex.h)} 
              {(_devbuild/gen/osh-lex.re2c.h)}
            )
          ]
          spids: [362]
        )
      spids: [358 361]
    )
    (FuncDef
      name: ast-id-lex
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(_devbuild/gen)})
            (C {(log)} {(DQ ('-- Generating AST, IDs, and lexer in _devbuild/gen'))})
            (C {(types-gen)})
            (C {(id-gen)})
            (C {(osh-lex-gen)})
            (C {(osh-lex-gen-native)})
          ]
          spids: [403]
        )
      spids: [399 402]
    )
    (FuncDef
      name: bloaty
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: (C {(TildeSubPart prefix:'') (/git/other/bloaty/bloaty)} {(DQ ($ VSub_At '$@'))})
              terminator: <Op_Semi ';'>
            )
          ]
          spids: [442]
        )
      spids: [438 441]
    )
    (FuncDef
      name: stats
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:obj)
                  op: Equal
                  rhs: {(_devbuild/py-ext/x86_64/fastlex.so)}
                  spids: [464]
                )
              ]
              spids: [462]
            )
            (C {(nm)} {($ VSub_Name '$obj')})
            (C {(echo)})
            (C {(bloaty)} {($ VSub_Name '$obj')})
            (C {(echo)})
            (C {(bloaty)} {(-d)} {(symbols)} {($ VSub_Name '$obj')})
            (C {(echo)})
            (C {(ls)} {(-l)} {($ VSub_Name '$obj')})
            (C {(echo)})
          ]
          spids: [459]
        )
      spids: [455 458]
    )
    (FuncDef
      name: gen-cpp
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(asdl/gen_cpp.py)} {(cpp)} {(osh/osh.asdl)}]
              more_env: [(env_pair name:PYTHONPATH val:{(.)} spids:[545])]
            )
          ]
          spids: [542]
        )
      spids: [538 541]
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)