(CommandList
  children: [
    (C {(Lit_Other ":")} {(gnu)} {(locate)} {(wrapper)} {(KW_For for)} {(tw)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:COMMAND) op:Equal rhs:{(locate)} spids:[70])]
      spids: [70]
    )
    (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:[94])]
                    spids: [76 92]
                  )
                ]
              )
            left_token: <Left_Backtick "`">
            spids: [75 96]
          )
        }
      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: [103]
                )
              ]
              spids: [103]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:USAGE)
                  op: Equal
                  rhs: 
                    {
                      (SQ <"\n"> <"[-?\n"> <"@(#)$Id: locate (AT&T Labs Research) 1999-01-23 $\n"> 
                        <"]\n">
                      ) ($ VSub_Name "$USAGE_LICENSE") 
                      (SQ <"\n"> <"[+NAME?locate - locate files in pathname database]\n"> 
                        <"[+DESCRIPTION?"> <Lit_EscapedChar "\\b"> <locate> <Lit_EscapedChar "\\b"> 
                        <" matches file patterns in a pathname database\n"> <"\tthat is updated daily by "> <Lit_EscapedChar "\\b"> <updatedb> <Lit_EscapedChar "\\b"> <"(1).]\n"> 
                        <"[d:database?File database path.]:[path]\n"> <"[i:ignorecase?Ignore case in all pattern match expressions.]\n"> <"[n:show?Show underlying "> 
                        <Lit_EscapedChar "\\b"> <tw> <Lit_EscapedChar "\\b"> <"(1) command but do not execute.]\n"> <"\n"> <"pattern ...\n"> <"\n"> 
                        <"[+OPERANDS]{\n"> <"\t[+pattern?One or more file patterns.\n"> <"\t\t/ is matched by pattern metacharacters.]\n"> <"}\n"> 
                        <"[+ENVIRONMENT]{\n"> <"\t[+FINDCODES?Path name of locate database.]\n"> 
                        <"\t[+LOCATE_PATH?Alternate path name of locate database.]\n"> <"}\n"> <"[+FILES]{\n"> <"\t[+lib/find/codes?Default locate database.]\n"> <"}\n"> <"[+SEE ALSO?"> 
                        <Lit_EscapedChar "\\b"> <updatedb> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <tw> <Lit_EscapedChar "\\b"> 
                        <"(1)]\n">
                      )
                    }
                  spids: [110]
                )
              ]
              spids: [110]
            )
          ]
          spids: [100 101 164 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ARGV0) op:Equal rhs:{(DQ )} spids:[169])]
              spids: [169]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:USAGE)
                  op: Equal
                  rhs: {(DQ ("nd:[path] pattern ..."))}
                  spids: [174]
                )
              ]
              spids: [174]
            )
          ]
          spids: [166 167 180 -1]
        )
      ]
      spids: [73 98 182]
    )
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:OPTIND) op:Equal rhs:{(0)} spids:[192])]
              spids: [192]
            )
            (C {(getopts)} {($ VSub_Name "$ARGV0")} {(DQ ($ VSub_Name "$USAGE"))} {(OPT)} {(SQ <"-?">)})
            (C {(exit)} {(2)})
          ]
          spids: [189]
        )
      spids: [185 188]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:db) op:Equal rhs:{(SQ )} spids:[218])]
      spids: [218]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:opts) op:Equal rhs:{(SQ )} spids:[220])]
      spids: [220]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:show) op:Equal rhs:{(SQ )} spids:[222])]
      spids: [222]
    )
    (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: [{(d)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:db)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$db") (":") ($ VSub_Name "$OPTARG"))}
                          spids: [248]
                        )
                      ]
                      spids: [248]
                    )
                  ]
                  spids: [245 246 256 -1]
                )
                (case_arm
                  pat_list: [{(i)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:opts)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$opts") (" -I"))}
                          spids: [262]
                        )
                      ]
                      spids: [262]
                    )
                  ]
                  spids: [259 260 269 -1]
                )
                (case_arm
                  pat_list: [{(n)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:show)
                          op: Equal
                          rhs: {(DQ ("print --"))}
                          spids: [275]
                        )
                      ]
                      spids: [275]
                    )
                  ]
                  spids: [272 273 281 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [(C {(usage)})]
                  spids: [284 285 290 -1]
                )
              ]
              spids: [238 242 293]
            )
          ]
          spids: [236 295]
        )
    )
    (Case
      to_match: {($ VSub_Name "$db")}
      arms: [
        (case_arm
          pat_list: [{(SQ )}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:db)
                  op: Equal
                  rhs: {(${ VSub_Name LOCATE_PATH)}
                  spids: [307]
                )
              ]
              spids: [307]
            )
          ]
          spids: [-1 305 312 -1]
        )
      ]
      spids: [297 301 314]
    )
    (Case
      to_match: {($ VSub_Name "$db")}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:db)
                  op: Equal
                  rhs: 
                    {
                      (DQ (-F) 
                        (BracedVarSub
                          token: <VSub_Name db>
                          suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(":")})
                          spids: [329 333]
                        )
                      )
                    }
                  spids: [326]
                )
              ]
              spids: [326]
            )
          ]
          spids: [322 324 336 -1]
        )
      ]
      spids: [316 320 338]
    )
    (C {(shift)} {($ VSub_Name "$OPTIND") (-1)})
    (Case
      to_match: {($ VSub_Pound "$#")}
      arms: [
        (case_arm pat_list:[{(0)}] action:[(C {(usage)})] spids:[351352357-1])
        (case_arm pat_list:[{(1)}] spids:[359360362-1])
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pat)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [367]
                )
              ]
              spids: [367]
            )
            (While
              cond: [(C {(Lit_Other ":")})]
              body: 
                (DoGroup
                  children: [
                    (C {(shift)})
                    (Case
                      to_match: {($ VSub_Pound "$#")}
                      arms: [
                        (case_arm
                          pat_list: [{(0)}]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [388 389 393 -1]
                        )
                      ]
                      spids: [381 385 396]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pat)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$pat") ("|") ($ VSub_Number "$1"))}
                          spids: [399]
                        )
                      ]
                      spids: [399]
                    )
                  ]
                  spids: [376 407]
                )
            )
            (C {(set)} {(--)} {(DQ ($ VSub_Name "$pat"))})
          ]
          spids: [364 365 419 -1]
        )
      ]
      spids: [345 349 421]
    )
    (C {($ VSub_Name "$show")} {(tw)} {(-d)} {(/)} {($ VSub_Name "$opts")} {($ VSub_Name "$db")} {(-f)} 
      {(DQ ($ VSub_At "$@"))}
    )
  ]
)