(command.CommandList children: [ (command.CommandList children: [ (command.Sentence child: (C {<.>} { (DQ (braced_var_sub token: <Id.VSub_Name srcdir> suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{<.>}) ) <'/tests/init.sh'> ) } ) terminator: <Id.Op_Semi _> ) (C {<path_prepend_>} {<'./src'>}) ] ) (C {<print_ver_>} {<ln>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:t) op: assign_op.Equal rhs: {<tln-symlink>} spids: [65] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:d) op: assign_op.Equal rhs: {<tln-subdir>} spids: [68] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ld) op: assign_op.Equal rhs: {<tln-symlink-to-subdir>} spids: [71] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:f) op: assign_op.Equal rhs: {<tln-file>} spids: [74] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<touch>} {($ Id.VSub_DollarName '$f')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<rm>} {<-f>} {($ Id.VSub_DollarName '$t')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<ln>} {<-s>} {($ Id.VSub_DollarName '$f')} {($ Id.VSub_DollarName '$t')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [112] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$t')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [123] ) ] ) ] ) (C {<rm>} {($ Id.VSub_DollarName '$t')} {($ Id.VSub_DollarName '$f')}) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<touch>} {($ Id.VSub_DollarName '$f')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<mkdir>} {($ Id.VSub_DollarName '$d')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<ln>} {<-s>} {<'../'> ($ Id.VSub_DollarName '$f')} {($ Id.VSub_DollarName '$d') <'/'> ($ Id.VSub_DollarName '$t')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [175] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$d') <'/'> ($ Id.VSub_DollarName '$t')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [188] ) ] ) ] ) (C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d')} {($ Id.VSub_DollarName '$f')}) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<touch>} {($ Id.VSub_DollarName '$f')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<mkdir>} {($ Id.VSub_DollarName '$d')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<ln>} {<-s>} {<'../'> ($ Id.VSub_DollarName '$f')} {($ Id.VSub_DollarName '$d')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [240] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$d') <'/'> ($ Id.VSub_DollarName '$f')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [253] ) ] ) ] ) (C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d')} {($ Id.VSub_DollarName '$f')}) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<touch>} {($ Id.VSub_DollarName '$f')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {($ Id.VSub_DollarName '$d')} {($ Id.VSub_DollarName '$d') <'/'> ($ Id.VSub_DollarName '$f')} ) (C {<framework_failure_>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<ln>} {($ Id.VSub_DollarName '$f')} {($ Id.VSub_DollarName '$d') <'/'>}] redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [311] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<ln>} {<-s>} {($ Id.VSub_DollarName '$f')} {($ Id.VSub_DollarName '$d') <'/'>}] redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [329] ) ] ) ] ) (C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d')} {($ Id.VSub_DollarName '$f')}) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<touch>} {($ Id.VSub_DollarName '$t')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<ln>} {<-s>} {($ Id.VSub_DollarName '$t')} {($ Id.VSub_DollarName '$t')}] redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [372] ) ] ) ] ) (C {<rm>} {($ Id.VSub_DollarName '$t')}) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<touch>} {($ Id.VSub_DollarName '$t')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<ln>} {<-sf>} {($ Id.VSub_DollarName '$t')} {($ Id.VSub_DollarName '$t')}] redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [405] ) ] ) ] ) (C {<rm>} {($ Id.VSub_DollarName '$t')}) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<mkdir>} {($ Id.VSub_DollarName '$d')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<touch>} {($ Id.VSub_DollarName '$d') <'/'> ($ Id.VSub_DollarName '$f')}) (C {<framework_failure_>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<ln>} {<-s>} {($ Id.VSub_DollarName '$d') <'/'> ($ Id.VSub_DollarName '$f')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [454] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$f')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [465] ) ] ) ] ) (C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d')} {($ Id.VSub_DollarName '$f')}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d')} {($ Id.VSub_DollarName '$f')} {($ Id.VSub_DollarName '$ld')} ) (C {<framework_failure_>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<touch>} {($ Id.VSub_DollarName '$f')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<mkdir>} {($ Id.VSub_DollarName '$d')}) (C {<framework_failure_>})] ) (C {<ln>} {<-s>} {($ Id.VSub_DollarName '$d')} {($ Id.VSub_DollarName '$ld')}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<ln>} {<-s>} {<'../'> ($ Id.VSub_DollarName '$f')} {($ Id.VSub_DollarName '$ld')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [529] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$d') <'/'> ($ Id.VSub_DollarName '$f')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [542] ) ] ) ] ) (C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d')} {($ Id.VSub_DollarName '$f')} {($ Id.VSub_DollarName '$ld')} ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d')} {($ Id.VSub_DollarName '$f')} {($ Id.VSub_DollarName '$ld')} ) (C {<framework_failure_>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<touch>} {($ Id.VSub_DollarName '$f')}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<mkdir>} {($ Id.VSub_DollarName '$d')}) (C {<framework_failure_>})] ) (C {<ln>} {<-s>} {($ Id.VSub_DollarName '$d')} {($ Id.VSub_DollarName '$ld')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:af) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>})) <'/'> ($ Id.VSub_DollarName '$f') } spids: [600] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<ln>} {<--no-dereference>} {<-fs>} {(DQ ($ Id.VSub_DollarName '$af'))} {($ Id.VSub_DollarName '$ld')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [621] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$ld')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [632] ) ] ) ] ) (C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$d')} {($ Id.VSub_DollarName '$f')} {($ Id.VSub_DollarName '$ld')} ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<touch>} {<a>} {<b>}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<ln>} {<b>} {<b> <Id.Lit_TildeLike '~'>}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<ln>} {<-f>} {<--b> <Id.Lit_Equals '='> <simple>} {<a>} {<b>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [687] ) ] ) ] ) (command.ForEach iter_name: cmd iter_words: [{<ln>} {<cp>} {<mv>} {<ginstall>}] do_arg_iter: F body: (command.DoGroup children: [ (C {<rm>} {<-rf>} {<a>} {<x>} {<a.orig>}) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<touch>} {<a>} {<x>}) (C {<framework_failure_>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {($ Id.VSub_DollarName '$cmd')} {<--backup> <Id.Lit_Equals '='> <simple>} {<--suffix> <Id.Lit_Equals '='> <.orig>} {<x>} {<a>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [757] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {<a.orig>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {<1>} spids: [769] ) ] ) ] ) ] ) ) (command.Simple words: [{<ln>} {<foo>} {(SQ )}] redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (C {<Exit>} {($ Id.VSub_DollarName '$fail')}) ] )