(command.CommandList children: [ (command.FuncDef name: _reply_compgen_array body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[42]) op: Equal spids: [42] ) (assign_pair lhs: (lhs_expr.LhsName name:wlist spids:[44]) op: Equal spids: [44] ) ] spids: [40] ) (command.ForEach iter_name: i iter_words: [ { (word_part.BracedVarSub token: <VSub_Name COMPREPLY> prefix_op: VSub_Bang bracket_op: (bracket_op.WholeArray op_id:Arith_Star) spids: [53 59] ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:q spids:[67]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(quote)} { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(printf)} {(Lit_Other '%') (q)} { (DQ (word_part.BracedVarSub token: <VSub_Name COMPREPLY> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ VSub_DollarName '$i')} ) ) spids: [79 84] ) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [72 86] ) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [68 88] ) } spids: [67] ) ] spids: [65] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:wlist spids:[91]) op: PlusEqual rhs: {($ VSub_DollarName '$q') (word_part.SingleQuotedPart left: <Left_DollarSingleQuote "$'"> tokens: [<Char_OneChar '\\n'>] spids: [93 95] ) } spids: [91] ) ] spids: [91] ) ] spids: [62 98] ) spids: [52 60] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ecur spids:[108]) op: Equal rhs: {(DQ ($ VSub_DollarName '$cur'))} spids: [108] ) ] spids: [106] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ecur spids:[114]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name ecur> suffix_op: (suffix_op.PatSub pat: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>)} replace: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\\\'> ) } replace_mode: Lit_Slash spids: [117] ) spids: [115 123] ) } spids: [114] ) ] spids: [114] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ecur spids:[126]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name ecur> suffix_op: (suffix_op.PatSub pat: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar "\\'">)} replace: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (word_part.EscapedLiteralPart token: <Lit_EscapedChar "\\'"> ) } replace_mode: Lit_Slash spids: [129] ) spids: [127 135] ) } spids: [126] ) ] spids: [126] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:oldifs spids:[145]) op: Equal rhs: {($ VSub_DollarName '$IFS')} spids: [145] ) ] spids: [143] ) (command.SimpleCommand words: [{(eval)} {(SQ <'COMPREPLY=(`compgen -W "$wlist" -- "${ecur}"`)'>)}] more_env: [ (env_pair name: IFS val: { (word_part.SingleQuotedPart left: <Left_DollarSingleQuote "$'"> tokens: [<Char_OneChar '\\n'>] spids: [150 152] ) } spids: [149] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:IFS spids:[161]) op: Equal rhs: {($ VSub_DollarName '$oldifs')} spids: [161] ) ] spids: [161] ) ] spids: [17] ) spids: [13 16] ) (command.FuncDef name: __linux_fstab_unescape body: (command.BraceGroup children: [ (C {(eval)} {($ VSub_Number '$1') (Lit_Other '=') (DQ ("'") (word_part.BracedVarSub token: <VSub_Number 1> prefix_op: VSub_Bang suffix_op: (suffix_op.PatSub pat: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar "\\'">)} replace: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (047)} replace_mode: Lit_Slash spids: [186] ) spids: [183 192] ) ("'") ) } ) (C {(eval)} {($ VSub_Number '$1') (Lit_Other '=') (DQ ("'") (word_part.BracedVarSub token: <VSub_Number 1> prefix_op: VSub_Bang suffix_op: (suffix_op.PatSub pat: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>)} replace: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\\\'> ) } replace_mode: Lit_Percent spids: [206] ) spids: [203 212] ) ("'") ) } ) (C {(eval)} { (DQ ($ VSub_Number '$1') ('=') (Lit_Other '$') ("'") (word_part.BracedVarSub token: <VSub_Number 1> prefix_op: VSub_Bang spids: [224 227] ) ("'") ) } ) ] spids: [174] ) spids: [170 173] ) (command.FuncDef name: _linux_fstab body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[253]) op: Equal rhs: {(word_part.ArrayLiteralPart)} spids: [253] ) ] spids: [253] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fs_spec spids:[265]) op: Equal spids: [265] ) (assign_pair lhs: (lhs_expr.LhsName name:fs_file spids:[267]) op: Equal spids: [267] ) (assign_pair lhs: (lhs_expr.LhsName name:fs_other spids:[269]) op: Equal spids: [269] ) ] spids: [263] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:oldifs spids:[274]) op: Equal rhs: {(DQ ($ VSub_DollarName '$IFS'))} spids: [274] ) ] spids: [272] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(read)} {(-r)} {(fs_spec)} {(fs_file)} {(fs_other)}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$fs_spec')} right: {(Lit_Other '[') (Lit_Pound '#') (Lit_Other ']') (Lit_Other '*') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token:<ControlFlow_Continue continue>) terminator: <Op_Semi ';'> ) ] spids: [16777215 312] ) ] spids: [16777215 317] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number '$1')} right: {(BoolUnary_L -L)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fs_label spids:[338]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name fs_spec> suffix_op: (suffix_op.PatSub pat: {('LABEL=')} replace_mode: Lit_Pound spids: [341] ) spids: [339 344] ) } spids: [338] ) ] spids: [336] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_DollarName '$fs_label')} right: {(DQ ($ VSub_DollarName '$fs_spec'))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(__linux_fstab_unescape)} {(fs_label)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:IFS spids:[370]) op: Equal rhs: { (word_part.SingleQuotedPart left: <Left_DollarSingleQuote "$'"> tokens: [<Char_OneChar '\\0'>] spids: [371 373] ) } spids: [370] ) ] spids: [370] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[376]) op: PlusEqual rhs: { (word_part.ArrayLiteralPart words: [{(DQ ($ VSub_DollarName '$fs_label'))}] ) } spids: [376] ) ] spids: [376] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:IFS spids:[384]) op: Equal rhs: {($ VSub_DollarName '$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)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:IFS spids:[404]) op: Equal rhs: { (word_part.SingleQuotedPart left: <Left_DollarSingleQuote "$'"> tokens: [<Char_OneChar '\\0'>] spids: [405 407] ) } spids: [404] ) ] spids: [404] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$fs_spec')} right: {(Lit_Other '*') (/) (Lit_Other '*')} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[424]) op: PlusEqual rhs: { (word_part.ArrayLiteralPart words: [{(DQ ($ VSub_DollarName '$fs_spec'))}] ) } spids: [424] ) ] spids: [424] ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$fs_file')} right: {(Lit_Other '*') (/) (Lit_Other '*')} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[446]) op: PlusEqual rhs: { (word_part.ArrayLiteralPart words: [{(DQ ($ VSub_DollarName '$fs_file'))}] ) } spids: [446] ) ] spids: [446] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:IFS spids:[454]) op: Equal rhs: {($ VSub_DollarName '$oldifs')} spids: [454] ) ] spids: [454] ) ] spids: [391 458] ) ] spids: [293 461] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.WordTest w:{($ VSub_DollarName '$cur')}) right: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_DollarName '$cur')} right: {(/) (Lit_Other '*')} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:realcur spids:[492]) op: Equal spids: [492] ) ] spids: [490] ) (command.AndOr ops: [Op_DAmp Op_DPipe] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$cur')} right: {(Lit_Other '*') (/)} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:realcur spids:[512]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [ {(readlink)} {(-f)} {(DQ ($ VSub_DollarName '$cur') (.))} ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [514 529] ) (/) ) } spids: [512] ) ] spids: [512] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:realcur spids:[536]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(readlink)} {(-f)} {(DQ ($ VSub_DollarName '$cur'))}] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [537 551] ) } spids: [536] ) ] spids: [536] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.WordTest w:{($ VSub_DollarName '$realcur')}) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dirrealcur spids:[568]) op: Equal rhs: (word.EmptyWord) spids: [568] ) (assign_pair lhs: (lhs_expr.LhsName name:dircur spids:[570]) op: Equal rhs: (word.EmptyWord) spids: [570] ) (assign_pair lhs: (lhs_expr.LhsName name:basecur spids:[572]) op: Equal spids: [572] ) ] spids: [566] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$cur')} right: {(Lit_Other '*') (/) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dirrealcur spids:[593]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name realcur> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ('*')} ) spids: [595 600] ) (/) ) } spids: [593] ) ] spids: [593] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dircur spids:[605]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ('*')} ) spids: [607 612] ) (/) ) } spids: [605] ) ] spids: [605] ) ] spids: [16777215 590] ) ] spids: [16777215 617] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:basecur spids:[620]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {(DQ ($ VSub_DollarName '$dircur'))} ) spids: [621 627] ) } spids: [620] ) ] spids: [620] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[632]) op: Equal spids: [632] ) (assign_pair lhs: (lhs_expr.LhsName name:n spids:[634]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name COMPREPLY> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [635 641] ) } spids: [634] ) ] spids: [630] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Arith_Equal left: (lhs_expr.LhsName name:i spids:[648]) right: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) cond: (arith_expr.ArithBinary op_id: Arith_Less left: (arith_expr.ArithVarRef token:<Lit_ArithVarLike i>) right: (arith_expr.ArithWord w:{($ VSub_DollarName '$n')}) ) update: (arith_expr.UnaryAssign op_id: Node_PostDPlus child: (lhs_expr.LhsName name:i spids:[660]) ) body: (command.DoGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (word_part.BracedVarSub token: <VSub_Name COMPREPLY> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithVarRef token: <Lit_ArithVarLike i> ) ) spids: [673 678] ) ) } right: {(DQ ($ VSub_DollarName '$realcur')) (Lit_Other '*')} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[693]) op: PlusEqual rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.AndOr ops: [Op_DAmp] children: [ (command.SimpleCommand words: [ {(cd)} { (DQ ($ VSub_DollarName '$dircur' ) ) } ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(compgen)} {(-f)} {(-d)} {(-P)} { (DQ ($ VSub_DollarName '$dircur' ) ) } {(-X)} { (DQ ('!') (word_part.BracedVarSub token: <VSub_Name COMPREPLY> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithVarRef token: < Lit_ArithVarLike i > ) ) suffix_op: (suffix_op.StringUnary op_id: VOp1_DPound arg_word: { (DQ ($ VSub_DollarName '$dirrealcur' ) ) } ) spids: [729 738] ) ) } {(--)} {(DQ ($ VSub_DollarName '$basecur'))} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [696 747] ) } ] ) } spids: [693] ) ] spids: [693] ) ] ) ] spids: [667 752] ) ) ] spids: [16777215 563] ) ] spids: [16777215 755] ) ] spids: [16777215 487] ) ] spids: [16777215 758] ) (C {(_reply_compgen_array)}) ] spids: [250] ) spids: [246 249] ) (command.AndOr ops: [Op_DAmp] children: [ (command.FuncDef name: _umount body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cur spids:[776]) op: Equal spids: [776] ) (assign_pair lhs: (lhs_expr.LhsName name:prev spids:[778]) op: Equal spids: [778] ) (assign_pair lhs: (lhs_expr.LhsName name:words spids:[780]) op: Equal spids: [780] ) (assign_pair lhs: (lhs_expr.LhsName name:cword spids:[782]) op: Equal spids: [782] ) ] spids: [774] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(_init_completion)}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$prev'))} arms: [ (case_arm pat_list: [{(-t)}] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:split spids:[812]) op: Equal rhs: {(false)} spids: [812] ) ] spids: [810] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(Lit_Other '?') (Lit_Other '*') (Lit_Comma ',') (Lit_Other '*') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:prev spids:[837]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(',*')} ) spids: [839 843] ) ) } spids: [837] ) ] spids: [837] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cur spids:[847]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.StringUnary op_id: VOp1_DPound arg_word: {('*,')} ) spids: [849 853] ) ) } spids: [847] ) ] spids: [847] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:split spids:[857]) op: Equal rhs: {(true)} spids: [857] ) ] spids: [857] ) ] spids: [16777215 834] ) ] spids: [16777215 861] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[864]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.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_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [867 887] ) } ] ) } spids: [864] ) ] spids: [864] ) (C {(_fstypes)}) (command.AndOr ops: [Op_DAmp] children: [ (C {($ VSub_DollarName '$split')}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[899]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.BracedVarSub token: <VSub_Name COMPREPLY> bracket_op: (bracket_op.WholeArray op_id:Lit_At) suffix_op: (suffix_op.PatSub pat: {} replace: {($ VSub_DollarName '$prev') (',')} replace_mode: Lit_Pound spids: [907] ) spids: [902 912] ) } ] ) } spids: [899] ) ] spids: [899] ) ] ) (command.ControlFlow token: <ControlFlow_Return return> ) ] spids: [802 803 920 16777215] ) (case_arm pat_list: [{(-O)}] action: [(command.ControlFlow token:<ControlFlow_Return return>)] spids: [923 924 934 16777215] ) ] spids: [793 799 937] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$cur'))} right: {(-) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[960]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ <'-V -h -v -n -r -d -i -a -t -O -f -l\n'> <' --no-canonicalize --fake'> ) } {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [963 980] ) } ] ) } spids: [960] ) ] spids: [960] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.WordTest w:{($ VSub_DollarName '$COMPREPLY')}) ) (command.ControlFlow token: <ControlFlow_Return return> ) ] ) ] spids: [16777215 957] ) ] spids: [16777215 996] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolUnary op_id:BoolUnary_r child:{(/proc/mounts)}) ) terminator: <Op_Semi ';'> ) ] action: [ (command.SimpleCommand words: [{(_linux_fstab)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(/proc/mounts)} ) ] ) ] spids: [16777215 1011] ) ] else_action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:IFS spids:[1034]) op: Equal rhs: { (word_part.SingleQuotedPart left: <Left_DollarSingleQuote "$'"> tokens: [<Char_OneChar '\\n'>] spids: [1035 1037] ) } spids: [1034] ) ] spids: [1032] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[1040]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'$( mount | cut -d" " -f 3 )'>)} {(--)} {(DQ ($ VSub_DollarName '$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)}) ] ) ] )