(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 "$@"))} ) ] )