(command.CommandList children: [ (C {<set>} {<-o>} {<nounset>}) (C {<set>} {<-o>} {<pipefail>}) (C {<set>} {<-o>} {<errexit>}) (C {<source>} {<'build/common.sh'>}) (command.ShFunction name: write-release-date body: (BraceGroup children: [ (C {<mkdir>} {<-p>} {<_build>}) (command.Simple words: [{<date>} {<--utc>} {<--rfc-3339>} {<seconds>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'_build/release-date.txt'>} ) ] do_fork: T ) ] ) ) (command.ShFunction name: main-name body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'python_main='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<hello>}) ) } ) (C {<local>} {<Id.Lit_VarLike 'ovm_bundle_prefix='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<hello.ovm>}) ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 136 stdin_parts: [ <'char* MAIN_NAME = '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$python_main') <Id.Right_DoubleQuote '"'> <';\n'> <'#if OVM_DEBUG\n'> <' char* OVM_BUNDLE_FILENAME = '> <Id.Right_DoubleQuote '"'> (${ Id.VSub_Name ovm_bundle_prefix) <-dbg> <Id.Right_DoubleQuote '"'> <';\n'> <'#else\n'> <' char* OVM_BUNDLE_FILENAME = '> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$ovm_bundle_prefix') <Id.Right_DoubleQuote '"'> <';\n'> <'#endif\n'> ] ) ) ] do_fork: T ) ] ) ) (command.ShFunction name: c-module-toc body: (BraceGroup children: [(C {<cd>} {($ Id.VSub_DollarName '$PY27')}) (C {<'../build/c_module_toc.py'>})] ) ) (command.ShFunction name: runpy-deps body: (BraceGroup children: [ (C {($ Id.VSub_DollarName '$PREPARE_DIR') <'/python'>} {<-S>} {<'build/runpy_deps.py'>} {<both>} {(DQ ($ Id.VSub_At '$@'))} ) ] ) ) (command.ShFunction name: runpy-py-to-compile body: (BraceGroup children: [ (C {($ Id.VSub_DollarName '$PREPARE_DIR') <'/python'>} {<-S>} {<'build/runpy_deps.py'>} {<py>} ) ] ) ) (command.ShFunction name: app-deps body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'app_name='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<hello>}) ) } ) (C {<local>} {<Id.Lit_VarLike 'pythonpath='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<build> <Id.Lit_Slash '/'> <testdata>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'main_module='> (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<hello>}) ) } ) (C {<local>} {<Id.Lit_VarLike 'prefix='> <'_build/'> ($ Id.VSub_DollarName '$app_name') <'/app-deps'>} ) (C {<ln>} {<-s>} {<-f>} {($ Id.VSub_DollarName '$PWD') <'/build/app_deps.py'>} {<_tmp>}) (command.Simple words: [ {($ Id.VSub_DollarName '$PREPARE_DIR') <'/python'>} {<-S>} {<'_tmp/app_deps.py'>} {<both>} {($ Id.VSub_DollarName '$main_module')} {($ Id.VSub_DollarName '$prefix')} ] more_env: [ (env_pair name: PYTHONPATH val: {($ Id.VSub_DollarName '$pythonpath')} spids: [302] ) ] do_fork: T ) ] ) ) (command.ShFunction name: py-to-compile body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'pythonpath='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<build> <Id.Lit_Slash '/'> <testdata>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'main_module='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<hello>}) ) } ) (command.Simple words: [ {($ Id.VSub_DollarName '$PREPARE_DIR') <'/python'>} {<-S>} {<'build/app_deps.py'>} {<py>} {($ Id.VSub_DollarName '$main_module')} ] more_env: [ (env_pair name: PYTHONPATH val: {($ Id.VSub_DollarName '$pythonpath')} spids: [356] ) ] do_fork: T ) ] ) ) (command.ShFunction name: quick-ref-manifest body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'dir='> ($ Id.VSub_Number '$1')}) (command.ForEach iter_name: path iter_words: [{($ Id.VSub_DollarName '$dir') <'/'> <Id.Lit_Star '*'>}] do_arg_iter: F body: (command.DoGroup children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$path') <' '> ($ Id.VSub_DollarName '$path'))} ) ] ) ) ] ) ) (command.ShFunction name: pyc-version-manifest body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'manifest_path='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<_build> <Id.Lit_Slash '/'> <oil> <Id.Lit_Slash '/'> <bytecode-opy-manifest.txt> } ) ) } ) (C {<local>} {<Id.Lit_VarLike 'filename='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {($ Id.VSub_DollarName '$manifest_path')}) ) } ) (C {<local>} {<Id.Lit_VarLike 'user_str='> (braced_var_sub token: <Id.VSub_Name filename> suffix_op: (suffix_op.Unary tok:<Id.VOp1_Percent '%'> arg_word:{<-manifest.txt>}) ) <.zip> } ) (C {<local>} {<Id.Lit_VarLike 'dir='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {($ Id.VSub_DollarName '$manifest_path')}) ) } ) (command.Simple words: [{<echo>} {($ Id.VSub_DollarName '$user_str')}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$dir') <'/pyc-version.txt'>} ) ] do_fork: T ) (C {<echo>} {($ Id.VSub_DollarName '$dir') <'/pyc-version.txt'>} {<pyc-version.txt>}) ] ) ) (command.ShFunction name: make-dotd body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'app_name='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<hello>}) ) } ) (C {<local>} {<Id.Lit_VarLike 'app_deps_to_compile='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<_tmp> <Id.Lit_Slash '/'> <hello> <Id.Lit_Slash '/'> <app-deps-to-compile.txt>} ) ) } ) (C {<echo>} {(DQ <'# TODO '> ($ Id.VSub_DollarName '$app_deps_to_compile'))}) (C {<echo>} {(DQ <'X_build/'> ($ Id.VSub_DollarName '$app_name') <'/ovm:'>)}) (C {<echo>} {(DQ <'X_build/'> ($ Id.VSub_DollarName '$app_name') <'/ovm-dbg:'>)}) (C {<echo>} {(DQ <'X_build/'> ($ Id.VSub_DollarName '$app_name') <'/ovm-cov:'>)}) ] ) ) (command.ShFunction name: extdecls body: (BraceGroup children: [ (command.ForEach iter_name: mod iter_words: [{(DQ ($ Id.VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$mod'))} {<Id.Lit_Equals '='>} {<readline>} ) (C {<echo>} {(DQ <'#ifdef HAVE_READLINE'>)}) ] ) (C {<echo>} {(DQ <'extern void init'> ($ Id.VSub_DollarName '$mod') <'(void);'>)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$mod'))} {<Id.Lit_Equals '='>} {<readline>} ) (C {<echo>} {(DQ <'#endif'>)}) ] ) ] ) ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: initbits body: (BraceGroup children: [ (command.ForEach iter_name: mod iter_words: [{(DQ ($ Id.VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$mod'))} {<Id.Lit_Equals '='>} {<readline>} ) (C {<echo>} {(DQ <'#ifdef HAVE_READLINE'>)}) ] ) (C {<echo>} { (DQ <' {'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$mod') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <', init'> ($ Id.VSub_DollarName '$mod') <'},'> ) } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$mod'))} {<Id.Lit_Equals '='>} {<readline>} ) (C {<echo>} {(DQ <'#endif'>)}) ] ) ] ) ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: gen-module-init body: (BraceGroup children: [ (C {<local>} {<extdecls>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:extdecls) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<extdecls>} {(DQ ($ Id.VSub_At '$@'))}) ) } spids: [797] ) ] ) (C {<local>} {<initbits>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:initbits) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<initbits>} {(DQ ($ Id.VSub_At '$@'))}) ) } spids: [812] ) ] ) (C {<local>} {<Id.Lit_VarLike 'template='> ($ Id.VSub_DollarName '$PY27') <'/Modules/config.c.in'>} ) (C {<awk>} {<-v>} {<Id.Lit_VarLike 'template='> ($ Id.VSub_DollarName '$template')} {<-v>} {<Id.Lit_VarLike 'extdecls='> (DQ ($ Id.VSub_DollarName '$extdecls'))} {<-v>} {<Id.Lit_VarLike 'initbits='> (DQ ($ Id.VSub_DollarName '$initbits'))} { (SQ <'\n'> <' BEGIN {\n'> <' print "/* Generated automatically from " template " */"\n'> <' }\n'> <' /MARKER 1/ {\n'> <' print extdecls\n'> <' next\n'> <' }\n'> <' /MARKER 2/ {\n'> <' print initbits\n'> <' next\n'> <' }\n'> <' {\n'> <' print $0\n'> <' }\n'> <' '> ) } {($ Id.VSub_DollarName '$template')} ) ] ) ) (command.ShFunction name: join-modules body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'static='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<static-c-modules.txt>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'discovered='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<_build> <Id.Lit_Slash '/'> <oil> <Id.Lit_Slash '/'> <all-deps-c.txt>} ) ) } ) (command.Pipeline children: [ (C {<egrep>} {<--no-filename>} {<--only-matching>} {(SQ <'^[a-zA-Z0-9_\\.]+'>)} {($ Id.VSub_DollarName '$static')} {($ Id.VSub_DollarName '$discovered')} ) (C {<sort>}) (C {<uniq>}) ] negated: F ) ] ) ) (command.ShFunction name: clean-pyc body: (BraceGroup children: [ (command.Pipeline children: [ (C {<find>} {<.>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('>)} {<-type>} {<d>} {<-a>} {<-name>} {(SQ <'_*'>)} {<-a>} {<-prune>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>)} {<-o>} {<-name>} {(SQ <'*.pyc'>)} {<-a>} {<-print>} ) (C {<xargs>} {<--no-run-if-empty>} {<-->} {<rm>} {<--verbose>}) ] negated: F ) ] ) ) (command.ShFunction name: clean-repo body: (BraceGroup children: [ (C {<clean-source-tarball-build>}) (C {<rm>} {<-r>} {<-f>} {<-v>} {<_build>} {<_release>}) (C {<rm>} {<-f>} {<-v>} {<'_bin/hello.'> <Id.Lit_Star '*'>} {<'_bin/opy.'> <Id.Lit_Star '*'>}) (C {<clean-pyc>}) ] ) ) (command.ShFunction name: clean-source-tarball-build body: (BraceGroup children: [ (C {<rm>} {<-f>} {<-v>} {<'_bin/oil.'> <Id.Lit_Star '*'>}) (C {<rm>} {<-f>} {<-v>} {<'_build/oil/ovm'>} {<'_build/oil/ovm-dbg'>}) ] ) ) (C {(DQ ($ Id.VSub_At '$@'))}) ] )