(CommandList children: [ (FuncDef name: _reply_compgen_array body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:i) op:Equal spids:[42]) (assign_pair lhs:(LhsName name:wlist) op:Equal spids:[44]) ] spids: [40] ) (ForEach iter_name: i iter_words: [ { (BracedVarSub token: <VSub_Name COMPREPLY> prefix_op: VSub_Bang bracket_op: (WholeArray op_id:Arith_Star) spids: [53 59] ) } ] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:q) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(quote)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(printf)} {(Lit_Other "%") (q)} { (DQ (BracedVarSub token: <VSub_Name COMPREPLY> bracket_op: (ArrayIndex expr: (ArithWord w: {($ VSub_Name "$i")} ) ) spids: [79 84] ) ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [72 86] ) ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [68 88] ) } spids: [67] ) ] spids: [65] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:wlist) op: PlusEqual rhs: {($ VSub_Name "$q") (SQ <Lit_EscapedChar "\\n">)} spids: [91] ) ] spids: [91] ) ] spids: [62 98] ) spids: [52 60] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:ecur) op: Equal rhs: {(DQ ($ VSub_Name "$cur"))} spids: [108] ) ] spids: [106] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ecur) op: Equal rhs: { (BracedVarSub token: <VSub_Name ecur> suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar "\\\\">)} replace: {(EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) (EscapedLiteralPart token: <Lit_EscapedChar "\\\\"> ) } do_all: True do_prefix: False do_suffix: False ) spids: [115 123] ) } spids: [114] ) ] spids: [114] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ecur) op: Equal rhs: { (BracedVarSub token: <VSub_Name ecur> suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar "\\'">)} replace: {(EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) (EscapedLiteralPart token: <Lit_EscapedChar "\\'"> ) } do_all: True do_prefix: False do_suffix: False ) spids: [127 135] ) } spids: [126] ) ] spids: [126] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:oldifs) op: Equal rhs: {($ VSub_Name "$IFS")} spids: [145] ) ] spids: [143] ) (SimpleCommand words: [{(eval)} {(SQ <"COMPREPLY=(`compgen -W \"$wlist\" -- \"${ecur}\"`)">)}] more_env: [(env_pair name:IFS val:{(SQ <Lit_EscapedChar "\\n">)} spids:[149])] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {($ VSub_Name "$oldifs")} spids: [161] ) ] spids: [161] ) ] spids: [17] ) spids: [13 16] ) (FuncDef name: __linux_fstab_unescape body: (BraceGroup children: [ (C {(eval)} {($ VSub_Number "$1") (Lit_Other "=") (DQ ("'") (BracedVarSub token: <VSub_Number 1> prefix_op: VSub_Bang suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar "\\'">)} replace: {(EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) (047)} do_all: True do_prefix: False do_suffix: False ) spids: [183 192] ) ("'") ) } ) (C {(eval)} {($ VSub_Number "$1") (Lit_Other "=") (DQ ("'") (BracedVarSub token: <VSub_Number 1> prefix_op: VSub_Bang suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar "\\\\">)} replace: {(EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) (EscapedLiteralPart token: <Lit_EscapedChar "\\\\"> ) } do_all: False do_prefix: False do_suffix: True ) spids: [203 212] ) ("'") ) } ) (C {(eval)} { (DQ ($ VSub_Number "$1") ("=") (Lit_Other "$") ("'") (BracedVarSub token: <VSub_Number 1> prefix_op: VSub_Bang spids: [224 227] ) ("'") ) } ) ] spids: [174] ) spids: [170 173] ) (FuncDef name: _linux_fstab body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: {(ArrayLiteralPart)} spids: [253] ) ] spids: [253] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:fs_spec) op:Equal spids:[265]) (assign_pair lhs:(LhsName name:fs_file) op:Equal spids:[267]) (assign_pair lhs:(LhsName name:fs_other) op:Equal spids:[269]) ] spids: [263] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:oldifs) op: Equal rhs: {(DQ ($ VSub_Name "$IFS"))} spids: [274] ) ] spids: [272] ) (While cond: [ (Sentence child: (C {(read)} {(-r)} {(fs_spec)} {(fs_file)} {(fs_other)}) terminator: <Op_Semi ";"> ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$fs_spec")} right: {(Lit_Other "[") (Lit_Pound "#") (Lit_Other "]") (Lit_Other "*") } ) ) terminator: <Op_Semi ";"> ) ] action: [ (Sentence child: (ControlFlow token:<ControlFlow_Continue continue>) terminator: <Op_Semi ";"> ) ] spids: [-1 312] ) ] spids: [-1 317] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$1")} right: {(BoolUnary_L -L)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:fs_label) op: Equal rhs: { (BracedVarSub token: <VSub_Name fs_spec> suffix_op: (PatSub pat: {("LABEL=")} do_all: False do_prefix: True do_suffix: False ) spids: [339 344] ) } spids: [338] ) ] spids: [336] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name "$fs_label")} right: {(DQ ($ VSub_Name "$fs_spec"))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(__linux_fstab_unescape)} {(fs_label)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(SQ <Lit_EscapedChar "\\0">)} spids: [370] ) ] spids: [370] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: PlusEqual rhs: { (ArrayLiteralPart words: [{(DQ ($ VSub_Name "$fs_label"))}] ) } spids: [376] ) ] spids: [376] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {($ VSub_Name "$oldifs")} spids: [384] ) ] spids: [384] ) ] spids: [-1 362] ) ] spids: [-1 388] ) ] spids: [-1 333] ) ] else_action: [ (C {(__linux_fstab_unescape)} {(fs_spec)}) (C {(__linux_fstab_unescape)} {(fs_file)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(SQ <Lit_EscapedChar "\\0">)} spids: [404] ) ] spids: [404] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$fs_spec")} right: {(Lit_Other "*") (/) (Lit_Other "*")} ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: PlusEqual rhs: {(ArrayLiteralPart words:[{(DQ ($ VSub_Name "$fs_spec"))}])} spids: [424] ) ] spids: [424] ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$fs_file")} right: {(Lit_Other "*") (/) (Lit_Other "*")} ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: PlusEqual rhs: {(ArrayLiteralPart words:[{(DQ ($ VSub_Name "$fs_file"))}])} spids: [446] ) ] spids: [446] ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {($ VSub_Name "$oldifs")} spids: [454] ) ] spids: [454] ) ] spids: [391 458] ) ] spids: [293 461] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (WordTest w:{($ VSub_Name "$cur")}) right: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name "$cur")} right: {(/) (Lit_Other "*")} ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:realcur) op:Equal spids:[492])] spids: [490] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$cur")} right: {(Lit_Other "*") (/)} ) ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:realcur) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(readlink)} {(-f)} {(DQ ($ VSub_Name "$cur") (.))} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [525] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [514 529] ) (/) ) } spids: [512] ) ] spids: [512] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:realcur) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(readlink)} {(-f)} {(DQ ($ VSub_Name "$cur"))}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [547] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [537 551] ) } spids: [536] ) ] spids: [536] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(WordTest w:{($ VSub_Name "$realcur")})) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:dirrealcur) op: Equal rhs: {(SQ )} spids: [568] ) (assign_pair lhs: (LhsName name:dircur) op: Equal rhs: {(SQ )} spids: [570] ) (assign_pair lhs: (LhsName name:basecur) op: Equal spids: [572] ) ] spids: [566] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$cur")} right: {(Lit_Other "*") (/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dirrealcur) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name realcur> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ("*")} ) spids: [595 600] ) (/) ) } spids: [593] ) ] spids: [593] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dircur) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name cur> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ("*")} ) spids: [607 612] ) (/) ) } spids: [605] ) ] spids: [605] ) ] spids: [-1 590] ) ] spids: [-1 617] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:basecur) op: Equal rhs: { (BracedVarSub token: <VSub_Name cur> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(DQ ($ VSub_Name "$dircur"))} ) spids: [621 627] ) } spids: [620] ) ] spids: [620] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal spids: [632] ) (assign_pair lhs: (LhsName name:n) op: Equal rhs: { (BracedVarSub token: <VSub_Name COMPREPLY> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [635 641] ) } spids: [634] ) ] spids: [630] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w:{($ VSub_Name "$n")}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (BracedVarSub token: <VSub_Name COMPREPLY> bracket_op: (ArrayIndex expr: (ArithVarRef name:i) ) spids: [673 678] ) ) } right: {(DQ ($ VSub_Name "$realcur")) (Lit_Other "*")} ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: PlusEqual rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (SimpleCommand words: [ {(cd)} { (DQ ($ VSub_Name "$dircur")) } ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [704] ) ] ) (C {(compgen)} {(-f)} {(-d)} {(-P)} {(DQ ($ VSub_Name "$dircur"))} {(-X)} { (DQ ("!") (BracedVarSub token: <VSub_Name COMPREPLY> bracket_op: (ArrayIndex expr: (ArithVarRef name: i ) ) suffix_op: (StringUnary op_id: VOp1_DPound arg_word: { (DQ ($ VSub_Name "$dirrealcur" ) ) } ) spids: [729 738] ) ) } {(--)} {(DQ ($ VSub_Name "$basecur"))} ) ] op_id: Op_DAmp ) ] ) left_token: <Left_CommandSub "$("> spids: [696 747] ) } ] ) } spids: [693] ) ] spids: [693] ) ] op_id: Op_DAmp ) ] spids: [667 752] ) ) ] spids: [-1 563] ) ] spids: [-1 755] ) ] spids: [-1 487] ) ] spids: [-1 758] ) (C {(_reply_compgen_array)}) ] spids: [250] ) spids: [246 249] ) (AndOr children: [ (FuncDef name: _umount body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[776]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[778]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[780]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[782]) ] spids: [774] ) (AndOr children: [(C {(_init_completion)}) (ControlFlow token:<ControlFlow_Return return>)] op_id: Op_DPipe ) (Case to_match: {(DQ ($ VSub_Name "$prev"))} arms: [ (case_arm pat_list: [{(-t)}] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:split) op: Equal rhs: {(false)} spids: [812] ) ] spids: [810] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$cur"))} right: {(Lit_Other "?") (Lit_Other "*") (Lit_Comma ",") (Lit_Other "*") } ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prev) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name cur> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(",*")} ) spids: [839 843] ) ) } spids: [837] ) ] spids: [837] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cur) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name cur> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {("*,")} ) spids: [849 853] ) ) } spids: [847] ) ] spids: [847] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:split) op: Equal rhs: {(true)} spids: [857] ) ] spids: [857] ) ] spids: [-1 834] ) ] spids: [-1 861] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} { (SQ <"adfs affs autofs btrfs cifs coda\n"> < " cramfs debugfs devpts efs ext2 ext3 ext4 fuse hfs hfsplus hpfs\n" > <" iso9660 jfs minix msdos ncpfs nfs nfs4 ntfs ntfs-3g proc qnx4\n"> < " ramfs reiserfs romfs squashfs smbfs sysv tmpfs ubifs udf ufs\n" > <" umsdos usbfs vfat xfs"> ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [867 887] ) } ] ) } spids: [864] ) ] spids: [864] ) (C {(_fstypes)}) (AndOr children: [ (C {($ VSub_Name "$split")}) (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 "$prev") (",")} do_all: False do_prefix: True do_suffix: False ) spids: [902 912] ) } ] ) } spids: [899] ) ] spids: [899] ) ] op_id: Op_DAmp ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [802 803 920 -1] ) (case_arm pat_list: [{(-O)}] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [923 924 934 -1] ) ] spids: [793 799 937] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$cur"))} right: {(-) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} { (SQ <"-V -h -v -n -r -d -i -a -t -O -f -l\n"> <" --no-canonicalize --fake"> ) } {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [963 980] ) } ] ) } spids: [960] ) ] spids: [960] ) (AndOr children: [ (DBracket expr: (WordTest w:{($ VSub_Name "$COMPREPLY")}) ) (ControlFlow token: <ControlFlow_Return return> ) ] op_id: Op_DAmp ) ] spids: [-1 957] ) ] spids: [-1 996] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(BoolUnary op_id:BoolUnary_r child:{(/proc/mounts)})) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [{(_linux_fstab)}] redirects: [ (Redir op_id: Redir_Less fd: -1 arg_word: {(/proc/mounts)} spids: [1024] ) ] ) ] spids: [-1 1011] ) ] else_action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(SQ <Lit_EscapedChar "\\n">)} spids: [1034] ) ] spids: [1032] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} {(SQ <"$( mount | cut -d\" \" -f 3 )">)} {(--)} {(DQ ($ VSub_Name "$cur"))} ) ] ) left_token: <Left_CommandSub "$("> spids: [1043 1059] ) } ] ) } spids: [1040] ) ] spids: [1040] ) ] spids: [1029 1064] ) ] spids: [771] ) spids: [767 770] ) (C {(complete)} {(-F)} {(_umount)} {(-o)} {(dirnames)} {(umount)}) ] op_id: Op_DAmp ) ] )