(CommandList
  children: [
    (C {(Lit_Other ":")} {(gnu)} {(updatedb)} {(wrapper)} {(KW_For for)} {(tw)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:codes_default)
          op: Equal
          rhs: {(DQ (lib/find/codes))}
          spids: [70]
        )
      ]
      spids: [70]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:dirs_default) op:Equal rhs:{(DQ (/))} spids:[75])]
      spids: [75]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:drop_default)
          op: Equal
          rhs: {(DQ ("/afs|/backup|/dev|/proc|/tmp|/usr/tmp|/var/tmp"))}
          spids: [80]
        )
      ]
      spids: [80]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:keep_default)
          op: Equal
          rhs: {(DQ ("/home|/usr/local|/usr/common"))}
          spids: [85]
        )
      ]
      spids: [85]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:COMMAND) op:Equal rhs:{(updatedb)} spids:[91])]
      spids: [91]
    )
    (Case
      to_match: 
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [
                  (Subshell
                    child: 
                      (CommandList
                        children: [
                          (Sentence
                            child: (C {(getopts)} {(SQ <"[-][123:xyz]">)} {(opt)} {(--xyz)})
                            terminator: <Op_Semi ";">
                          )
                          (C {(echo)} {(0) ($ VSub_Name "$opt")})
                        ]
                      )
                    redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[115])]
                    spids: [97 113]
                  )
                ]
              )
            left_token: <Left_Backtick "`">
            spids: [96 117]
          )
        }
      arms: [
        (case_arm
          pat_list: [{(0123)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ARGV0)
                  op: Equal
                  rhs: {(DQ ("-a ") ($ VSub_Name "$COMMAND"))}
                  spids: [124]
                )
              ]
              spids: [124]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:USAGE)
                  op: Equal
                  rhs: 
                    {
                      (SQ <"\n"> <"[-?\n"> <"@(#)$Id: updatedb (AT&T Labs Research) 2003-11-14 $\n"> 
                        <"]\n">
                      ) ($ VSub_Name "$USAGE_LICENSE") 
                      (SQ <"\n"> <"[+NAME?updatedb - generate locate pathname database]\n"> 
                        <"[+DESCRIPTION?"> <Lit_EscapedChar "\\b"> <updatedb> <Lit_EscapedChar "\\b"> 
                        <" generates the locate pathname database that is used\n"> <"\tby "> <Lit_EscapedChar "\\b"> <locate> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <find> 
                        <Lit_EscapedChar "\\b"> <"(1), and "> <Lit_EscapedChar "\\b"> <tw> <Lit_EscapedChar "\\b"> <"(1). Sufficient privilege\n"> 
                        <"\tis required to change the system locate database.]\n"> <"[+?This implemenation is a script that generates a "> <Lit_EscapedChar "\\b"> <tw> 
                        <Lit_EscapedChar "\\b"> <"(1) command that\n"> <"\tdoes all the work.]\n"> <"[a:auto-home?Include the "> <Lit_EscapedChar "\\b"> 
                        <nis> <Lit_EscapedChar "\\b"> <"(1) "> <Lit_EscapedChar "\\a"> <auto.home> <Lit_EscapedChar "\\a"> 
                        <" auto mounter home directories\n"> <"\tin "> <Lit_EscapedChar "\\b"> </home> <Lit_EscapedChar "\\b"> 
                        <". NOTE: this causes the home directories to be mounted\n"> <"\tand may swamp the mount table.]\n"> 
                        <
"[d:directory|localpaths?Local directories to include in the database. If the\n"
                        > <"\tfirst "> <Lit_EscapedChar "\\a"> <dir> <Lit_EscapedChar "\\a"> <" is "> <Lit_EscapedChar "\\b"> <"+"> 
                        <Lit_EscapedChar "\\b"> <" then the default list is appended.]:\n"> <"\t[\"dir1 dir2 ...\":=">
                      ) (${ VSub_Name dirs_default) 
                      (SQ <"]\n"> 
                        <
"[i:ignore-errors?Omit inaccessible files and directory error messages.]\n"
                        > <"[k:keep?Directories to retain in the database; used to override\n"> <"\t"> <Lit_EscapedChar "\\b"> 
                        <--nocrossdevice> <Lit_EscapedChar "\\b"> <". If any of the paths are symbolic links then they\n"> 
                        <"\tare followed. If the first "> <Lit_EscapedChar "\\a"> <dir> <Lit_EscapedChar "\\a"> <" is "> <Lit_EscapedChar "\\b"> <"+"> 
                        <Lit_EscapedChar "\\b"> <" then the default list\n"> <"\tis appended.]:[\"dir1 dir2 ...\":=">
                      ) 
                      (BracedVarSub
                        token: <VSub_Name keep_default>
                        suffix_op: 
                          (PatSub
                            pat: {(EscapedLiteralPart token:<Lit_EscapedChar "\\|">)}
                            replace: {(EscapedLiteralPart token:<Lit_EscapedChar "\\ ">)}
                            do_all: True
                            do_prefix: False
                            do_suffix: False
                          )
                        spids: [217 224]
                      ) 
                      (SQ <"]\n"> 
                        <"[l:local?Do not descend into non-local filesystem directories.]\n"> <"[r:netpaths?Network directories to include in the database. Currently\n"> <"\tequivalent to "> 
                        <Lit_EscapedChar "\\b"> <--localpaths> <Lit_EscapedChar "\\b"> <".]:[\"dir1 dir2 ...\"]\n"> 
                        <
"[p:prunepaths|drop?Directories to exclude from the database. If the first "
                        > <Lit_EscapedChar "\\a"> <dir> <Lit_EscapedChar "\\a"> <"\n"> <"\tis "> <Lit_EscapedChar "\\b"> <"+"> 
                        <Lit_EscapedChar "\\b"> <" then the default list is appended.]:\n"> <"\t[\"dir1 dir2 ...\":=">
                      ) 
                      (BracedVarSub
                        token: <VSub_Name drop_default>
                        suffix_op: 
                          (PatSub
                            pat: {(EscapedLiteralPart token:<Lit_EscapedChar "\\|">)}
                            replace: {(EscapedLiteralPart token:<Lit_EscapedChar "\\ ">)}
                            do_all: True
                            do_prefix: False
                            do_suffix: False
                          )
                        spids: [246 253]
                      ) (SQ <"]\n"> <"[o:output|codes?The path of the generated database.]:[dbfile:=">) 
                      (${ VSub_Name codes_default) 
                      (SQ <"]\n"> 
                        <
"[P:public?Omit files that are not publicly readable and directories that\n"
                        > <"\tare not publicly searchable.]\n"> 
                        <"[u:user|netuser?The user id used to search directories.]:[user]\n"> <"[m:dir-format?Generate a database similar to "> <Lit_EscapedChar "\\b"> <--gnu-format> 
                        <Lit_EscapedChar "\\b"> <", except that\n"> <"\tdirectories are marked for efficient implementations of "> 
                        <Lit_EscapedChar "\\b"> <find> <Lit_EscapedChar "\\b"> <"(1)\n"> <"\tand "> <Lit_EscapedChar "\\b"> <tw> <Lit_EscapedChar "\\b"> 
                        <"(1). This is the default database format.]\n"> <"[g:gnu-format?Generate a machine independent gnu "> <Lit_EscapedChar "\\b"> <locate> 
                        <Lit_EscapedChar "\\b"> <"(1) compatible\n"> <"\tdatabase.]\n"> 
                        <"[O:old-format?Generate a database compatible with the obsolete\n"> <"\t"> <Lit_EscapedChar "\\b"> <fastfind> <Lit_EscapedChar "\\b"> 
                        <"(1). This format has a machine dependent encoding.]\n"> <"[D:depth?Limit the directory traversal depth to "> <Lit_EscapedChar "\\a"> <level> 
                        <Lit_EscapedChar "\\a"> <".]#[level]\n"> <"[X!:crossdevice?Retain subdirectories that cross device boundaries.]\n"> 
                        <"[n:show?Show the underlying the "> <Lit_EscapedChar "\\b"> <tw> <Lit_EscapedChar "\\b"> <"(1) command but do not execute.]\n"> 
                        <"[+FILES]{[+">
                      ) (${ VSub_Name codes_default) 
                      (SQ <"?Default locate database on "> <Lit_EscapedChar "\\b"> 
                        <Lit_EscapedChar "\\$"> <PATH> <Lit_EscapedChar "\\b"> <".]}\n"> <"[+CAVEATS?If you run "> <Lit_EscapedChar "\\b"> <updatedb> 
                        <Lit_EscapedChar "\\b"> <" as root then protected directory\n"> 
                        <"\tcontents may be visible to everyone via the database. Use the\n"> <"\t"> <Lit_EscapedChar "\\b"> <--public> <Lit_EscapedChar "\\b"> 
                        <" option to limit the database to publically visible\n"> <"\tfiles and directories.]\n"> <"[+SEE ALSO?"> <Lit_EscapedChar "\\b"> <locate> <Lit_EscapedChar "\\b"> 
                        <"(1), "> <Lit_EscapedChar "\\b"> <fastfind> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <find> 
                        <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <nis> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <tw> 
                        <Lit_EscapedChar "\\b"> <"(1)]\n">
                      )
                    }
                  spids: [131]
                )
              ]
              spids: [131]
            )
          ]
          spids: [121 122 352 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ARGV0) op:Equal rhs:{(DQ )} spids:[357])]
              spids: [357]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:USAGE)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (
"aiglnOPXd:['dir1 dir2 ...']k:['dir1 dir2 ...']o:[dbfile]p:['dir1 dir2 ...']r:['dir1 dir2 ...']u:[user]D:[level]"
                        )
                      )
                    }
                  spids: [362]
                )
              ]
              spids: [362]
            )
          ]
          spids: [354 355 368 -1]
        )
      ]
      spids: [94 119 370]
    )
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:OPTIND) op:Equal rhs:{(0)} spids:[380])]
              spids: [380]
            )
            (C {(getopts)} {($ VSub_Name "$ARGV0")} {(DQ ($ VSub_Name "$USAGE"))} {(OPT)} {(SQ <"-?">)})
            (C {(exit)} {(2)})
          ]
          spids: [377]
        )
      spids: [373 376]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:cross) op:Equal rhs:{(1)} spids:[406])]
      spids: [406]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:depth) op:Equal rhs:{(SQ )} spids:[409])]
      spids: [409]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:dirs) op:Equal rhs:{(SQ )} spids:[411])]
      spids: [411]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:drop) op:Equal rhs:{(SQ )} spids:[413])]
      spids: [413]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:format) op:Equal rhs:{(DQ (-))} spids:[415])]
      spids: [415]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:keep) op:Equal rhs:{(SQ )} spids:[420])]
      spids: [420]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:options) op:Equal rhs:{(DQ (-P))} spids:[422])]
      spids: [422]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:output) op:Equal rhs:{(DQ (-))} spids:[427])]
      spids: [427]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:public) op:Equal rhs:{(SQ )} spids:[432])]
      spids: [432]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:show) op:Equal rhs:{(SQ )} spids:[434])]
      spids: [434]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:su) op:Equal rhs:{(SQ )} spids:[436])]
      spids: [436]
    )
    (While
      cond: [(C {(getopts)} {($ VSub_Name "$ARGV0")} {(DQ ($ VSub_Name "$USAGE"))} {(OPT)})]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name "$OPT")}
              arms: [
                (case_arm
                  pat_list: [{(a)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:dirs)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name "$dirs") (" ") 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (BraceGroup
                                              children: [
                                                (Pipeline
                                                  children: [
                                                    (C {(ypcat)} {(auto.home)})
                                                    (C {(sed)} {(SQ <"s,.*/,-d /home/,">)})
                                                  ]
                                                  negated: False
                                                )
                                                (Pipeline
                                                  children: [
                                                    (C {(ls)} {(/home)})
                                                    (C {(sed)} {(SQ <"s,^,-d /home/,">)})
                                                  ]
                                                  negated: False
                                                )
                                              ]
                                              spids: [467]
                                            )
                                            (C {(sort)} {(-u)})
                                          ]
                                          negated: False
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick "`">
                                  spids: [466 503]
                                )
                              )
                            }
                          spids: [462]
                        )
                      ]
                      spids: [462]
                    )
                  ]
                  spids: [459 460 507 -1]
                )
                (case_arm
                  pat_list: [{(d)} {(r)}]
                  action: [
                    (Case
                      to_match: {($ VSub_Name "$OPTARG")}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ ("+"))} {(DQ ("+ ")) (Lit_Other "*")}]
                          spids: [523 530 532 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dirs_default)
                                  op: Equal
                                  rhs: {(SQ )}
                                  spids: [538]
                                )
                              ]
                              spids: [538]
                            )
                          ]
                          spids: [535 536 540 -1]
                        )
                      ]
                      spids: [515 519 543]
                    )
                    (ForEach
                      iter_name: dir
                      iter_words: [{($ VSub_Name "$OPTARG")}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Case
                              to_match: {($ VSub_Name "$dir")}
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other "+")}]
                                  spids: [564 565 567 -1]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other "*")}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:dirs)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ($ VSub_Name "$dirs") (" -d ") ($ VSub_Name "$dir"))
                                            }
                                          spids: [573]
                                        )
                                      ]
                                      spids: [573]
                                    )
                                  ]
                                  spids: [570 571 580 -1]
                                )
                              ]
                              spids: [557 561 583]
                            )
                          ]
                          spids: [555 586]
                        )
                      spids: [551 -1]
                    )
                  ]
                  spids: [510 513 589 -1]
                )
                (case_arm
                  pat_list: [{(g)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:format)
                          op: Equal
                          rhs: {(gnu)}
                          spids: [595]
                        )
                      ]
                      spids: [595]
                    )
                  ]
                  spids: [592 593 599 -1]
                )
                (case_arm
                  pat_list: [{(i)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:options)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$options") (" -i"))}
                          spids: [605]
                        )
                      ]
                      spids: [605]
                    )
                  ]
                  spids: [602 603 612 -1]
                )
                (case_arm
                  pat_list: [{(k)}]
                  action: [
                    (Case
                      to_match: {($ VSub_Name "$OPTARG")}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ ("+"))} {(DQ ("+ ")) (Lit_Other "*")}]
                          spids: [626 633 635 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:keep_default)
                                  op: Equal
                                  rhs: {(SQ )}
                                  spids: [641]
                                )
                              ]
                              spids: [641]
                            )
                          ]
                          spids: [638 639 643 -1]
                        )
                      ]
                      spids: [618 622 646]
                    )
                    (ForEach
                      iter_name: dir
                      iter_words: [{($ VSub_Name "$OPTARG")}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Case
                              to_match: {($ VSub_Name "$dir")}
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other "+")}]
                                  spids: [667 668 670 -1]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other "*")}]
                                  action: [
                                    (Case
                                      to_match: {($ VSub_Name "$keep")}
                                      arms: [
                                        (case_arm
                                          pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:keep)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ VSub_Name "$keep") ("|") 
                                                        ($ VSub_Name "$dir")
                                                      )
                                                    }
                                                  spids: [687]
                                                )
                                              ]
                                              spids: [687]
                                            )
                                          ]
                                          spids: [683 685 694 -1]
                                        )
                                        (case_arm
                                          pat_list: [{(Lit_Other "*")}]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:keep)
                                                  op: Equal
                                                  rhs: {(DQ ($ VSub_Name "$dir"))}
                                                  spids: [700]
                                                )
                                              ]
                                              spids: [700]
                                            )
                                          ]
                                          spids: [697 698 705 -1]
                                        )
                                      ]
                                      spids: [676 680 708]
                                    )
                                  ]
                                  spids: [673 674 711 -1]
                                )
                              ]
                              spids: [660 664 714]
                            )
                          ]
                          spids: [658 717]
                        )
                      spids: [654 -1]
                    )
                  ]
                  spids: [615 616 720 -1]
                )
                (case_arm
                  pat_list: [{(l)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:options)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$options") (" -l"))}
                          spids: [726]
                        )
                      ]
                      spids: [726]
                    )
                  ]
                  spids: [723 724 733 -1]
                )
                (case_arm
                  pat_list: [{(m)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:format)
                          op: Equal
                          rhs: {(DQ (-))}
                          spids: [739]
                        )
                      ]
                      spids: [739]
                    )
                  ]
                  spids: [736 737 745 -1]
                )
                (case_arm
                  pat_list: [{(o)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:output)
                          op: Equal
                          rhs: {($ VSub_Name "$OPTARG")}
                          spids: [751]
                        )
                      ]
                      spids: [751]
                    )
                  ]
                  spids: [748 749 755 -1]
                )
                (case_arm
                  pat_list: [{(n)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:show)
                          op: Equal
                          rhs: {(DQ ("print --"))}
                          spids: [761]
                        )
                      ]
                      spids: [761]
                    )
                  ]
                  spids: [758 759 767 -1]
                )
                (case_arm
                  pat_list: [{(p)}]
                  action: [
                    (Case
                      to_match: {($ VSub_Name "$OPTARG")}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ ("+"))} {(DQ ("+ ")) (Lit_Other "*")}]
                          spids: [781 788 790 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:drop_default)
                                  op: Equal
                                  rhs: {(SQ )}
                                  spids: [796]
                                )
                              ]
                              spids: [796]
                            )
                          ]
                          spids: [793 794 798 -1]
                        )
                      ]
                      spids: [773 777 801]
                    )
                    (ForEach
                      iter_name: dir
                      iter_words: [{($ VSub_Name "$OPTARG")}]
                      do_arg_iter: False
                      body: 
                        (DoGroup
                          children: [
                            (Case
                              to_match: {($ VSub_Name "$dir")}
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other "+")}]
                                  spids: [822 823 825 -1]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other "*")}]
                                  action: [
                                    (Case
                                      to_match: {($ VSub_Name "$drop")}
                                      arms: [
                                        (case_arm
                                          pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:drop)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ VSub_Name "$drop") ("|") 
                                                        ($ VSub_Name "$dir")
                                                      )
                                                    }
                                                  spids: [842]
                                                )
                                              ]
                                              spids: [842]
                                            )
                                          ]
                                          spids: [838 840 849 -1]
                                        )
                                        (case_arm
                                          pat_list: [{(Lit_Other "*")}]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:drop)
                                                  op: Equal
                                                  rhs: {(DQ ($ VSub_Name "$dir"))}
                                                  spids: [855]
                                                )
                                              ]
                                              spids: [855]
                                            )
                                          ]
                                          spids: [852 853 860 -1]
                                        )
                                      ]
                                      spids: [831 835 863]
                                    )
                                  ]
                                  spids: [828 829 866 -1]
                                )
                              ]
                              spids: [815 819 869]
                            )
                          ]
                          spids: [813 872]
                        )
                      spids: [809 -1]
                    )
                  ]
                  spids: [770 771 875 -1]
                )
                (case_arm
                  pat_list: [{(u)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:su)
                          op: Equal
                          rhs: {(DQ ("su ") ($ VSub_Name "$OPTARG"))}
                          spids: [881]
                        )
                      ]
                      spids: [881]
                    )
                  ]
                  spids: [878 879 888 -1]
                )
                (case_arm
                  pat_list: [{(D)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:depth)
                          op: Equal
                          rhs: {($ VSub_Name "$OPTARG")}
                          spids: [894]
                        )
                      ]
                      spids: [894]
                    )
                  ]
                  spids: [891 892 898 -1]
                )
                (case_arm
                  pat_list: [{(O)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:format)
                          op: Equal
                          rhs: {(old)}
                          spids: [904]
                        )
                      ]
                      spids: [904]
                    )
                  ]
                  spids: [901 902 908 -1]
                )
                (case_arm
                  pat_list: [{(P)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:public) op:Equal rhs:{(1)} spids:[914])]
                      spids: [914]
                    )
                  ]
                  spids: [911 912 918 -1]
                )
                (case_arm
                  pat_list: [{(X)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:cross) op:Equal rhs:{(SQ )} spids:[924])]
                      spids: [924]
                    )
                  ]
                  spids: [921 922 927 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [(C {(usage)})]
                  spids: [930 931 936 -1]
                )
              ]
              spids: [452 456 939]
            )
          ]
          spids: [450 941]
        )
    )
    (C {(shift)} {($ VSub_Name "$OPTIND") (-1)})
    (Case
      to_match: {($ VSub_Pound "$#")}
      arms: [
        (case_arm pat_list:[{(0)}] spids:[954955957-1])
        (case_arm pat_list:[{(Lit_Other "*")}] action:[(C {(usage)})] spids:[959960964-1])
      ]
      spids: [948 952 966]
    )
    (ForEach
      iter_name: dir
      iter_words: [{($ VSub_Name "$dirs_default")}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dirs)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$dirs") (" -d ") ($ VSub_Name "$dir"))}
                  spids: [979]
                )
              ]
              spids: [979]
            )
          ]
          spids: [977 986]
        )
      spids: [974 -1]
    )
    (ForEach
      iter_name: dir
      iter_words: [{($ VSub_Name "$drop_default")}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name "$drop")}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:drop)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$dir"))}
                          spids: [1009]
                        )
                      ]
                      spids: [1009]
                    )
                  ]
                  spids: [-1 1007 1014 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:drop)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$drop") ("|") ($ VSub_Name "$dir"))}
                          spids: [1020]
                        )
                      ]
                      spids: [1020]
                    )
                  ]
                  spids: [1017 1018 1027 -1]
                )
              ]
              spids: [998 1002 1030]
            )
          ]
          spids: [996 1032]
        )
      spids: [993 -1]
    )
    (ForEach
      iter_name: dir
      iter_words: [{($ VSub_Name "$keep_default")}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name "$keep")}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:keep)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$dir"))}
                          spids: [1055]
                        )
                      ]
                      spids: [1055]
                    )
                  ]
                  spids: [-1 1053 1060 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:keep)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$keep") ("|") ($ VSub_Name "$dir"))}
                          spids: [1066]
                        )
                      ]
                      spids: [1066]
                    )
                  ]
                  spids: [1063 1064 1073 -1]
                )
              ]
              spids: [1044 1048 1076]
            )
          ]
          spids: [1042 1078]
        )
      spids: [1039 -1]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:skip) op:Equal rhs:{(SQ )} spids:[1081])]
      spids: [1081]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:follow) op:Equal rhs:{(SQ )} spids:[1083])]
      spids: [1083]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:alt) op:Equal rhs:{(DQ ("\n") ("\t\t"))} spids:[1085])]
      spids: [1085]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:sep) op:Equal rhs:{(DQ ("\n") ("\t"))} spids:[1091])]
      spids: [1091]
    )
    (Case
      to_match: {($ VSub_Name "$public")}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
          action: [
            (Case
              to_match: {($ VSub_Name "$skip")}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:skip)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$skip") (" ||"))}
                          spids: [1118]
                        )
                      ]
                      spids: [1118]
                    )
                  ]
                  spids: [1114 1116 1124 -1]
                )
              ]
              spids: [1107 1111 1127]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:skip)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name skip) (${ VSub_Name alt) ("!(mode & 'o+r') ||") 
                        (${ VSub_Name alt) ("type == DIR &&") (${ VSub_Name alt) ("!(mode & 'o+x')")
                      )
                    }
                  spids: [1130]
                )
              ]
              spids: [1130]
            )
          ]
          spids: [1103 1105 1150 -1]
        )
      ]
      spids: [1097 1101 1152]
    )
    (Case
      to_match: {($ VSub_Name "$depth")}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
          action: [
            (Case
              to_match: {($ VSub_Name "$skip")}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:skip)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$skip") (" ||"))}
                          spids: [1175]
                        )
                      ]
                      spids: [1175]
                    )
                  ]
                  spids: [1171 1173 1181 -1]
                )
              ]
              spids: [1164 1168 1184]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:skip)
                  op: Equal
                  rhs: 
                    {(DQ (${ VSub_Name skip) (${ VSub_Name alt) ("level > ") ($ VSub_Name "$depth"))}
                  spids: [1187]
                )
              ]
              spids: [1187]
            )
          ]
          spids: [1160 1162 1200 -1]
        )
      ]
      spids: [1154 1158 1202]
    )
    (Case
      to_match: {($ VSub_Name "$cross")}
      arms: [
        (case_arm
          pat_list: [{(DQ )}]
          action: [
            (Case
              to_match: {($ VSub_Name "$skip")}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:skip)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$skip") (" ||"))}
                          spids: [1225]
                        )
                      ]
                      spids: [1225]
                    )
                  ]
                  spids: [1221 1223 1231 -1]
                )
              ]
              spids: [1214 1218 1234]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:skip)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name skip) (${ VSub_Name alt) ("fstype != '/'.fstype"))}
                  spids: [1237]
                )
              ]
              spids: [1237]
            )
            (Case
              to_match: {($ VSub_Name "$keep")}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:skip)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name skip) (" &&") (${ VSub_Name alt) ("path != '(") 
                                ($ VSub_Name "$keep") (")?(/*)'")
                              )
                            }
                          spids: [1260]
                        )
                      ]
                      spids: [1260]
                    )
                  ]
                  spids: [1256 1258 -1 1275]
                )
              ]
              spids: [1249 1253 1275]
            )
          ]
          spids: [-1 1212 1278 -1]
        )
      ]
      spids: [1204 1208 1280]
    )
    (Case
      to_match: {($ VSub_Name "$drop")}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
          action: [
            (Case
              to_match: {($ VSub_Name "$skip")}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:skip)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$skip") (" ||"))}
                          spids: [1303]
                        )
                      ]
                      spids: [1303]
                    )
                  ]
                  spids: [1299 1301 1309 -1]
                )
              ]
              spids: [1292 1296 1312]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:skip)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name skip) (${ VSub_Name alt) ("path == '(") ($ VSub_Name "$drop") 
                        (")?(/*)'")
                      )
                    }
                  spids: [1315]
                )
              ]
              spids: [1315]
            )
          ]
          spids: [1288 1290 1329 -1]
        )
      ]
      spids: [1282 1286 1331]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:expr) op:Equal rhs:{(SQ )} spids:[1333])]
      spids: [1333]
    )
    (Case
      to_match: {($ VSub_Name "$skip")}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:expr)
                  op: Equal
                  rhs: 
                    {
                      (DQ ("if (") (${ VSub_Name skip) (${ VSub_Name alt) (")") (${ VSub_Name alt) 
                        ("\tstatus = SKIP;")
                      )
                    }
                  spids: [1345]
                )
              ]
              spids: [1345]
            )
          ]
          spids: [1341 1343 1361 -1]
        )
      ]
      spids: [1335 1339 1363]
    )
    (Case
      to_match: {($ VSub_Name "$keep")}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
          action: [
            (Case
              to_match: {($ VSub_Name "$expr")}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:expr)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name expr) (${ VSub_Name sep) ("else "))}
                          spids: [1386]
                        )
                      ]
                      spids: [1386]
                    )
                  ]
                  spids: [1382 1384 1397 -1]
                )
              ]
              spids: [1375 1379 1400]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:expr)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name expr) ("if (") (${ VSub_Name alt) ("type == LNK &&") 
                        (${ VSub_Name alt) ("level < 3 &&") (${ VSub_Name alt) ("path == '(") ($ VSub_Name "$keep") (")?(/*)'") (${ VSub_Name alt) 
                        (")") (${ VSub_Name alt) ("\tstatus = FOLLOW;")
                      )
                    }
                  spids: [1403]
                )
              ]
              spids: [1403]
            )
          ]
          spids: [1371 1373 1434 -1]
        )
      ]
      spids: [1365 1369 1436]
    )
    (Case
      to_match: {($ VSub_Name "$expr")}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
          action: [
            (Case
              to_match: {($ VSub_Name "$show")}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:expr)
                          op: Equal
                          rhs: {(DQ (-e) (${ VSub_Name sep) (${ VSub_Name expr) (${ VSub_Name sep))}
                          spids: [1459]
                        )
                      ]
                      spids: [1459]
                    )
                  ]
                  spids: [-1 1457 1473 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:expr)
                          op: Equal
                          rhs: 
                            {
                              (DQ ("-e ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                                (${ VSub_Name sep) (${ VSub_Name expr) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name sep)
                              )
                            }
                          spids: [1479]
                        )
                      ]
                      spids: [1479]
                    )
                  ]
                  spids: [1476 1477 1495 -1]
                )
              ]
              spids: [1448 1452 1498]
            )
          ]
          spids: [1444 1446 1501 -1]
        )
      ]
      spids: [1438 1442 1503]
    )
    (C {($ VSub_Name "$show")} {($ VSub_Name "$su")} {(tw)} {($ VSub_Name "$options")} {(-F)} 
      {(DQ ($ VSub_Name "$output"))} {(-G)} {(DQ ($ VSub_Name "$format"))} {(DQ ($ VSub_Name "$expr"))} {($ VSub_Name "$dirs")}
    )
  ]
)