(CommandList children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:version) op:Equal rhs:{(DQ (0.01))} spids:[4])] spids: [4] ) terminator: <Op_Semi ";"> ) (FuncDef name: fibonacci body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:n) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VTest_ColonQMark arg_word: { ( "If you want the nth fibonacci number, you must supply n as the first parameter." ) } ) spids: [19 23] ) } spids: [18] ) ] spids: [18] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {($ VSub_Name "$n")} {(-le)} {(1)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {($ VSub_Name "$n")})] spids: [-1 39] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:l) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(fibonacci)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:n) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [54 59] ) } ) ] ) left_token: <Left_Backtick "`"> spids: [51 60] ) } spids: [50] ) ] spids: [50] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(fibonacci)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:n) right: (ArithWord w:{(Lit_Digits 2)}) ) spids: [67 72] ) } ) ] ) left_token: <Left_Backtick "`"> spids: [64 73] ) } spids: [63] ) ] spids: [63] ) (C {(echo)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:l) right: (ArithVarRef name:r) ) spids: [78 85] ) } ) ] spids: [47 88] ) ] spids: [15] ) spids: [11 14] ) (ForEach iter_name: i iter_words: [{(1)} {(2)}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(fibonacci)} {($ VSub_Name "$i")})]) left_token: <Left_CommandSub "$("> spids: [107 111] ) } spids: [106] ) ] spids: [106] ) (C {(echo)} {(DQ ("i=") ($ VSub_Name "$i") (" result=") ($ VSub_Name "$result"))}) ] spids: [103 123] ) spids: [98 -1] ) ] )