(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (FuncDef
      name: ubuntu-deps
      body: 
        (BraceGroup
          children: [
            (C {(sudo)} {(apt-get)} {(install)} {(python-dev)} {(gawk)} {(KW_Time time)} {(libreadline-dev)})
            (C {(test/spec.sh)} {(install-shells)})
          ]
          spids: [55]
        )
      spids: [51 54]
    )
    (FuncDef
      name: gen-help
      body: (BraceGroup children:[(C {(build/doc.sh)} {(osh-quick-ref)})] spids:[104])
      spids: [100 103]
    )
    (FuncDef
      name: gen-types-asdl
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out spids:[123])
                  op: Equal
                  rhs: {(_devbuild/gen/types_asdl.py)}
                  spids: [123]
                )
              ]
              spids: [121]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:import spids:[129])
                  op: Equal
                  rhs: {(SQ <'from osh.meta import TYPES_TYPE_LOOKUP as TYPE_LOOKUP'>)}
                  spids: [129]
                )
              ]
              spids: [127]
            )
            (SimpleCommand
              words: [{(asdl/gen_python.py)} {(osh/types.asdl)} {(DQ ($ VSub_Name '$import'))}]
              redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Name '$out')})]
              more_env: [(env_pair name:PYTHONPATH val:{(.)} spids:[135])]
            )
            (C {(echo)} {(DQ ('Wrote ') ($ VSub_Name '$out'))})
          ]
          spids: [118]
        )
      spids: [114 117]
    )
    (FuncDef
      name: gen-osh-asdl
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out spids:[170])
                  op: Equal
                  rhs: {(_devbuild/gen/osh_asdl.py)}
                  spids: [170]
                )
              ]
              spids: [168]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:import spids:[176])
                  op: Equal
                  rhs: {(SQ <'from osh.meta import OSH_TYPE_LOOKUP as TYPE_LOOKUP'>)}
                  spids: [176]
                )
              ]
              spids: [174]
            )
            (SimpleCommand
              words: [{(asdl/gen_python.py)} {(osh/osh.asdl)} {(DQ ($ VSub_Name '$import'))}]
              redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Name '$out')})]
              more_env: [(env_pair name:PYTHONPATH val:{(.)} spids:[182])]
            )
            (C {(echo)} {(DQ ('Wrote ') ($ VSub_Name '$out'))})
          ]
          spids: [165]
        )
      spids: [161 164]
    )
    (FuncDef
      name: gen-runtime-asdl
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out spids:[217])
                  op: Equal
                  rhs: {(_devbuild/gen/runtime_asdl.py)}
                  spids: [217]
                )
              ]
              spids: [215]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:import spids:[223])
                  op: Equal
                  rhs: {(SQ <'from osh.meta import RUNTIME_TYPE_LOOKUP as TYPE_LOOKUP'>)}
                  spids: [223]
                )
              ]
              spids: [221]
            )
            (SimpleCommand
              words: [{(asdl/gen_python.py)} {(core/runtime.asdl)} {(DQ ($ VSub_Name '$import'))}]
              redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Name '$out')})]
              more_env: [(env_pair name:PYTHONPATH val:{(.)} spids:[229])]
            )
            (C {(echo)} {(DQ ('Wrote ') ($ VSub_Name '$out'))})
          ]
          spids: [212]
        )
      spids: [208 211]
    )
    (FuncDef
      name: py-ext
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name spids:[283])
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [283]
                )
              ]
              spids: [281]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:setup_script spids:[289])
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [289]
                )
              ]
              spids: [287]
            )
            (C {(mkdir)} {(-p)} {(_devbuild/py-ext)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:arch spids:[303])
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(uname)} {(-m)})])
                        left_token: <Left_CommandSub '$('>
                        spids: [304 308]
                      )
                    }
                  spids: [303]
                )
              ]
              spids: [301]
            )
            (C {($ VSub_Name '$setup_script')} {(build)} {(--build-lib)} 
              {(_devbuild/py-ext/) ($ VSub_Name '$arch')}
            )
            (C {(shopt)} {(-s)} {(failglob)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:so spids:[331])
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(echo)} 
                                {(_devbuild/py-ext/) ($ VSub_Name '$arch') (/) ($ VSub_Name '$name') 
                                  (.so)
                                }
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [332 340]
                      )
                    }
                  spids: [331]
                )
              ]
              spids: [329]
            )
            (C {(ln)} {(-s)} {(-f)} {(-v)} {($ VSub_Name '$so')} {($ VSub_Name '$name') (.so)})
            (C {(file)} {($ VSub_Name '$name') (.so)})
          ]
          spids: [278]
        )
      spids: [274 277]
    )
    (FuncDef
      name: pylibc
      body: 
        (BraceGroup
          children: [
            (C {(py-ext)} {(libc)} {(build/setup.py)})
            (SimpleCommand
              words: [{(native/libc_test.py)}]
              more_env: [(env_pair name:PYTHONPATH val:{(.)} spids:[380])]
            )
          ]
          spids: [370]
        )
      spids: [366 369]
    )
    (FuncDef
      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)})
            (SimpleCommand
              words: [{(native/fastlex_test.py)}]
              more_env: [(env_pair name:PYTHONPATH val:{(.)} spids:[420])]
            )
          ]
          spids: [392]
        )
      spids: [388 391]
    )
    (FuncDef
      name: clean
      body: 
        (BraceGroup
          children: [
            (C {(rm)} {(-f)} {(--verbose)} {(libc.so)} {(fastlex.so)})
            (C {(rm)} {(-r)} {(-f)} {(--verbose)} {(_devbuild/py-ext)})
          ]
          spids: [432]
        )
      spids: [428 431]
    )
    (FuncDef
      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)})
          ]
          spids: [466]
        )
      spids: [462 465]
    )
    (FuncDef
      name: all
      body: 
        (BraceGroup
          children: [(C {(minimal)}) (C {(build/codegen.sh)}) (C {(fastlex)})]
          spids: [512]
        )
      spids: [508 511]
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)