(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'>}) (C {<readonly>} {<Id.Lit_VarLike 'OVM_PYTHON_OBJS='> (SQ <'\n'> <'Python/_warnings.c\n'> <'Python/bltinmodule.c\n'> <'Python/ceval.c\n'> <'Python/codecs.c\n'> <'Python/errors.c\n'> <'Python/frozen.c\n'> <'Python/frozenmain.c\n'> <'Python/future.c\n'> <'Python/getargs.c\n'> <'Python/getcompiler.c\n'> <'Python/getcopyright.c\n'> <'Python/getplatform.c\n'> <'Python/getversion.c\n'> <'Python/import.c\n'> <'Python/marshal.c\n'> <'Python/modsupport.c\n'> <'Python/mystrtoul.c\n'> <'Python/mysnprintf.c\n'> <'Python/pyarena.c\n'> <'Python/pyctype.c\n'> <'Python/pyfpe.c\n'> <'Python/pymath.c\n'> <'Python/pystate.c\n'> <'Python/pythonrun.c\n'> <'Python/random.c\n'> <'Python/structmember.c\n'> <'Python/sysmodule.c\n'> <'Python/traceback.c\n'> <'Python/getopt.c\n'> <'Python/pystrcmp.c\n'> <'Python/pystrtod.c\n'> <'Python/dtoa.c\n'> <'Python/formatter_unicode.c\n'> <'Python/formatter_string.c\n'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OBJECT_OBJS) op: assign_op.Equal rhs: { (SQ <'\n'> <'Objects/abstract.c\n'> <'Objects/boolobject.c\n'> <'Objects/bufferobject.c\n'> <'Objects/bytes_methods.c\n'> <'Objects/bytearrayobject.c\n'> <'Objects/capsule.c\n'> <'Objects/cellobject.c\n'> <'Objects/classobject.c\n'> <'Objects/cobject.c\n'> <'Objects/codeobject.c\n'> <'Objects/complexobject.c\n'> <'Objects/descrobject.c\n'> <'Objects/enumobject.c\n'> <'Objects/exceptions.c\n'> <'Objects/genobject.c\n'> <'Objects/fileobject.c\n'> <'Objects/floatobject.c\n'> <'Objects/frameobject.c\n'> <'Objects/funcobject.c\n'> <'Objects/intobject.c\n'> <'Objects/iterobject.c\n'> <'Objects/listobject.c\n'> <'Objects/longobject.c\n'> <'Objects/dictobject.c\n'> <'Objects/memoryobject.c\n'> <'Objects/methodobject.c\n'> <'Objects/moduleobject.c\n'> <'Objects/object.c\n'> <'Objects/obmalloc.c\n'> <'Objects/rangeobject.c\n'> <'Objects/setobject.c\n'> <'Objects/sliceobject.c\n'> <'Objects/stringobject.c\n'> <'Objects/structseq.c\n'> <'Objects/tupleobject.c\n'> <'Objects/typeobject.c\n'> <'Objects/weakrefobject.c\n'> <'Objects/unicodeobject.c\n'> <'Objects/unicodectype.c\n'> ) } spids: [98] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MODULE_OBJS) op: assign_op.Equal rhs: {(SQ <'\n'> <'Modules/getpath.c\n'> <'Modules/main.c\n'> <'Modules/gcmodule.c\n'>)} spids: [146] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MODOBJS) op: assign_op.Equal rhs: { (SQ <'\n'> <'Modules/posixmodule.c\n'> <'Modules/errnomodule.c \n'> <'Modules/pwdmodule.c\n'> <'Modules/_sre.c \n'> <'Modules/_codecsmodule.c \n'> <'Modules/_weakref.c\n'> <'Modules/zipimport.c \n'> <'Modules/signalmodule.c\n'> ) } spids: [164] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OVM_LIBRARY_OBJS) op: assign_op.Equal rhs: { (DQ <'\n'> <'Modules/getbuildinfo.c\n'> <'Parser/myreadline.c\n'> ($ Id.VSub_DollarName '$OBJECT_OBJS') <'\n'> ($ Id.VSub_DollarName '$OVM_PYTHON_OBJS') <' \n'> ($ Id.VSub_DollarName '$MODULE_OBJS') <'\n'> ($ Id.VSub_DollarName '$MODOBJS') <'\n'> ) } spids: [184] ) ] ) (C {<readonly>} {<Id.Lit_VarLike 'EMPTY_STR='> (SQ <'""'>)}) (C {<readonly>} {<Id.Lit_VarLike 'PREPROC_FLAGS='> (sh_array_literal left: <Id.Op_LParen _> words: [ {<-D>} {<OVM_MAIN>} {<-D>} {<Id.Lit_VarLike 'PYTHONPATH='> (DQ ($ Id.VSub_DollarName '$EMPTY_STR'))} {<-D>} {<Id.Lit_VarLike 'VERSION='> (DQ ($ Id.VSub_DollarName '$EMPTY_STR'))} {<-D>} {<Id.Lit_VarLike 'VPATH='> (DQ ($ Id.VSub_DollarName '$EMPTY_STR'))} {<-D>} {<Py_BUILD_CORE>} ] ) } ) (C {<readonly>} {<Id.Lit_VarLike 'INCLUDE_PATHS='> (sh_array_literal left: <Id.Op_LParen _> words: [{<-I>} {<.>} {<-I>} {<Include>} {<-I>} {<'../_devbuild/gen'>}] ) } ) (C {<readonly>} {<Id.Lit_VarLike 'CC='> (braced_var_sub token: <Id.VSub_Name CC> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{<cc>}) ) } ) (C {<readonly>} {<Id.Lit_VarLike 'BASE_CFLAGS='> (SQ <'-fno-strict-aliasing -fwrapv -Wall -Wstrict-prototypes'>)} ) (C {<readonly>} {<Id.Lit_VarLike 'CFLAGS='> (braced_var_sub token: <Id.VSub_Name CFLAGS> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) (command.ShFunction name: build body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'out='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$PY27') <Id.Lit_Slash '/'> <ovm2>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'module_init='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$PY27') <Id.Lit_Slash '/'> <Modules> <Id.Lit_Slash '/'> <config.c> } ) ) } ) (C {<local>} {<Id.Lit_VarLike 'main_name='> (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<_tmp> <Id.Lit_Slash '/'> <hello> <Id.Lit_Slash '/'> <main_name.c>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'c_module_srcs='> (braced_var_sub token: <Id.VSub_Number 4> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<_tmp> <Id.Lit_Slash '/'> <hello> <Id.Lit_Slash '/'> <c-module-srcs.txt>} ) ) } ) (C {<shift>} {<4>}) (C {<local>} {<Id.Lit_VarLike 'abs_out='> ($ Id.VSub_DollarName '$PWD') <'/'> ($ Id.VSub_DollarName '$out') } ) (C {<local>} {<Id.Lit_VarLike 'abs_module_init='> ($ Id.VSub_DollarName '$PWD') <'/'> ($ Id.VSub_DollarName '$module_init') } ) (C {<local>} {<Id.Lit_VarLike 'abs_main_name='> ($ Id.VSub_DollarName '$PWD') <'/'> ($ Id.VSub_DollarName '$main_name') } ) (C {<local>} {<Id.Lit_VarLike 'abs_c_module_srcs='> ($ Id.VSub_DollarName '$PWD') <'/'> ($ Id.VSub_DollarName '$c_module_srcs') } ) (C {<source-detected-config-or-die>}) (C {<pushd>} {($ Id.VSub_DollarName '$PY27')}) (C {<local>} {<compile_readline>}) (C {<local>} {<link_readline>}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {(DQ ($ Id.VSub_DollarName '$HAVE_READLINE'))} {<Id.Lit_Equals '='>} {<1>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:c_module_src_list) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {($ Id.VSub_DollarName '$abs_c_module_srcs')}) ) } spids: [504] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:compile_readline) op: assign_op.Equal rhs: {(SQ <'-D HAVE_READLINE'>)} spids: [516] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:link_readline) op: assign_op.Equal rhs: {(SQ <'-l readline'>)} spids: [522] ) ] ) ] spids: [475 488] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:c_module_src_list) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<grep>} {<-v>} {(SQ <'/readline.c'>)} {($ Id.VSub_DollarName '$abs_c_module_srcs')} ) (C {<true>}) ] ) ) } spids: [535] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:compile_readline) op: assign_op.Equal rhs: {(SQ )} spids: [553] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:link_readline) op: assign_op.Equal rhs: {(SQ )} spids: [558] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.TimeBlock pipeline: (C {($ Id.VSub_DollarName '$CC')} {(${ Id.VSub_Name BASE_CFLAGS)} {(${ Id.VSub_Name CFLAGS)} { (DQ (braced_var_sub token: <Id.VSub_Name INCLUDE_PATHS> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } { (DQ (braced_var_sub token: <Id.VSub_Name PREPROC_FLAGS> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {<-D>} {<Id.Lit_VarLike 'PREFIX='> (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$PREFIX') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } {<-D>} {<Id.Lit_VarLike 'EXEC_PREFIX='> (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$PREFIX') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } {<-o>} {($ Id.VSub_DollarName '$abs_out')} {($ Id.VSub_DollarName '$OVM_LIBRARY_OBJS')} {($ Id.VSub_DollarName '$abs_module_init')} {($ Id.VSub_DollarName '$abs_main_name')} {($ Id.VSub_DollarName '$c_module_src_list')} {<'Modules/ovm.c'>} {($ Id.VSub_DollarName '$compile_readline')} {<-l>} {<m>} {($ Id.VSub_DollarName '$link_readline')} {(DQ ($ Id.VSub_At '$@'))} ) ) (C {<true>}) ] ) (C {<popd>}) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: build-dbg body: (BraceGroup children: [(C {<build>} {(DQ ($ Id.VSub_At '$@'))} {<-O0>} {<-g>} {<-D>} {<OVM_DEBUG>})] ) ) (command.ShFunction name: build-opt body: (BraceGroup children: [(C {<build>} {(DQ ($ Id.VSub_At '$@'))} {<-O3>} {<-fno-omit-frame-pointer>})] ) ) (command.ShFunction name: add-py27 body: (BraceGroup children: [ (C {<xargs>} {<-I>} {<Id.Lit_LBrace '{'> <Id.Lit_RBrace '}'>} {<-->} {<echo>} {($ Id.VSub_DollarName '$PY27') <'/'> <Id.Lit_LBrace '{'> <Id.Lit_RBrace '}'>} ) ] ) ) (command.ShFunction name: python-sources body: (BraceGroup children: [ (command.Pipeline children: [(C {<echo>} {(DQ ($ Id.VSub_DollarName '$OVM_LIBRARY_OBJS'))}) (C {<add-py27>})] negated: F ) ] ) ) (command.ShFunction name: _headers body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'c_module_srcs='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<_tmp> <Id.Lit_Slash '/'> <hello> <Id.Lit_Slash '/'> <c-module-srcs.txt>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'abs_c_module_srcs='> ($ Id.VSub_DollarName '$PWD') <'/'> ($ Id.VSub_DollarName '$c_module_srcs') } ) (C {<cd>} {($ Id.VSub_DollarName '$PY27')}) (C {<gcc>} { (DQ (braced_var_sub token: <Id.VSub_Name INCLUDE_PATHS> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } { (DQ (braced_var_sub token: <Id.VSub_Name PREPROC_FLAGS> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } {<-MM>} {($ Id.VSub_DollarName '$OVM_LIBRARY_OBJS')} {<'Modules/ovm.c'>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {($ Id.VSub_DollarName '$abs_c_module_srcs')}) ) } ) ] ) ) (command.ShFunction name: python-headers body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'c_module_srcs='> ($ Id.VSub_Number '$1')}) (command.Pipeline children: [ (C {<_headers>} {($ Id.VSub_DollarName '$c_module_srcs')}) (C {<egrep>} {<--only-matching>} {(SQ <'[^ ]+\\.h'>)}) (C {<grep>} {<-v>} {(SQ <'_build/detected-config.h'>)}) (C {<sed>} {(SQ <'s|^Python/../||'>)}) (C {<sort>}) (C {<uniq>}) (C {<add-py27>}) ] negated: F ) ] ) ) (command.ShFunction name: make-tar body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'app_name='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{<hello>}) ) } ) (C {<local>} {<Id.Lit_VarLike 'bytecode_zip='> (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<bytecode-cpython.zip>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'out='> (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<_release> <Id.Lit_Slash '/'> <hello.tar>} ) ) } ) (C {<local>} {<version_file>}) (command.Case to_match: {($ Id.VSub_DollarName '$app_name')} arms: [ (case_arm pat_list: [{<oil>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:version_file) op: assign_op.Equal rhs: {<oil-version.txt>} spids: [1129] ) ] ) ] spids: [1125 1126 1133 -1] ) (case_arm pat_list: [{<hello>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:version_file) op: assign_op.Equal rhs: {<'build/testdata/hello-version.txt'>} spids: [1140] ) ] ) ] spids: [1136 1137 1144 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<die>} {(DQ <'Unknown app '> ($ Id.VSub_DollarName '$app_name'))}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [1147 1148 1164 -1] ) ] ) (C {<local>} {<Id.Lit_VarLike 'version='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<head>} {<-n>} {<1>} {($ Id.VSub_DollarName '$version_file')}) ) } ) (C {<echo>} { (DQ <'Creating '> ($ Id.VSub_DollarName '$app_name') <' version '> ($ Id.VSub_DollarName '$version') ) } ) (C {<local>} {<Id.Lit_VarLike 'c_module_srcs='> <'_build/'> ($ Id.VSub_DollarName '$app_name') <'/c-module-srcs.txt'> } ) (C {<local>} {<Id.Lit_VarLike 'sed_expr='> (DQ <'s,^,'> (${ Id.VSub_Name app_name) <-> (${ Id.VSub_Name version) <'/,'>) } ) (C {<tar>} {<--create>} {<--transform>} {(DQ ($ Id.VSub_DollarName '$sed_expr'))} {<--file>} {($ Id.VSub_DollarName '$out')} {<LICENSE.txt>} {<INSTALL.txt>} {<configure>} {<install>} {<Makefile>} {<'build/compile.sh'>} {<'build/actions.sh'>} {<'build/common.sh'>} {<'build/detect-'> <Id.Lit_Star '*'> <.c>} {<'_build/'> ($ Id.VSub_DollarName '$app_name') <'/'> ($ Id.VSub_DollarName '$bytecode_zip') } {<'_build/'> ($ Id.VSub_DollarName '$app_name') <'/'> <Id.Lit_Star '*'> <.c>} {($ Id.VSub_DollarName '$PY27') <'/LICENSE'>} {($ Id.VSub_DollarName '$PY27') <'/Modules/ovm.c'>} {($ Id.VSub_DollarName '$c_module_srcs')} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [(C {<cat>} {($ Id.VSub_DollarName '$c_module_srcs')}) (C {<add-py27>})] negated: F ) ) } { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<python-headers>} {($ Id.VSub_DollarName '$c_module_srcs')}) ) } {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<python-sources>}))} ) (C {<ls>} {<-l>} {($ Id.VSub_DollarName '$out')}) ] ) ) (command.ShFunction name: count-c-lines body: (BraceGroup children: [ (C {<pushd>} {($ Id.VSub_DollarName '$PY27')}) (command.Pipeline children: [ (C {<wc>} {<-l>} {($ Id.VSub_DollarName '$OVM_LIBRARY_OBJS')}) (C {<sort>} {<-n>}) ] negated: F ) (C {<echo>}) (C {<echo>} {(SQ <'Files:'>)}) (command.Pipeline children: [ (BraceGroup children: [ (command.ForEach iter_name: i iter_words: [{($ Id.VSub_DollarName '$OVM_LIBRARY_OBJS')}] do_arg_iter: F body: (command.DoGroup children:[(C {<echo>} {($ Id.VSub_DollarName '$i')})]) ) ] ) (C {<wc>} {<-l>}) ] negated: F ) (C {<popd>}) ] ) ) (C {(DQ ($ Id.VSub_At '$@'))}) ] )