(command.CommandList
  children: [
    (command.ShFunction
      name: k_config_command
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))})
            (C {<shift>})
            (C {<CFGET_BIN>} {<--plugin>} 
              {(DQ (${ Id.VSub_Name KOALEPHANT_LIB_PATH) <'/cfget-plugins/'>)} {<--format>} {<nestedini>} {<--cfg>} {(DQ (${ Id.VSub_Name file))} {<--quiet>} {(DQ ($ Id.VSub_At '$@'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: k_config_sections
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))})
            (C {<local>} {<Id.Lit_VarLike 'root='> (DQ )})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Number 2>
                                    suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty))
                                  )
                                )
                              } {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:root)
                          op: assign_op.Equal
                          rhs: {(DQ <'--root '> (${ Id.VSub_Number 2))}
                          spids: [165]
                        )
                      ]
                    )
                  ]
                  spids: [146 162]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<k_config_command>} {(DQ (${ Id.VSub_Name file))} {<--dump>} {<sections>} 
                  {(${ Id.VSub_Name root)}
                )
                (C {<true>})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: k_config_keys
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))})
            (C {<local>} {<Id.Lit_VarLike 'root='> (DQ )})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Number 2>
                                    suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty))
                                  )
                                )
                              } {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:root)
                          op: assign_op.Equal
                          rhs: {(DQ <'--root '> (${ Id.VSub_Number 2))}
                          spids: [266]
                        )
                      ]
                    )
                  ]
                  spids: [247 263]
                )
              ]
            )
            (C {<k_config_command>} {(DQ (${ Id.VSub_Name file))} {<--dump>} {<keys>} 
              {(${ Id.VSub_Name root)}
            )
          ]
        )
    )
    (command.ShFunction
      name: k_config_read
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [(C {<k_config_read_error>} {(DQ ($ Id.VSub_At '$@'))}) (C {<true>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: k_config_read_error
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))})
            (C {<local>} {<Id.Lit_VarLike 'key='> (DQ ($ Id.VSub_Number '$2'))})
            (C {<local>} {<Id.Lit_VarLike 'root='> (DQ )})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Number 3>
                                    suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty))
                                  )
                                )
                              } {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:root)
                          op: assign_op.Equal
                          rhs: {(DQ <'--root '> (${ Id.VSub_Number 3))}
                          spids: [433]
                        )
                      ]
                    )
                  ]
                  spids: [414 430]
                )
              ]
            )
            (C {<k_config_command>} {(DQ (${ Id.VSub_Name file))} {(${ Id.VSub_Name root)} 
              {(DQ (${ Id.VSub_Name key))}
            )
          ]
        )
    )
    (command.ShFunction
      name: k_config_read_string
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))})
            (C {<local>} {<Id.Lit_VarLike 'key='> (DQ ($ Id.VSub_Number '$2'))})
            (C {<local>} 
              {<Id.Lit_VarLike 'default='> 
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Number 3>
                    suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty))
                  )
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'root='> 
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Number 4>
                    suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty))
                  )
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'value='> 
                (DQ 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (C {<k_config_read>} {(DQ ($ Id.VSub_DollarName '$file'))} 
                        {(DQ ($ Id.VSub_DollarName '$key'))} {(DQ (${ Id.VSub_Name root))}
                      )
                  )
                )
              }
            )
            (C {<printf>} {(DQ <'%s'>)} 
              {
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Name value>
                    suffix_op: 
                      (suffix_op.Unary
                        tok: <Id.VTest_ColonHyphen ':-'>
                        arg_word: {($ Id.VSub_DollarName '$default')}
                      )
                  )
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: k_config_read_bool
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))})
            (C {<local>} {<Id.Lit_VarLike 'key='> (DQ ($ Id.VSub_Number '$2'))})
            (C {<local>} 
              {<Id.Lit_VarLike 'default='> 
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Number 3>
                    suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty))
                  )
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'root='> 
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Number 4>
                    suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty))
                  )
                )
              }
            )
            (C {<k_bool_parse>} 
              {
                (DQ 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (C {<k_config_read>} {(DQ (${ Id.VSub_Name file))} {(DQ (${ Id.VSub_Name key))} 
                        {(DQ (${ Id.VSub_Name root))}
                      )
                  )
                )
              } {(DQ (${ Id.VSub_Name default))}
            )
          ]
        )
    )
    (command.ShFunction
      name: k_config_test_bool
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))})
            (C {<local>} {<Id.Lit_VarLike 'key='> (DQ ($ Id.VSub_Number '$2'))})
            (C {<local>} 
              {<Id.Lit_VarLike 'default='> 
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Number 3>
                    suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty))
                  )
                )
              }
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'root='> 
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Number 4>
                    suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty))
                  )
                )
              }
            )
            (C {<k_bool_test>} 
              {
                (DQ 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (C {<k_config_read_string>} {(DQ (${ Id.VSub_Name file))} 
                        {(DQ (${ Id.VSub_Name key))} 
                        {
                          (DQ 
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              child: (C {<k_bool_parse>} {(DQ (${ Id.VSub_Name default))})
                            )
                          )
                        } {(DQ (${ Id.VSub_Name root))}
                      )
                  )
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: k_config_read_keyword
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))})
            (C {<local>} {<Id.Lit_VarLike 'key='> (DQ ($ Id.VSub_Number '$2'))})
            (C {<local>} {<Id.Lit_VarLike 'default='> (DQ ($ Id.VSub_Number '$3'))})
            (C {<local>} {<Id.Lit_VarLike 'root='> (DQ ($ Id.VSub_Number '$4'))})
            (C {<shift>} {<4>})
            (C {<k_string_keyword>} 
              {
                (DQ 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (C {<k_config_read_string>} {(DQ (${ Id.VSub_Name file))} 
                        {(DQ (${ Id.VSub_Name key))} {(DQ (${ Id.VSub_Name default))} {(DQ (${ Id.VSub_Name root))}
                      )
                  )
                )
              } {(DQ ($ Id.VSub_At '$@'))} {(DQ ($ Id.VSub_DollarName '$default'))}
            )
          ]
        )
    )
  ]
)