(command.CommandList
  children: [
    (C {<Setup.provide>} {<Doc>} {<0.1>})
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name DOC_PREFIX>
          suffix_op: 
            (suffix_op.Unary
              tok: <Id.VTest_Equals '='>
              arg_word: {(DQ <'/'> ($ Id.VSub_DollarName '$SETUP_PREFIX'))}
            )
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name DOC_BUILD>
          suffix_op: 
            (suffix_op.Unary
              tok: <Id.VTest_Equals '='>
              arg_word: {(DQ (${ Id.VSub_Name DOC_PREFIX) <.build>)}
            )
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name DOC_SRC>
          suffix_op: 
            (suffix_op.Unary
              tok: <Id.VTest_Equals '='>
              arg_word: {(DQ (${ Id.VSub_Name DOC_PREFIX) <src>)}
            )
        )
      }
    )
    (command.ShFunction
      name: Doc.man
      body: 
        (BraceGroup
          children: [
            (C {<mkpdir>} {(DQ ($ Id.VSub_Number '$1'))})
            (C {<pandoc>} {<-f>} {<markdown>} {<-t>} {<man>} {<-s>} {(DQ ($ Id.VSub_Number '$2'))} {<-o>} 
              {(DQ ($ Id.VSub_Number '$1'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: Doc.auto_files
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_EqualTilde
                      left: {(DQ ($ Id.VSub_Number '$1'))}
                      right: 
                        {<Id.Lit_Other '^'> <Id.Lit_Other '('> (DQ ($ Id.VSub_DollarName '$DOC_BUILD')) 
                          <Id.Lit_Other ')'> <'/'> <Id.Lit_Other '('> <Id.Lit_Other .> <Id.Lit_Other '*'> <Id.Lit_Other ')'>
                        }
                    )
                )
                (BraceGroup
                  children: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'root='> 
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name BASH_REMATCH>
                            bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>})
                          )
                        )
                      } 
                      {<Id.Lit_VarLike 'path='> 
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name BASH_REMATCH>
                            bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>})
                          )
                        )
                      }
                    )
                    (command.Case
                      to_match: {(DQ ($ Id.VSub_DollarName '$path'))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>}
                          ]
                          action: [
                            (C {<prepare>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} 
                              {<Doc.man>} {(DQ ($ Id.VSub_DollarName '$DOC_SRC') <'/'> ($ Id.VSub_DollarName '$path') <.md>)}
                            )
                          ]
                          spids: [156 161 179 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [182 183 188 -1]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (C {<Setup.hook>} {<Doc.auto_files>})
  ]
)