(command.CommandList children: [ (C {<.>} {<'../config.lib.sh'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:config_file) op: assign_op.Equal rhs: {(DQ <'./test-conf.conf'>)} spids: [9] ) ] ) (command.ShFunction name: test_k_config_sections body: (BraceGroup children: [ (C {<assertEquals>} {(DQ <'Section Names'>)} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<printf>} {(DQ <section> <Id.Lit_BadBackslash '\\'> <nsection2>)}) ) ) } { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<k_config_sections>} {(DQ (${ Id.VSub_Name config_file))}) ) ) } ) (C {<assertEquals>} {(DQ <'Section Names under [section2]'>)} {(DQ <baz>)} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<k_config_sections>} {(DQ (${ Id.VSub_Name config_file))} {(DQ <section2>)}) ) ) } ) (C {<assertEquals>} {(DQ <'Section Names under [section3]'>)} {(DQ )} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<k_config_sections>} {(DQ (${ Id.VSub_Name config_file))} {(DQ <section3>)}) ) ) } ) ] ) ) ] )