(command.CommandList children: [ (command.ShFunction name: k_bool_parse body: (BraceGroup children: [ (C {<local>} {<value>}) (C {<local>} {<Id.Lit_VarLike 'default='> (DQ (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty)) ) ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:value) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<k_bool_parse_error>} {(DQ ($ Id.VSub_Number '$1'))}) ) ) } spids: [71] ) ] ) terminator: <Id.Op_Semi _> ) ] action: [(C {<echo>} {(DQ (${ Id.VSub_Name value))})] spids: [69 83] ) ] else_action: [ (C {<echo>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<k_bool_parse>} {(DQ (${ Id.VSub_Name default))} {<false>}) ) ) } ) ] ) ] ) ) (command.ShFunction name: k_bool_parse_error body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'value='> (DQ ($ Id.VSub_Number '$1'))}) (command.Case to_match: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<k_string_lower>} {(DQ (${ Id.VSub_Name value))}) ) ) } arms: [ (case_arm pat_list: [{<on>} {<true>} {<yes>} {<y>} {<1>}] action: [(C {<echo>} {<true>})] spids: [188 197 205 -1] ) (case_arm pat_list: [{<off>} {<false>} {<no>} {<n>} {<0>}] action: [(C {<echo>} {<false>})] spids: [209 218 226 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})] spids: [230 231 239 -1] ) ] ) ] ) ) (command.ShFunction name: k_bool_test body: (BraceGroup children: [ (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<k_bool_parse>} {(DQ ($ Id.VSub_At '$@'))}) ) ) } {<Id.Lit_Equals '='>} {<true>} {<Id.Lit_RBracket ']'>} ) ] ) ) (command.ShFunction name: k_bool_valid body: (BraceGroup children: [ (command.Simple words: [{<k_bool_parse_error>} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) ] ) ) ] )