(CommandList
  children: [
    (AndOr
      children: [
        (FuncDef
          name: _povray
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair lhs:(LhsName name:cur) op:Equal spids:[16])
                    (assign_pair lhs:(LhsName name:prev) op:Equal spids:[18])
                    (assign_pair lhs:(LhsName name:words) op:Equal spids:[20])
                    (assign_pair lhs:(LhsName name:cword) op:Equal spids:[22])
                  ]
                  spids: [14]
                )
                (AndOr
                  children: [(C {(_init_completion)}) (ControlFlow token:<ControlFlow_Return return>)]
                  op_id: Op_DPipe
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:povcur)
                      op: Equal
                      rhs: {($ VSub_Name "$cur")}
                      spids: [35]
                    )
                    (assign_pair lhs:(LhsName name:pfx) op:Equal spids:[38])
                    (assign_pair lhs:(LhsName name:oext) op:Equal spids:[40])
                    (assign_pair lhs:(LhsName name:defoext) op:Equal spids:[42])
                  ]
                  spids: [33]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:defoext) op:Equal rhs:{(png)} spids:[45])]
                  spids: [45]
                )
                (AndOr
                  children: [
                    (C {(_expand)})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  op_id: Op_DPipe
                )
                (Case
                  to_match: {($ VSub_Name "$povcur")}
                  arms: [
                    (case_arm
                      pat_list: [
                        {(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") (I) (Lit_Other "*")}
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:cur)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name povcur>
                                      suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{("[-+]I")})
                                      spids: [81 85]
                                    )
                                  )
                                }
                              spids: [79]
                            )
                          ]
                          spids: [79]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:pfx)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name povcur>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VOp1_Percent
                                          arg_word: {(DQ ($ VSub_Name "$cur"))}
                                        )
                                      spids: [94 100]
                                    )
                                  )
                                }
                              spids: [92]
                            )
                          ]
                          spids: [92]
                        )
                        (C {(_filedir)} {(pov)})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:COMPREPLY)
                              op: Equal
                              rhs: 
                                {
                                  (ArrayLiteralPart
                                    words: [
                                      {
                                        (BracedVarSub
                                          token: <VSub_Name COMPREPLY>
                                          bracket_op: (WholeArray op_id:Lit_At)
                                          suffix_op: 
                                            (PatSub
                                              pat: {}
                                              replace: {($ VSub_Name "$pfx")}
                                              do_all: False
                                              do_prefix: True
                                              do_suffix: False
                                            )
                                          spids: [112 121]
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [109]
                            )
                          ]
                          spids: [109]
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [70 76 131 -1]
                    )
                    (case_arm
                      pat_list: [
                        {(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") (O) (Lit_Other "*")}
                      ]
                      action: [
                        (Case
                          to_match: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Subshell
                                        child: 
                                          (CommandList
                                            children: [
                                              (Sentence
                                                child: 
                                                  (Assignment
                                                    keyword: Assign_None
                                                    pairs: [
                                                      (assign_pair
                                                        lhs: (LhsName name:IFS)
                                                        op: Equal
                                                        rhs: {(SQ <Lit_EscapedChar "\\n">)}
                                                        spids: [153]
                                                      )
                                                    ]
                                                    spids: [153]
                                                  )
                                                terminator: <Op_Semi ";">
                                              )
                                              (SimpleCommand
                                                words: [{(command)} {(grep)} {(SQ <"^[-+]F">)}]
                                                redirects: [
                                                  (Redir
                                                    op_id: Redir_TLess
                                                    fd: -1
                                                    arg_word: 
                                                      {
                                                        (DQ 
                                                          (BracedVarSub
                                                            token: <VSub_Name words>
                                                            bracket_op: (WholeArray op_id:Arith_Star)
                                                            spids: [169 174]
                                                          )
                                                        )
                                                      }
                                                    spids: [167]
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                        spids: [151 177]
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [149 179]
                              )
                            }
                          arms: [
                            (case_arm
                              pat_list: [{(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") (FN)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:oext)
                                      op: Equal
                                      rhs: {(png)}
                                      spids: [191]
                                    )
                                  ]
                                  spids: [191]
                                )
                              ]
                              spids: [184 189 194 -1]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") (FP)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:oext)
                                      op: Equal
                                      rhs: {(ppm)}
                                      spids: [204]
                                    )
                                  ]
                                  spids: [204]
                                )
                              ]
                              spids: [197 202 207 -1]
                            )
                            (case_arm
                              pat_list: [
                                {(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") (F) (Lit_Other "[") 
                                  (CT) (Lit_Other "]")
                                }
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:oext)
                                      op: Equal
                                      rhs: {(tga)}
                                      spids: [220]
                                    )
                                  ]
                                  spids: [220]
                                )
                              ]
                              spids: [210 218 223 -1]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other "*")}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:oext)
                                      op: Equal
                                      rhs: {($ VSub_Name "$defoext")}
                                      spids: [229]
                                    )
                                  ]
                                  spids: [229]
                                )
                              ]
                              spids: [226 227 232 -1]
                            )
                          ]
                          spids: [147 181 235]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:COMPREPLY)
                              op: Equal
                              rhs: 
                                {
                                  (ArrayLiteralPart
                                    words: [
                                      {
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (Subshell
                                                  child: 
                                                    (CommandList
                                                      children: [
                                                        (Sentence
                                                          child: 
                                                            (Assignment
                                                              keyword: Assign_None
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (LhsName name:IFS)
                                                                  op: Equal
                                                                  rhs: {(SQ <Lit_EscapedChar "\\n">)}
                                                                  spids: [249]
                                                                )
                                                              ]
                                                              spids: [249]
                                                            )
                                                          terminator: <Op_Semi ";">
                                                        )
                                                        (SimpleCommand
                                                          words: [{(command)} {(grep)} {(SQ <"^[-+]I">)}]
                                                          redirects: [
                                                            (Redir
                                                              op_id: Redir_TLess
                                                              fd: -1
                                                              arg_word: 
                                                                {
                                                                  (DQ 
                                                                    (BracedVarSub
                                                                      token: <VSub_Name words>
                                                                      bracket_op: 
                                                                        (WholeArray
                                                                          op_id: Arith_Star
                                                                        )
                                                                      spids: [265 270]
                                                                    )
                                                                  )
                                                                }
                                                              spids: [263]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  spids: [247 273]
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub "$(">
                                          spids: [245 275]
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [242]
                            )
                          ]
                          spids: [242]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:COMPREPLY)
                              op: Equal
                              rhs: 
                                {
                                  (ArrayLiteralPart
                                    words: [
                                      {
                                        (BracedVarSub
                                          token: <VSub_Name COMPREPLY>
                                          bracket_op: (WholeArray op_id:Lit_At)
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_Pound
                                              arg_word: {("[-+]I")}
                                            )
                                          spids: [283 290]
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [280]
                            )
                          ]
                          spids: [280]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:COMPREPLY)
                              op: Equal
                              rhs: 
                                {
                                  (ArrayLiteralPart
                                    words: [
                                      {
                                        (BracedVarSub
                                          token: <VSub_Name COMPREPLY>
                                          bracket_op: (WholeArray op_id:Lit_At)
                                          suffix_op: 
                                            (PatSub
                                              pat: {(.pov)}
                                              replace: {(.) ($ VSub_Name "$oext")}
                                              do_all: False
                                              do_prefix: False
                                              do_suffix: True
                                            )
                                          spids: [298 309]
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [295]
                            )
                          ]
                          spids: [295]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:cur)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name povcur>
                                      suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{("[-+]O")})
                                      spids: [316 320]
                                    )
                                  )
                                }
                              spids: [314]
                            )
                          ]
                          spids: [314]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:pfx)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name povcur>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VOp1_Percent
                                          arg_word: {(DQ ($ VSub_Name "$cur"))}
                                        )
                                      spids: [329 335]
                                    )
                                  )
                                }
                              spids: [327]
                            )
                          ]
                          spids: [327]
                        )
                        (C {(_filedir)} {($ VSub_Name "$oext")})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:COMPREPLY)
                              op: Equal
                              rhs: 
                                {
                                  (ArrayLiteralPart
                                    words: [
                                      {
                                        (BracedVarSub
                                          token: <VSub_Name COMPREPLY>
                                          bracket_op: (WholeArray op_id:Lit_At)
                                          suffix_op: 
                                            (PatSub
                                              pat: {}
                                              replace: {($ VSub_Name "$pfx")}
                                              do_all: False
                                              do_prefix: True
                                              do_suffix: False
                                            )
                                          spids: [347 356]
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [344]
                            )
                          ]
                          spids: [344]
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [134 140 366 -1]
                    )
                    (case_arm
                      pat_list: [
                        {(Lit_Other "*") (.ini) (EscapedLiteralPart token:<Lit_EscapedChar "\\[">)}
                        {(Lit_Other "*") (.ini) (EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                          (Lit_Other "*") (Lit_Other "[") (Lit_Other "^") (Lit_Other "]") (Lit_Other "]")
                        }
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:cur)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name povcur>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VOp1_Pound
                                          arg_word: 
                                            {("*") (EscapedLiteralPart token:<Lit_EscapedChar "\\[">)}
                                        )
                                      spids: [389 394]
                                    )
                                  )
                                }
                              spids: [387]
                            )
                          ]
                          spids: [387]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:pfx)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name povcur>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VOp1_Percent
                                          arg_word: 
                                            {(EscapedLiteralPart token:<Lit_EscapedChar "\\[">) 
                                              (DQ ($ VSub_Name "$cur"))
                                            }
                                        )
                                      spids: [400 407]
                                    )
                                  )
                                }
                              spids: [398]
                            )
                          ]
                          spids: [398]
                        )
                        (AndOr
                          children: [
                            (DBracket
                              expr: (BoolUnary op_id:BoolUnary_r child:{($ VSub_Name "$pfx")})
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(0)}
                            )
                          ]
                          op_id: Op_DPipe
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:COMPREPLY)
                              op: Equal
                              rhs: 
                                {
                                  (ArrayLiteralPart
                                    words: [
                                      {
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(sed)} {(-e)} 
                                                  {(SQ <"s/^[[:space:]]*\\[\\(">) 
                                                    (DQ ($ VSub_Name "$cur")) (SQ <"[^]]*\\]\\).*$/\\1/">)
                                                  } {(-e)} {(SQ <t>)} {(-e)} {(SQ <d>)} {(--)} {(DQ ($ VSub_Name "$pfx"))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub "$(">
                                          spids: [432 466]
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [429]
                            )
                          ]
                          spids: [429]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:COMPREPLY)
                              op: Equal
                              rhs: 
                                {
                                  (ArrayLiteralPart
                                    words: [
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name COMPREPLY>
                                            bracket_op: (WholeArray op_id:Lit_At)
                                            suffix_op: 
                                              (PatSub
                                                pat: {}
                                                replace: {($ VSub_Name "$pfx") ("[")}
                                                do_all: False
                                                do_prefix: True
                                                do_suffix: False
                                              )
                                            spids: [479 489]
                                          )
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [475]
                            )
                          ]
                          spids: [475]
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [369 381 500 -1]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other "*")}]
                      action: [
                        (C {(_filedir)} {(SQ <"@(ini|pov)">)})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [503 504 519 -1]
                    )
                  ]
                  spids: [63 67 522]
                )
              ]
              spids: [11]
            )
          spids: [7 10]
        )
        (C {(complete)} {(-F)} {(_povray)} {(povray)} {(xpovray)} {(spovray)})
      ]
      op_id: Op_DAmp
    )
  ]
)