(CommandList children: [ (C {(set)} {(-e)}) (FuncDef name: encode_name body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [17] ) ] spids: [15] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(DQ (test_))} spids:[25])] spids: [23] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$name"))} right: {(Lit_Other "[") (Lit_Other "^") (Lit_Other "[") (Lit_Other ":") (alnum) (Lit_Other ":") (Lit_Other "]") (EscapedLiteralPart token:<Lit_EscapedChar "\\ ">) (_-) (Lit_Other "]") } ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name name> suffix_op: (PatSub pat: {(_)} replace: {(-5f)} do_all: True do_prefix: False do_suffix: False ) spids: [63 70] ) ) } spids: [61] ) ] spids: [61] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name name> suffix_op: (PatSub pat: {(-)} replace: {(-2d)} do_all: True do_prefix: False do_suffix: False ) spids: [76 83] ) ) } spids: [74] ) ] spids: [74] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name name> suffix_op: (PatSub pat: {(" ")} replace: {(_)} do_all: True do_prefix: False do_suffix: False ) spids: [89 96] ) ) } spids: [87] ) ] spids: [87] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: PlusEqual rhs: {(DQ ($ VSub_Name "$name"))} spids: [100] ) ] spids: [100] ) ] spids: [-1 58] ) ] else_action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:length) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name name> prefix_op: VSub_Pound spids: [113 116] ) ) } spids: [111] ) ] spids: [109] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:char) op:Equal spids:[122]) (assign_pair lhs:(LhsName name:i) op:Equal spids:[124]) ] spids: [120] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithVarRef name:length) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:char) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name name> suffix_op: (Slice begin: (ArithWord w:{($ VSub_Name "$i")}) length: (ArithWord w:{(Lit_Digits 1)}) ) spids: [152 158] ) ) } spids: [150] ) ] spids: [150] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$char"))} {(Lit_Other "=")} {(DQ (" "))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: PlusEqual rhs: {(DQ (_))} spids: [182] ) ] spids: [182] ) ] spids: [-1 179] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$char"))} right: {(Lit_Other "[") (Lit_Other "[") (Lit_Other ":") (alnum) (Lit_Other ":") (Lit_Other "]") (Lit_Other "]") } ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: PlusEqual rhs: {(DQ ($ VSub_Name "$char"))} spids: [212] ) ] spids: [212] ) ] spids: [188 209] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: PlusEqual rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(printf)} {(--)} {(DQ ("-%02x"))} { (EscapedLiteralPart token: <Lit_EscapedChar "\\'"> ) (DQ ($ VSub_Name "$char")) } ) ] ) left_token: <Left_CommandSub "$("> spids: [223 236] ) ) } spids: [221] ) ] spids: [221] ) ] spids: [218 240] ) ] spids: [147 243] ) ) ] spids: [106 246] ) (C {(echo)} {(DQ ($ VSub_Name "$result"))}) ] spids: [12] ) spids: [8 11] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tests) op:Equal rhs:{(ArrayLiteralPart)} spids:[259])] spids: [259] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:index) op:Equal rhs:{(0)} spids:[263])] spids: [263] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pattern) op: Equal rhs: {(SQ <"^ *@test *([^ ].*) *\\{ *(.*)$">)} spids: [266] ) ] spids: [266] ) (While cond: [ (Sentence child: (SimpleCommand words: [{(read)} {(-r)} {(line)}] more_env: [(env_pair name:IFS val:{(SQ )} spids:[274])] ) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (C {(let)} {(Lit_VarLike "index+=") (1)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$line"))} right: {($ VSub_Name "$pattern")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:quoted_name) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [312 317] ) ) } spids: [310] ) ] spids: [310] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:body) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)})) spids: [323 328] ) ) } spids: [321] ) ] spids: [321] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(eval)} {(echo)} {(DQ ($ VSub_Name "$quoted_name"))}) ] ) left_token: <Left_CommandSub "$("> spids: [334 342] ) ) } spids: [332] ) ] spids: [332] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:encoded_name) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(encode_name)} {(DQ ($ VSub_Name "$name"))})] ) left_token: <Left_CommandSub "$("> spids: [348 354] ) ) } spids: [346] ) ] spids: [346] ) (C {(tests) (Lit_Other "[") (DQ (BracedVarSub token: <VSub_Name tests> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [361 367] ) ) (Lit_Other "]") (Lit_Other "=") (DQ ($ VSub_Name "$encoded_name")) } ) (C {(echo)} { (DQ (${ VSub_Name encoded_name) ("() { bats_test_begin ") (${ VSub_Name quoted_name) (" ") (${ VSub_Name index) ("; ") (${ VSub_Name body) ) } ) ] spids: [-1 307] ) ] else_action: [ (C {(printf)} {(DQ ("%s") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))} {(DQ ($ VSub_Name "$line"))} ) ] spids: [397 412] ) ] spids: [283 414] ) ) (ForEach iter_name: test_name iter_words: [ { (DQ (BracedVarSub token: <VSub_Name tests> bracket_op: (WholeArray op_id:Lit_At) spids: [424 429] ) ) } ] do_arg_iter: False body: (DoGroup children: [(C {(echo)} {(DQ ("bats_test_function ") (${ VSub_Name test_name))})] spids: [433 445] ) spids: [422 431] ) ] )