(command.CommandList
  children: [
    (C {<Id.KW_Set set>} {<-o>} {<nounset>})
    (C {<Id.KW_Set set>} {<-o>} {<pipefail>})
    (C {<Id.KW_Set set>} {<-o>} {<errexit>})
    (C {<source>} {<build/common.sh>})
    (command.ShFunction
      name: download-re2c
      body: 
        (command.BraceGroup
          children: [
            (C {<mkdir>} {<-p>} {<_deps>})
            (C {<wget>} {<--directory>} {<_deps>} 
              {<https> <Id.Lit_Other ':'> 
                <//github.com/skvadrik/re2c/releases/download/1.0.3/re2c-1.0.3.tar.gz>
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: install-re2c
      body: 
        (command.BraceGroup
          children: [
            (C {<cd>} {<_deps>})
            (command.Simple
              words: [{<tar>} {<-x>} {<-z>}]
              redirects: [(redir.Redir op:<Id.Redir_Less '<'> fd:-1 arg_word:{<re2c-1.0.3.tar.gz>})]
            )
            (C {<cd>} {<re2c-1.0.3>})
            (C {<./configure>})
            (C {<make>})
          ]
        )
    )
    (command.ShFunction
      name: re2c
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<_deps/re2c-1.0.3/re2c>} {(DQ ($ Id.VSub_At '$@'))})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: download-clang
      body: 
        (command.BraceGroup
          children: [
            (C {<wget>} {<--directory>} {<_deps>} 
              {<http> <Id.Lit_Other ':'> <//releases.llvm.org/5.0.1/clang> <Id.Lit_Other '+'> 
                <llvm-5.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz>
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: extract-clang
      body: 
        (command.BraceGroup
          children: [
            (C {<cd>} {<_deps>})
            (command.TimeBlock
              pipeline: 
                (command.Simple
                  words: [{<tar>} {<-x>} {<--xz>}]
                  redirects: [
                    (redir.Redir
                      op: <Id.Redir_Less '<'>
                      fd: -1
                      arg_word: {<clang> <Id.Lit_Star '*'> <.tar.xz>}
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: types-gen
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [{<osh/ast_gen.py>} {(DQ ($ Id.VSub_At '$@'))}]
              redirects: [
                (redir.Redir
                  op: <Id.Redir_Great '>'>
                  fd: -1
                  arg_word: {<_devbuild/gen/osh-types.h>}
                )
              ]
              more_env: [(env_pair name:PYTHONPATH val:{<.>} spids:[248])]
            )
          ]
        )
    )
    (command.ShFunction
      name: id-gen
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [{<core/id_kind_gen.py>} {<c>}]
              redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<_devbuild/gen/id.h>})]
              more_env: [(env_pair name:PYTHONPATH val:{<.>} spids:[271])]
            )
          ]
        )
    )
    (command.ShFunction
      name: lexer-gen
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  words: [{<core/lexer_gen.py>} {(DQ ($ Id.VSub_At '$@'))}]
                  more_env: [(env_pair name:PYTHONPATH val:{<.>} spids:[291])]
                )
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: osh-lex-gen
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [{<lexer-gen>} {<c>}]
              redirects: [
                (redir.Redir
                  op: <Id.Redir_Great '>'>
                  fd: -1
                  arg_word: {<_devbuild/gen/osh-lex.re2c.h>}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: print-regex
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<lexer-gen>} {<print-regex>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: print-all
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {<lexer-gen>} {<print-all>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: osh-lex-gen-native
      body: 
        (command.BraceGroup
          children: [
            (C {<re2c>} {<-W>} {<-Wno-match-empty-string>} {<-Werror>} {<-o>} {<_devbuild/gen/osh-lex.h>} 
              {<_devbuild/gen/osh-lex.re2c.h>}
            )
          ]
        )
    )
    (command.ShFunction
      name: ast-id-lex
      body: 
        (command.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>})
          ]
        )
    )
    (command.ShFunction
      name: bloaty
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: 
                (C {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) </git/other/bloaty/bloaty>} 
                  {(DQ ($ Id.VSub_At '$@'))}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
        )
    )
    (command.ShFunction
      name: stats
      body: 
        (command.BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'obj='> <_devbuild/py-ext/x86_64/fastlex.so>})
            (C {<nm>} {($ Id.VSub_DollarName '$obj')})
            (C {<echo>})
            (C {<bloaty>} {($ Id.VSub_DollarName '$obj')})
            (C {<echo>})
            (C {<bloaty>} {<-d>} {<symbols>} {($ Id.VSub_DollarName '$obj')})
            (C {<echo>})
            (C {<ls>} {<-l>} {($ Id.VSub_DollarName '$obj')})
            (C {<echo>})
          ]
        )
    )
    (command.ShFunction
      name: gen-cpp
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [{<asdl/gen_cpp.py>} {<cpp>} {<osh/osh.asdl>}]
              more_env: [(env_pair name:PYTHONPATH val:{<.>} spids:[545])]
            )
          ]
        )
    )
    (C {(DQ ($ Id.VSub_At '$@'))})
  ]
)