(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: [16777215 312] ) ] spids: [16777215 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: [16777215 362] ) ] spids: [16777215 388] ) ] spids: [16777215 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: [16777215 590] ) ] spids: [16777215 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: [16777215 563] ) ] spids: [16777215 755] ) ] spids: [16777215 487] ) ] spids: [16777215 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: [16777215 834] ) ] spids: [16777215 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 16777215] ) (case_arm pat_list: [{(-O)}] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [923 924 934 16777215] ) ] 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: [16777215 957] ) ] spids: [16777215 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: 16777215 arg_word: {(/proc/mounts)} spids: [1024] ) ] ) ] spids: [16777215 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 ) ] )