(command.CommandList children: [ (C {(echo)} {(DQ ('Testing reactjs @JSX ppx...'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:testPath) op: assign_op.Equal rhs: {(DQ (miscTests/reactjs_jsx_ppx_tests))} spids: [7] ) ] ) (command.ForEach iter_name: i iter_words: [{(1)} {(2)} {(3)} {(4)} {(5)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$testPath') (/test) ($ Id.VSub_DollarName '$i') (.re)) } spids: [32] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:expected) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:43) command_list: (command.CommandList children: [ (C {(cat)} {($ Id.VSub_DollarName '$testPath') (/expected) ($ Id.VSub_DollarName '$i') (.txt) } ) ] ) ) } spids: [42] ) ] ) (command.Pipeline children: [ (command.Simple words: [ {(ocamlc)} {(-dsource)} {(-ppx)} {(./reactjs_jsx_ppx.native)} {(-pp)} {(./refmt_impl.native)} {(-impl)} {($ Id.VSub_DollarName '$test')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:74) fd: 2 arg_word: {(1)} ) ] ) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'$ d' span_id:81))}) (command.Simple words: [{(sed)} {(SQ (Token id:Id.Lit_Chars val:'$ d' span_id:89))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:92) fd: -1 arg_word: {($ Id.VSub_DollarName '$testPath') (/actual) (${ Id.VSub_Name i) (.txt)} ) ] ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:actual) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:112) command_list: (command.CommandList children: [ (C {(cat)} {($ Id.VSub_DollarName '$testPath') (/actual) ($ Id.VSub_DollarName '$i') (.txt) } ) ] ) ) } spids: [111] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ($ Id.VSub_DollarName '$expected'))} right: {(DQ ($ Id.VSub_DollarName '$actual'))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:140) ) ] action: [(C {(echo)} {(DQ (OK))})] spids: [125 142] ) ] else_action: [ (C {(echo)} {(DQ (Wrong))}) (C {(diff)} {(-u)} {($ Id.VSub_DollarName '$testPath') (/expected) ($ Id.VSub_DollarName '$i') (.txt)} {($ Id.VSub_DollarName '$testPath') (/actual) ($ Id.VSub_DollarName '$i') (.txt)} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:181) arg_word: {(1)} ) ] ) ] ) ) ] )