(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DIR) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (AndOr ops: [Op_DAmp] children: [ (C {(cd)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(dirname)} { (DQ (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 0)}) ) spids: [33 38] ) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [28 41] ) ) } ) (C {(pwd)}) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [23 48] ) ) } spids: [21] ) ] spids: [21] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:REOPT) op:Equal rhs:{(DQ )} spids:[52])] spids: [52] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:REC) op:Equal rhs:{(DQ )} spids:[57])] spids: [57] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_f child:{($ VSub_Name '$DIR') (/reopt.sh)}) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REOPT) op: Equal rhs: {(DQ ($ VSub_Name '$DIR') (/reopt.sh))} spids: [77] ) ] spids: [77] ) ] spids: [16777215 74] ) ] spids: [16777215 83] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_f child:{($ VSub_Name '$DIR') (/reopt)})) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REOPT) op: Equal rhs: {(DQ ($ VSub_Name '$DIR') (/reopt))} spids: [101] ) ] spids: [101] ) ] spids: [16777215 98] ) ] spids: [16777215 107] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$REOPT'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ("Couldn't find reopt"))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 123] ) ] spids: [16777215 137] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_f child:{($ VSub_Name '$DIR') (/rec.sh)}) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REC) op: Equal rhs: {(DQ ($ VSub_Name '$DIR') (/rec.sh))} spids: [155] ) ] spids: [155] ) ] spids: [16777215 152] ) ] spids: [16777215 161] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_f child:{($ VSub_Name '$DIR') (/rec)})) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:REC) op: Equal rhs: {(DQ ($ VSub_Name '$DIR') (/rec))} spids: [179] ) ] spids: [179] ) ] spids: [16777215 176] ) ] spids: [16777215 185] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$REC'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ("Couldn't find rec"))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 201] ) ] spids: [16777215 215] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OCAMLOPTIDX) op:Equal rhs:{(-1)} spids:[225])] spids: [225] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OCAMLCIDX) op:Equal rhs:{(-1)} spids:[228])] spids: [228] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:USEOCAMLFIND) op:Equal rhs:{(-1)} spids:[231])] spids: [231] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(1)} spids:[238])] spids: [238] ) (ForEach iter_name: var iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: F body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: {($ VSub_Name '$var')} right: {(DQ (-ocamlopt))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OCAMLOPTIDX) op: Equal rhs: {($ VSub_Name '$i')} spids: [273] ) ] spids: [273] ) ] spids: [16777215 270] ) ] spids: [16777215 277] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: {($ VSub_Name '$var')} right: {(DQ (-ocamlc))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OCAMLCIDX) op: Equal rhs: {($ VSub_Name '$i')} spids: [300] ) ] spids: [300] ) ] spids: [16777215 297] ) ] spids: [16777215 304] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobEqual left: {($ VSub_Name '$var')} right: {(DQ (-use-ocamlfind))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:USEOCAMLFIND) op: Equal rhs: {(1)} spids: [327] ) ] spids: [327] ) ] spids: [16777215 324] ) ] spids: [16777215 331] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: {($ VSub_Name '$i') (Lit_Other '+') (1)} spids: [334] ) ] spids: [334] ) ] spids: [251 339] ) spids: [246 16777215] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OCAMLOPT) op: Equal rhs: {(DQ (ocamlopt.opt))} spids: [345] ) ] spids: [345] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_ne left: {($ VSub_Name '$OCAMLOPTIDX')} right: {(-1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VALUEIDX) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:OCAMLOPTIDX) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [371 376] ) } spids: [370] ) ] spids: [370] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OCAMLOPT) op: Equal rhs: {(BracedVarSub token:<VSub_Name VALUEIDX> prefix_op:VSub_Bang spids:[380 383])} spids: [379] ) ] spids: [379] ) (C {(set)} {(--)} { (DQ (BracedVarSub token: <VSub_At '@'> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 1)}) length: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:OCAMLOPTIDX) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [395 403] ) ) } { (DQ (BracedVarSub token: <VSub_At '@'> suffix_op: (Slice begin: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:VALUEIDX) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [407 414] ) ) } ) ] spids: [16777215 363] ) ] spids: [16777215 417] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OCAMLC) op:Equal rhs:{(DQ (ocamlc.opt))} spids:[423])] spids: [423] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id:BoolBinary_ne left:{($ VSub_Name '$OCAMLCIDX')} right:{(-1)}) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VALUEIDX) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:OCAMLCIDX) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [449 454] ) } spids: [448] ) ] spids: [448] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OCAMLC) op: Equal rhs: {(BracedVarSub token:<VSub_Name VALUEIDX> prefix_op:VSub_Bang spids:[458 461])} spids: [457] ) ] spids: [457] ) (C {(set)} {(--)} { (DQ (BracedVarSub token: <VSub_At '@'> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 1)}) length: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:OCAMLCIDX) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [473 481] ) ) } { (DQ (BracedVarSub token: <VSub_At '@'> suffix_op: (Slice begin: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:VALUEIDX) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [485 492] ) ) } ) ] spids: [16777215 441] ) ] spids: [16777215 495] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_ne left: {($ VSub_Name '$USEOCAMLFIND')} right: {(-1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(env)} {(Lit_VarLike 'OCAMLFIND_COMMANDS=') (DQ ('ocamlopt=') ($ VSub_Name '$REOPT') (' ocamlc=') ($ VSub_Name '$REC')) } {(reasonbuild)} {(DQ ($ VSub_At '$@'))} ) ] spids: [16777215 511] ) ] else_action: [ (C {(reasonbuild)} {(-ocamlopt)} { (DQ ('env OCAMLOPT=') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$OCAMLOPT') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' ') ($ VSub_Name '$REOPT') ) } {(-ocamlc)} { (DQ ('env OCAMLC=') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$OCAMLC') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' ') ($ VSub_Name '$REC') ) } {(DQ ($ VSub_At '$@'))} ) ] spids: [530 565] ) ] )