(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:MY_OCAML_BUILD spids:[8]) op: Equal rhs: {(DQ ('-o myocamlbuild'))} spids: [8] ) ] spids: [8] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$REASON_BUILD_DIR'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:REASON_BUILD_DIR spids:[30]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(ocamlfind)} {(query)} {(reason)})] ) left_token: <Left_CommandSub '$('> spids: [31 37] ) } spids: [30] ) ] spids: [30] ) ] spids: [16777215 27] ) ] spids: [16777215 39] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$REASON_BUILD_DIR'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ("Couldn't find Reason"))}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 55] ) ] spids: [16777215 69] ) (C {(eval)} {(Lit_VarLike 'REASON_BUILD_DIR=') ($ VSub_DollarName '$REASON_BUILD_DIR')}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobEqual left: { (DQ (word_part.BracedVarSub token: <VSub_At '@'> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithUnary op_id: Node_UnaryMinus child: (arith_expr.ArithWord w:{(Lit_Digits 2)}) ) ) spids: [86 92] ) ) } right: {(DQ (${ VSub_Name MY_OCAML_BUILD))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:UNIXIDX spids:[133]) op: Equal rhs: {(-1)} spids: [133] ) ] spids: [133] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[137]) op: Equal rhs: {(1)} spids: [137] ) ] spids: [137] ) (command.ForEach iter_name: var iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_DollarName '$var')} right: {(DQ (unix.cmxa))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_ne left: {($ VSub_DollarName '$UNIXIDX')} right: {(-1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(set)} {(--)} { (DQ (word_part.BracedVarSub token: <VSub_At '@'> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Lit_Digits 1)}) length: (arith_expr.ArithBinary op_id: Arith_Minus left: (arith_expr.ArithVarRef token: <Lit_ArithVarLike i> ) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) spids: [208 216] ) ) } { (DQ (word_part.BracedVarSub token: <VSub_At '@'> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithVarRef token: <Lit_ArithVarLike i> ) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) spids: [220 227] ) ) } ) ] spids: [16777215 200] ) ] spids: [16777215 231] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:UNIXIDX spids:[234]) op: Equal rhs: {($ VSub_DollarName '$i')} spids: [234] ) ] spids: [234] ) ] spids: [16777215 171] ) ] spids: [16777215 238] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[241]) op: Equal rhs: {($ VSub_DollarName '$i') (Lit_Other '+') (1)} spids: [241] ) ] spids: [241] ) ] spids: [152 247] ) spids: [146 16777215] ) (C {(set)} {(--)} { (DQ (word_part.BracedVarSub token: <VSub_At '@'> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Lit_Digits 1)}) length: (arith_expr.ArithBinary op_id: Arith_Minus left: (arith_expr.ArithWord w:{($ VSub_Pound '$#')}) right: (arith_expr.ArithWord w:{(Lit_Digits 3)}) ) ) spids: [259 267] ) ) } {(DQ ($ VSub_DollarName '$REASON_BUILD_DIR') (/reasonbuild.cmx))} { (DQ (word_part.BracedVarSub token: <VSub_At '@'> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithUnary op_id: Node_UnaryMinus child: (arith_expr.ArithWord w:{(Lit_Digits 3)}) ) ) spids: [276 282] ) ) } ) ] spids: [16777215 106] ) ] spids: [16777215 285] ) ] )