(CommandList children: [ (FuncDef name: gcd body: (BraceGroup children: [ (C {(typeset)} {(-i)} {(Lit_VarLike "a=") ($ VSub_Number "$1")}) (C {(typeset)} {(-i)} {(Lit_VarLike "b=") ($ VSub_Number "$2")}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithVarRef name:a) right: (ArithVarRef name:b) ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:a) op: Equal rhs: {($ VSub_Name "$b")} spids: [62] ) ] spids: [62] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:b) op: Equal rhs: {($ VSub_Number "$1")} spids: [66] ) ] spids: [66] ) ] spids: [-1 59] ) ] spids: [-1 70] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DPipe left: (ArithBinary op_id: Arith_DEqual left: (ArithVarRef name:a) right: (ArithWord w:{(Lit_Digits 1)}) ) right: (ArithBinary op_id: Arith_DEqual left: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:b) right: (ArithVarRef name:a) ) right: (ArithWord w:{(Lit_Digits 0)}) ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:gcd_value) op: Equal rhs: {($ VSub_Name "$a")} spids: [102] ) ] spids: [102] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [-1 99] ) ] spids: [-1 111] ) (C {(typeset)} {(-i)} {(c)}) (DParen child: (BinaryAssign op_id: Arith_Equal left: (LhsName name:c) right: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:b) right: (ArithVarRef name:a) ) ) ) (C {(gcd)} {($ VSub_Name "$c")} {($ VSub_Name "$a")}) ] spids: [25] ) spids: [21 24] ) (C {(gcd)} {($ VSub_Number "$1")} {($ VSub_Number "$2")}) (C {(echo)} {($ VSub_Name "$gcd_value")}) ] )