(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: ubuntu-deps
      body: 
        (BraceGroup
          children: [
            (C {<sudo>} {<apt-get>} {<install>} {<python-dev>} {<gawk>} {<Id.KW_Time time>} 
              {<libreadline-dev>}
            )
            (C {<'test/spec.sh'>} {<install-shells>})
          ]
        )
    )
    (command.ShFunction
      name: gen-help
      body: (BraceGroup children:[(C {<'build/doc.sh'>} {<osh-quick-ref>})])
    )
    (command.ShFunction
      name: gen-types-asdl
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'out='> <'_devbuild/gen/types_asdl.py'>})
            (C {<local>} 
              {<Id.Lit_VarLike 'import='> 
                (SQ <'from osh.meta import TYPES_TYPE_LOOKUP as TYPE_LOOKUP'>)
              }
            )
            (command.Simple
              words: [
                {<'asdl/gen_python.py'>}
                {<'osh/types.asdl'>}
                {(DQ ($ Id.VSub_DollarName '$import'))}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName '$out')}
                )
              ]
              more_env: [(env_pair name:PYTHONPATH val:{<.>} spids:[135])]
              do_fork: T
            )
            (C {<echo>} {(DQ <'Wrote '> ($ Id.VSub_DollarName '$out'))})
          ]
        )
    )
    (command.ShFunction
      name: gen-osh-asdl
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'out='> <'_devbuild/gen/osh_asdl.py'>})
            (C {<local>} 
              {<Id.Lit_VarLike 'import='> (SQ <'from osh.meta import OSH_TYPE_LOOKUP as TYPE_LOOKUP'>)}
            )
            (command.Simple
              words: [{<'asdl/gen_python.py'>} {<'osh/osh.asdl'>} {(DQ ($ Id.VSub_DollarName '$import'))}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName '$out')}
                )
              ]
              more_env: [(env_pair name:PYTHONPATH val:{<.>} spids:[182])]
              do_fork: T
            )
            (C {<echo>} {(DQ <'Wrote '> ($ Id.VSub_DollarName '$out'))})
          ]
        )
    )
    (command.ShFunction
      name: gen-runtime-asdl
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'out='> <'_devbuild/gen/runtime_asdl.py'>})
            (C {<local>} 
              {<Id.Lit_VarLike 'import='> 
                (SQ <'from osh.meta import RUNTIME_TYPE_LOOKUP as TYPE_LOOKUP'>)
              }
            )
            (command.Simple
              words: [
                {<'asdl/gen_python.py'>}
                {<'core/runtime.asdl'>}
                {(DQ ($ Id.VSub_DollarName '$import'))}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName '$out')}
                )
              ]
              more_env: [(env_pair name:PYTHONPATH val:{<.>} spids:[229])]
              do_fork: T
            )
            (C {<echo>} {(DQ <'Wrote '> ($ Id.VSub_DollarName '$out'))})
          ]
        )
    )
    (command.ShFunction
      name: py-ext
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'name='> ($ Id.VSub_Number '$1')})
            (C {<local>} {<Id.Lit_VarLike 'setup_script='> ($ Id.VSub_Number '$2')})
            (C {<mkdir>} {<-p>} {<'_devbuild/py-ext'>})
            (C {<local>} 
              {<Id.Lit_VarLike 'arch='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<uname>} {<-m>})
                )
              }
            )
            (C {($ Id.VSub_DollarName '$setup_script')} {<build>} {<--build-lib>} 
              {<'_devbuild/py-ext/'> ($ Id.VSub_DollarName '$arch')}
            )
            (C {<shopt>} {<-s>} {<failglob>})
            (C {<local>} 
              {<Id.Lit_VarLike 'so='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (C {<echo>} 
                      {<'_devbuild/py-ext/'> ($ Id.VSub_DollarName '$arch') <'/'> 
                        ($ Id.VSub_DollarName '$name') <.so>
                      }
                    )
                )
              }
            )
            (C {<ln>} {<-s>} {<-f>} {<-v>} {($ Id.VSub_DollarName '$so')} 
              {($ Id.VSub_DollarName '$name') <.so>}
            )
            (C {<file>} {($ Id.VSub_DollarName '$name') <.so>})
          ]
        )
    )
    (command.ShFunction
      name: pylibc
      body: 
        (BraceGroup
          children: [
            (C {<py-ext>} {<libc>} {<'build/setup.py'>})
            (command.Simple
              words: [{<'native/libc_test.py'>}]
              more_env: [(env_pair name:PYTHONPATH val:{<.>} spids:[380])]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: fastlex
      body: 
        (BraceGroup
          children: [
            (C {<'build/codegen.sh'>} {<ast-id-lex>})
            (C {<rm>} {<-f>} {<'_devbuild/py-ext/x86_64/fastlex.so'>})
            (C {<py-ext>} {<fastlex>} {<'build/setup_fastlex.py'>})
            (command.Simple
              words: [{<'native/fastlex_test.py'>}]
              more_env: [(env_pair name:PYTHONPATH val:{<.>} spids:[420])]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: clean
      body: 
        (BraceGroup
          children: [
            (C {<rm>} {<-f>} {<--verbose>} {<libc.so>} {<fastlex.so>})
            (C {<rm>} {<-r>} {<-f>} {<--verbose>} {<'_devbuild/py-ext'>})
          ]
        )
    )
    (command.ShFunction
      name: minimal
      body: 
        (BraceGroup
          children: [
            (C {<mkdir>} {<-p>} {<'_devbuild/gen'>})
            (C {<touch>} {<'_devbuild/__init__.py'>} {<'_devbuild/gen/__init__.py'>})
            (C {<gen-help>})
            (C {<gen-types-asdl>})
            (C {<gen-osh-asdl>})
            (C {<gen-runtime-asdl>})
            (C {<pylibc>})
          ]
        )
    )
    (command.ShFunction
      name: all
      body: (BraceGroup children:[(C {<minimal>}) (C {<'build/codegen.sh'>}) (C {<fastlex>})])
    )
    (C {(DQ ($ Id.VSub_At '$@'))})
  ]
)