(command.CommandList children: [ (command.FuncDef name: __gtar_parse_help_opt body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:opttype spids:[127]) op: Equal spids: [127] ) (assign_pair lhs: (lhs_expr.LhsName name:arg spids:[129]) op: Equal spids: [129] ) (assign_pair lhs: (lhs_expr.LhsName name:opt spids:[131]) op: Equal spids: [131] ) (assign_pair lhs: (lhs_expr.LhsName name:separator spids:[133]) op: Equal spids: [133] ) (assign_pair lhs: (lhs_expr.LhsName name:optvar spids:[135]) op: Equal spids: [135] ) ] spids: [125] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:opttype spids:[138]) op: Equal rhs: {(long)} spids: [138] ) ] spids: [138] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:arg spids:[142]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [142] ) ] spids: [142] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:opt spids:[148]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [148] ) ] spids: [148] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:separator spids:[154]) op: Equal rhs: {(DQ (' '))} spids: [154] ) ] spids: [154] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$opt'))} arms: [ (case_arm pat_list: [{(--) (Lit_Other '*')}] spids: [170 172 175 16777215] ) (case_arm pat_list: [{(-) (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\?'>)}] action: [(command.ControlFlow token:<ControlFlow_Return return>)] spids: [178 180 185 16777215] ) (case_arm pat_list: [{(-) (Lit_Other '*')}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:opttype spids:[193]) op: Equal rhs: {(short)} spids: [193] ) ] spids: [193] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:opt spids:[197]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name opt> suffix_op: (suffix_op.StringUnary op_id:VOp1_DPound arg_word:{(-)}) spids: [198 202] ) } spids: [197] ) ] spids: [197] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:separator spids:[205]) op: Equal rhs: (word.EmptyWord) spids: [205] ) ] spids: [205] ) ] spids: [188 190 208 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (command.SimpleCommand words: [{(echo)} {(DQ ('not an option ') ($ VSub_DollarName '$opt'))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [211 212 231 16777215] ) ] spids: [161 167 234] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:opt spids:[242]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name opt> suffix_op: (suffix_op.PatSub pat: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\['>) ('*')} replace: {} replace_mode: Lit_Slash spids: [245] ) spids: [243 250] ) } spids: [242] ) ] spids: [242] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:opt spids:[253]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name opt> suffix_op: (suffix_op.PatSub pat: {('=*')} replace: {('=')} replace_mode: Lit_Slash spids: [256] ) spids: [254 261] ) } spids: [253] ) ] spids: [253] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:opt spids:[269]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name opt> suffix_op: (suffix_op.PatSub pat: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('*')} replace: {} replace_mode: Lit_Slash spids: [272] ) spids: [270 277] ) } spids: [269] ) ] spids: [269] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:opt spids:[280]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name opt> suffix_op: (suffix_op.PatSub pat: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar "\\'">) ('*')} replace: {} replace_mode: Lit_Slash spids: [283] ) spids: [281 288] ) } spids: [280] ) ] spids: [280] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:opt spids:[291]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name opt> suffix_op: (suffix_op.PatSub pat: {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\;'>) ('*')} replace: {} replace_mode: Lit_Slash spids: [294] ) spids: [292 299] ) } spids: [291] ) ] spids: [291] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:optvar spids:[303]) op: Equal rhs: {($ VSub_DollarName '$opttype') (SQ <_arg_>) ($ VSub_DollarName '$arg')} spids: [303] ) ] spids: [303] ) (C {(eval)} { (DQ ($ VSub_DollarName '$optvar') ('=') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ($ VSub_DollarName '$optvar') ($ VSub_DollarName '$separator') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_DollarName '$opt') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } ) ] spids: [122] ) spids: [118 121] ) (command.FuncDef name: __gtar_parse_help_line body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(lhs_expr.LhsName name:i spids:[340]) op:Equal spids:[340])] spids: [338] ) (command.ForEach iter_name: i iter_words: [{($ VSub_Number '$1')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$i'))} arms: [ (case_arm pat_list: [{(--) (Lit_Other '*')} {(-) (Lit_Other '*')}] action: [ (C {(__gtar_parse_help_opt)} {(DQ ($ VSub_DollarName '$i'))} {(DQ ($ VSub_Number '$2'))} ) ] spids: [369 374 388 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (command.Sentence child: (command.ControlFlow token:<ControlFlow_Break break>) terminator: <Op_Semi ';'> ) ] spids: [396 397 16777215 404] ) ] spids: [356 362 404] ) ] spids: [353 407] ) spids: [349 351] ) ] spids: [335] ) spids: [331 334] ) (command.FuncDef name: __gnu_tar_parse_help body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:str spids:[422]) op: Equal spids: [422] ) (assign_pair lhs: (lhs_expr.LhsName name:line spids:[424]) op: Equal spids: [424] ) (assign_pair lhs: (lhs_expr.LhsName name:arg spids:[426]) op: Equal spids: [426] ) ] spids: [420] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (command.SimpleCommand words: [{(read)} {(line)}] more_env: [(env_pair name:IFS val:(word.EmptyWord) spids:[431])] ) 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_EqualTilde left: {(DQ ($ VSub_DollarName '$line'))} right: {(Lit_Other '^') (Lit_Other '[') (Lit_Other '[') (Lit_Other ':') (blank) (Lit_Other ':') (Lit_Other ']') (Lit_Other ']') (Lit_Other '{') (1) (Lit_Other ',') (10) (Lit_Other '}') (Lit_Other '(') (Lit_Other '(') (Lit_Other '(') (Lit_Other ',') (Lit_Other '[') (Lit_Other '[') (Lit_Other ':') (blank) (Lit_Other ':') (Lit_Other ']') (Lit_Other ']') (Lit_Other ')') (Lit_Other '?') (Lit_Other '(') (--) (Lit_Other '?') (Lit_Other '(') (Lit_Other '[') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\]'>) (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\['> ) (a-zA-Z0-9) (Lit_Other '?') (-) (Lit_Other '=') (Lit_Other ']') (Lit_Other '+') (Lit_Other ')') (Lit_Other ')') (Lit_Other '(') (Lit_Other ',') (Lit_Other '[') (Lit_Other '[') (Lit_Other ':') (space) (Lit_Other ':') (Lit_Other ']') (Lit_Other ']') (Lit_Other ')') (Lit_Other '?') (Lit_Other ')') (Lit_Other '+') (Lit_Other ')') (Lit_Other .) (Lit_Other '*') (Lit_Other '$') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:line spids:[535]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [536 541] ) } spids: [535] ) ] spids: [535] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:str spids:[544]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name line> suffix_op: (suffix_op.PatSub pat: {(',')} replace: {(' ')} replace_mode: Lit_Slash spids: [548] ) spids: [546 553] ) ) } spids: [544] ) ] spids: [544] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:arg spids:[574]) op: Equal rhs: {(none)} spids: [574] ) ] spids: [574] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_DollarName '$line'))} right: {(--) (Lit_Other '[') (A-Za-z0-9-) (Lit_Other ']') (Lit_Other '+') (Lit_Other '(') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\['>) (Lit_Other '?') (Lit_Other ')') (Lit_Other '=') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.AndOr ops: [Op_DAmp Op_DPipe] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_n child: { (DQ (word_part.BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {(Lit_Digits 1)} ) ) spids: [610 615] ) ) } ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:arg spids:[622]) op: Equal rhs: {(opt)} spids: [622] ) ] spids: [622] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:arg spids:[627]) op: Equal rhs: {(req)} spids: [627] ) ] spids: [627] ) ] ) ] spids: [16777215 602] ) ] spids: [16777215 631] ) (C {(__gtar_parse_help_line)} {(DQ ($ VSub_DollarName '$str'))} {(DQ ($ VSub_DollarName '$arg'))} ) ] spids: [16777215 531] ) ] spids: [16777215 646] ) ] spids: [438 649] ) redirects: [ (redir.Redir op: <Redir_TLess '<<<'> fd: 16777215 arg_word: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children:[(C {(tar)} {(--help)})]) left_token: <Left_CommandSub '$('> spids: [653 657] ) ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:long_opts spids:[662]) op: Equal rhs: { (DQ (' ') ($ VSub_DollarName '$long_arg_none') (' ') ($ VSub_DollarName '$long_arg_opt') (' ') ($ VSub_DollarName '$long_arg_req') ) } spids: [662] ) ] spids: [662] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:short_opts spids:[677]) op: Equal rhs: { (DQ ($ VSub_DollarName '$short_arg_none') ($ VSub_DollarName '$short_arg_opt') ($ VSub_DollarName '$short_arg_req') ) } spids: [677] ) ] spids: [677] ) ] spids: [417] ) spids: [413 416] ) (command.FuncDef name: __gtar_parse_warnings body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(lhs_expr.LhsName name:line spids:[700]) op:Equal spids:[700])] spids: [698] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (command.SimpleCommand words: [{(read)} {(line)}] more_env: [(env_pair name:IFS val:(word.EmptyWord) spids:[705])] ) 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_EqualTilde left: {($ VSub_DollarName '$line')} right: {(Lit_Other '^') (Lit_Other '[') (Lit_Other '[') (Lit_Other ':') (blank) (Lit_Other ':') (Lit_Other ']') (Lit_Other ']') (Lit_Other '*') (-) (Lit_Other '[') (Lit_Other '[') (Lit_Other ':') (blank) (Lit_Other ':') (Lit_Other ']') (Lit_Other ']') (Lit_Other '*') (Lit_Other '[') (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\`'> ) (word_part.EscapedLiteralPart token:<Lit_EscapedChar "\\'">) (Lit_Other ']') (Lit_Other '(') (Lit_Other '[') (a-zA-Z0-9-) (Lit_Other ']') (Lit_Other '+') (Lit_Other ')') (word_part.EscapedLiteralPart token: <Lit_EscapedChar "\\'"> ) (Lit_Other '$') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ (word_part.BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [763 768] ) (' no-') (word_part.BracedVarSub token: <VSub_Name BASH_REMATCH> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [770 775] ) ) } ) ] spids: [16777215 757] ) ] spids: [16777215 779] ) ] spids: [712 782] ) redirects: [ (redir.Redir op: <Redir_TLess '<<<'> fd: 16777215 arg_word: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(tar)} {(--warning) (Lit_Other '=')}] redirects: [ (redir.Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(1)} ) ] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[787])] ) ] ) left_token: <Left_CommandSub '$('> spids: [786 797] ) ) } ) ] ) ] spids: [695] ) spids: [691 694] ) (command.FuncDef name: __tar_last_char body: (command.BraceGroup children: [ (C {(echo)} { (DQ (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w: { (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Minus left: (arith_expr.ArithWord w: { (word_part.BracedVarSub token: <VSub_Number 1> prefix_op: VSub_Pound spids: [823 826] ) } ) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [821 832] ) } ) ) spids: [817 833] ) ) } ) ] spids: [811] ) spids: [807 810] ) (command.FuncDef name: __tar_parse_old_opt body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:first_word spids:[849]) op: Equal spids: [849] ) (assign_pair lhs: (lhs_expr.LhsName name:char spids:[851]) op: Equal spids: [851] ) ] spids: [847] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.BoolBinary op_id: BoolBinary_eq left: {(DQ ($ VSub_DollarName '$cword'))} right: {(1)} ) right: (bool_expr.LogicalAnd left: (bool_expr.BoolUnary op_id: BoolUnary_n child: {(DQ ($ VSub_DollarName '$cur'))} ) right: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: { (DQ (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Lit_Digits 0)}) length: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [880 886] ) ) } right: {(SQ <->)} ) ) ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:old_opt_progress spids:[901]) op: Equal rhs: {(1)} spids: [901] ) ] spids: [901] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:first_word spids:[910]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [911 916] ) } spids: [910] ) ] spids: [910] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.BoolUnary op_id: BoolUnary_n child: {(DQ ($ VSub_DollarName '$first_word'))} ) right: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: { (DQ (word_part.BracedVarSub token: <VSub_Name first_word> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Lit_Digits 0)}) length: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [930 936] ) ) } right: {(DQ (-))} ) ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:old_opt_used spids:[951]) op: Equal rhs: {(1)} spids: [951] ) ] spids: [951] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_eq left: {($ VSub_DollarName '$old_opt_used')} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:char spids:[980]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name first_word> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Lit_Digits 0)}) length: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [981 987] ) } spids: [980] ) ] spids: [980] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_n child: {(DQ ($ VSub_DollarName '$char'))} ) ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(__tar_is_argreq)} {(DQ ($ VSub_DollarName '$char'))}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:old_opt_parsed spids:[1018]) op: PlusEqual rhs: { (word_part.ArrayLiteralPart words: [{(DQ ($ VSub_DollarName '$char'))}] ) } spids: [1018] ) ] spids: [1018] ) ] spids: [16777215 1015] ) ] spids: [16777215 1026] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:first_word spids:[1029]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name first_word> suffix_op: (suffix_op.StringUnary op_id: VOp1_DPound arg_word: {($ VSub_DollarName '$char')} ) spids: [1030 1034] ) } spids: [1029] ) ] spids: [1029] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:char spids:[1037]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name first_word> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Lit_Digits 0)}) length: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [1038 1044] ) } spids: [1037] ) ] spids: [1037] ) ] spids: [1003 1047] ) ) ] spids: [16777215 977] ) ] spids: [16777215 1050] ) ] spids: [844] ) spids: [840 843] ) (command.FuncDef name: __tar_preparse_cmdline body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:first_arg spids:[1068]) op: Equal spids: [1068] ) (assign_pair lhs: (lhs_expr.LhsName name:my_args spids:[1070]) op: Equal spids: [1070] ) (assign_pair lhs: (lhs_expr.LhsName name:tmparg spids:[1072]) op: Equal spids: [1072] ) (assign_pair lhs: (lhs_expr.LhsName name:i spids:[1074]) op: Equal spids: [1074] ) (assign_pair lhs: (lhs_expr.LhsName name:modes spids:[1076]) op: Equal rhs: {(DQ (ctxurdA))} spids: [1076] ) ] spids: [1066] ) (C {(shift)}) (C {(__tar_parse_old_opt)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:first_arg spids:[1094]) op: Equal rhs: {(1)} spids: [1094] ) ] spids: [1094] ) (command.ForEach iter_name: i iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$i'))} arms: [ (case_arm pat_list: [{(--delete)} {(--test-label)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tar_mode spids:[1127]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name i> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Lit_Digits 2)}) length: (arith_expr.ArithWord w:{(Lit_Digits 100)}) ) spids: [1128 1134] ) } spids: [1127] ) ] spids: [1127] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tar_mode_arg spids:[1137]) op: Equal rhs: {($ VSub_DollarName '$i')} spids: [1137] ) ] spids: [1137] ) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [1121 1124 1144 16777215] ) (case_arm pat_list: [{(--) (Lit_Other '*')}] spids: [1147 1149 1156 16777215] ) (case_arm pat_list: [ {(-) (Lit_Other '*') (Lit_Other '[') ($ VSub_DollarName '$modes') (Lit_Other ']') (Lit_Other '*') } ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tar_mode spids:[1168]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name i> suffix_op: (suffix_op.PatSub pat: {('[^') ($ VSub_DollarName '$modes') (']')} replace: {} replace_mode: Lit_Slash spids: [1171] ) spids: [1169 1177] ) } spids: [1168] ) ] spids: [1168] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tar_mode spids:[1180]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name tar_mode> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Lit_Digits 0)}) length: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [1181 1187] ) } spids: [1180] ) ] spids: [1180] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tar_mode_arg spids:[1190]) op: Equal rhs: {($ VSub_DollarName '$i')} spids: [1190] ) ] spids: [1190] ) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [1159 1165 1197 16777215] ) (case_arm pat_list: [ {(Lit_Other '*') (Lit_Other '[') ($ VSub_DollarName '$modes') (Lit_Other ']') (Lit_Other '*') } ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_eq left: {($ VSub_DollarName '$first_arg')} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tar_mode spids:[1228]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name i> suffix_op: (suffix_op.PatSub pat: {('[^') ($ VSub_DollarName '$modes') (']')} replace: {} replace_mode: Lit_Slash spids: [1231] ) spids: [1229 1237] ) } spids: [1228] ) ] spids: [1228] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tar_mode spids:[1240]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name tar_mode> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{(Lit_Digits 0)}) length: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [1241 1247] ) } spids: [1240] ) ] spids: [1240] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tar_mode_arg spids:[1250]) op: Equal rhs: {($ VSub_DollarName '$i')} spids: [1250] ) ] spids: [1250] ) ] spids: [16777215 1225] ) ] spids: [16777215 1254] ) ] spids: [1200 1205 1257 16777215] ) ] spids: [1112 1118 1260] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:first_arg spids:[1263]) op: Equal rhs: {(0)} spids: [1263] ) ] spids: [1263] ) ] spids: [1109 1267] ) spids: [1103 1107] ) ] spids: [1063] ) spids: [1059 1062] ) (command.FuncDef name: __tar_file_option body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[1285]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [1285] ) ] spids: [1283] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$tar_mode'))} arms: [ (case_arm pat_list: [{(c)}] action: [(C {(_filedir)} {(-d)})] spids: [1301 1302 1314 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(_filedir)} {(DQ ($ VSub_DollarName '$ext'))})] spids: [1317 1318 1328 16777215] ) ] spids: [1292 1298 1331] ) ] spids: [1280] ) spids: [1276 1279] ) (command.FuncDef name: __tar_is_argreq body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:opt spids:[1352]) op: Equal spids: [1352] ) ] spids: [1350] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:opt spids:[1355]) op: Equal rhs: {($ VSub_Number '$1')} spids: [1355] ) ] spids: [1355] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$opt'))} arms: [ (case_arm pat_list: [{(-) (Lit_Other '[') (A-Za-z0-9) (Lit_Other '?') (Lit_Other ']')}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_DollarName '$short_arg_req'))} right: { (word_part.BracedVarSub token: <VSub_Name opt> suffix_op: (suffix_op.StringUnary op_id:VOp1_DPound arg_word:{(-)}) spids: [1384 1388] ) } ) ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] spids: [1368 1373 1399 16777215] ) (case_arm pat_list: [{(Lit_Other '[') (A-Za-z0-9) (Lit_Other '?') (Lit_Other ']')}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_DollarName '$short_arg_req'))} right: {(${ VSub_Name opt)} ) ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] spids: [1402 1406 1430 16777215] ) (case_arm pat_list: [{(--) (Lit_Other '*')}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_DollarName '$long_arg_req'))} right: {(Lit_Other '[') (Lit_Other '[') (Lit_Other ':') (blank) (Lit_Other ':') (Lit_Other ']') (Lit_Other ']') ($ VSub_DollarName '$opt') (Lit_Other '=') (Lit_Other '[') (Lit_Other '[') (Lit_Other ':') (blank) (Lit_Other ':') (Lit_Other ']') (Lit_Other ']') } ) ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] spids: [1433 1435 1472 16777215] ) ] spids: [1359 1365 1475] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [1347] ) spids: [1343 1346] ) (command.FuncDef name: __tar_complete_mode body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:short_modes spids:[1499]) op: Equal spids: [1499] ) (assign_pair lhs: (lhs_expr.LhsName name:has_mode spids:[1501]) op: Equal spids: [1501] ) (assign_pair lhs: (lhs_expr.LhsName name:rawopt spids:[1503]) op: Equal spids: [1503] ) (assign_pair lhs: (lhs_expr.LhsName name:generated spids:[1505]) op: Equal spids: [1505] ) (assign_pair lhs: (lhs_expr.LhsName name:allshort_raw_unused spids:[1509]) op: Equal spids: [1509] ) (assign_pair lhs: (lhs_expr.LhsName name:allshort_raw spids:[1511]) op: Equal spids: [1511] ) (assign_pair lhs: (lhs_expr.LhsName name:filler spids:[1515]) op: Equal spids: [1515] ) (assign_pair lhs: (lhs_expr.LhsName name:i spids:[1517]) op: Equal spids: [1517] ) ] spids: [1497] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:short_modes spids:[1521]) op: Equal rhs: {(DQ (ctx))} spids: [1521] ) ] spids: [1521] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_z child: {(DQ ($ VSub_DollarName '$basic_tar'))} ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:short_modes spids:[1539]) op: Equal rhs: {(DQ (ctxurdA))} spids: [1539] ) ] spids: [1539] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:rawopt spids:[1550]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name cur> suffix_op: (suffix_op.StringUnary op_id:VOp1_Pound arg_word:{(-)}) spids: [1551 1555] ) } spids: [1550] ) ] spids: [1550] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:allshort_raw spids:[1563]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name short_opts> suffix_op: (suffix_op.PatSub pat: {('[- ]')} replace: {} replace_mode: Lit_Slash spids: [1566] ) spids: [1564 1570] ) } spids: [1563] ) ] spids: [1563] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$tar_mode'))} right: {(none)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:filler spids:[1601]) op: Equal rhs: (word.EmptyWord) spids: [1601] ) ] spids: [1601] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.BoolUnary op_id: BoolUnary_z child: {(DQ ($ VSub_DollarName '$cur'))} ) right: (bool_expr.BoolUnary op_id: BoolUnary_z child: {(DQ ($ VSub_DollarName '$basic_tar'))} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:filler spids:[1628]) op: Equal rhs: {(-)} spids: [1628] ) ] spids: [1628] ) ] spids: [16777215 1625] ) ] spids: [16777215 1632] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:generated spids:[1636]) op: Equal rhs: {(DQ )} spids: [1636] ) ] spids: [1636] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Arith_Equal left: (lhs_expr.LhsName name:i spids:[1645]) right: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) cond: (arith_expr.ArithWord w:{(Lit_Digits 1)}) update: (arith_expr.UnaryAssign op_id: Node_PostDPlus child: (lhs_expr.LhsName name:i spids:[1654]) ) body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:c spids:[1666]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name short_modes> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w: {($ VSub_DollarName '$i')} ) length: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [1668 1674] ) ) } spids: [1666] ) ] spids: [1664] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_z child: {(DQ ($ VSub_DollarName '$c'))} ) ) (command.ControlFlow token: <ControlFlow_Break break> ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:generated spids:[1693]) op: PlusEqual rhs: { (DQ (' ') ($ VSub_DollarName '$filler') ($ VSub_DollarName '$cur') ($ VSub_DollarName '$c') ) } spids: [1693] ) ] spids: [1693] ) ] spids: [1661 1702] ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[1706]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ VSub_DollarName '$generated'))}) ] ) left_token: <Left_CommandSub '$('> spids: [1709 1718] ) } ] ) } spids: [1706] ) ] spids: [1706] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 1593] ) ] spids: [16777215 1728] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_eq left: {(DQ ($ VSub_DollarName '$old_opt_progress'))} right: {(0)} ) ) (C {(__tar_is_argreq)} { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(__tar_last_char)} {(DQ ($ VSub_DollarName '$cur'))}) ] ) left_token: <Left_CommandSub '$('> spids: [1761 1767] ) ) } ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[1774]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [{(DQ ($ VSub_DollarName '$cur'))}] ) } spids: [1774] ) ] spids: [1774] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] spids: [16777215 1771] ) ] spids: [16777215 1790] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:allshort_raw_unused spids:[1794]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name allshort_raw> suffix_op: (suffix_op.PatSub pat: {('[') ($ VSub_DollarName '$rawopt') (']')} replace: {} replace_mode: Lit_Slash spids: [1797] ) spids: [1795 1803] ) } spids: [1794] ) ] spids: [1794] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ ($ VSub_DollarName '$tar_mode'))} right: {(none)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:allshort_raw_unused spids:[1824]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name allshort_raw_unused> suffix_op: (suffix_op.PatSub pat: {('[') ($ VSub_DollarName '$short_modes') (']')} replace_mode: Lit_Slash spids: [1827] ) spids: [1825 1832] ) } spids: [1824] ) ] spids: [1824] ) ] spids: [16777215 1821] ) ] spids: [16777215 1835] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:generated spids:[1839]) op: Equal rhs: (word.EmptyWord) spids: [1839] ) ] spids: [1839] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Arith_Equal left: (lhs_expr.LhsName name:i spids:[1846]) right: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) cond: (arith_expr.ArithWord w:{(Lit_Digits 1)}) update: (arith_expr.UnaryAssign op_id: Node_PostDPlus child: (lhs_expr.LhsName name:i spids:[1855]) ) body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:c spids:[1867]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name allshort_raw_unused> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{($ VSub_DollarName '$i')}) length: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [1869 1875] ) ) } spids: [1867] ) ] spids: [1865] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_z child: {(DQ ($ VSub_DollarName '$c'))} ) ) (command.ControlFlow token:<ControlFlow_Break break>) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:generated spids:[1894]) op: PlusEqual rhs: {(DQ (' ') ($ VSub_DollarName '$cur') ($ VSub_DollarName '$c'))} spids: [1894] ) ] spids: [1894] ) ] spids: [1862 1902] ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[1906]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ VSub_DollarName '$generated'))}) ] ) left_token: <Left_CommandSub '$('> spids: [1909 1919] ) } ] ) } spids: [1906] ) ] spids: [1906] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [1494] ) spids: [1490 1493] ) (command.FuncDef name: __gtar_complete_lopts body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(lhs_expr.LhsName name:rv spids:[1942]) op:Equal spids:[1942])] spids: [1940] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[1945]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ VSub_DollarName '$long_opts'))} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1948 1964] ) } ] ) } spids: [1945] ) ] spids: [1945] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:rv spids:[1969]) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1969] ) ] spids: [1969] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$COMPREPLY')} right: {(Lit_Other '*') (BoolBinary_GlobEqual '=')} ) ) (C {(compopt)} {(-o)} {(nospace)}) ] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_DollarName '$rv')} ) ] spids: [1937] ) spids: [1933 1936] ) (command.FuncDef name: __gtar_complete_sopts body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:generated spids:[2010]) op: Equal spids: [2010] ) (assign_pair lhs: (lhs_expr.LhsName name:short_mode_opts spids:[2012]) op: Equal spids: [2012] ) (assign_pair lhs: (lhs_expr.LhsName name:i spids:[2014]) op: Equal spids: [2014] ) (assign_pair lhs: (lhs_expr.LhsName name:c spids:[2016]) op: Equal spids: [2016] ) ] spids: [2008] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:short_mode_opts spids:[2019]) op: Equal rhs: {(DQ (ctxurdA))} spids: [2019] ) ] spids: [2019] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:generated spids:[2025]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name short_opts> suffix_op: (suffix_op.PatSub pat: {('[') ($ VSub_DollarName '$short_mode_opts') (']')} replace: {} replace_mode: Lit_Slash spids: [2028] ) spids: [2026 2034] ) } spids: [2025] ) ] spids: [2025] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Arith_Equal left: (lhs_expr.LhsName name:i spids:[2042]) right: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) cond: (arith_expr.ArithWord w:{(Lit_Digits 1)}) update: (arith_expr.UnaryAssign op_id: Node_PostDPlus child: (lhs_expr.LhsName name:i spids:[2051]) ) body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:c spids:[2061]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name allshort_raw_unused> suffix_op: (suffix_op.Slice begin: (arith_expr.ArithWord w:{($ VSub_DollarName '$i')}) length: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [2063 2069] ) ) } spids: [2061] ) ] spids: [2061] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_z child: {(DQ ($ VSub_DollarName '$c'))} ) ) (command.ControlFlow token:<ControlFlow_Break break>) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:generated spids:[2088]) op: PlusEqual rhs: {(DQ (' ') ($ VSub_DollarName '$cur') ($ VSub_DollarName '$c'))} spids: [2088] ) ] spids: [2088] ) ] spids: [2058 2096] ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[2100]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ VSub_DollarName '$generated'))} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [2103 2119] ) } ] ) } spids: [2100] ) ] spids: [2100] ) ] spids: [2005] ) spids: [2001 2004] ) (command.FuncDef name: __tar_try_mode body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$cur'))} arms: [ (case_arm pat_list: [{(--) (Lit_Other '*')}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_n child: {(DQ ($ VSub_DollarName '$basic_tar'))} ) ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) (C {(__gtar_complete_lopts)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_QMark '$?')} ) ] spids: [2143 2145 2177 16777215] ) (case_arm pat_list: [{(-) (Lit_Other '*')}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_n child: {(DQ ($ VSub_DollarName '$basic_tar'))} ) ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(__tar_complete_mode)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] spids: [2181 2183 2217 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.BoolBinary op_id: BoolBinary_eq left: {(DQ ($ VSub_DollarName '$cword'))} right: {(1)} ) right: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$tar_mode'))} right: {(none)} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(__tar_complete_mode)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] spids: [16777215 2250] ) ] spids: [16777215 2262] ) ] spids: [2221 2222 2265 16777215] ) ] spids: [2134 2140 2268] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [2131] ) spids: [2127 2130] ) (command.FuncDef name: __tar_adjust_PREV_from_old_option body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.BoolBinary op_id: BoolBinary_eq left: {(DQ ($ VSub_DollarName '$old_opt_used'))} right: {(1)} ) right: (bool_expr.LogicalAnd left: (bool_expr.BoolBinary op_id: BoolBinary_gt left: {(DQ ($ VSub_DollarName '$cword'))} right: {(1)} ) right: (bool_expr.BoolBinary op_id: BoolBinary_lt left: {(DQ ($ VSub_DollarName '$cword'))} right: { (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w: { (word_part.BracedVarSub token: <VSub_Name old_opt_parsed> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id: Lit_At ) spids: [2332 2338] ) } ) right: (arith_expr.ArithWord w:{(Lit_Digits 2)}) ) spids: [2330 2345] ) } ) ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:prev spids:[2358]) op: Equal rhs: { (DQ (-) (word_part.BracedVarSub token: <VSub_Name old_opt_parsed> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithBinary op_id: Arith_Minus left: (arith_expr.ArithWord w:{($ VSub_DollarName '$cword')}) right: (arith_expr.ArithWord w:{(Lit_Digits 2)}) ) ) spids: [2361 2372] ) ) } spids: [2358] ) ] spids: [2358] ) ] spids: [16777215 2351] ) ] spids: [16777215 2376] ) ] spids: [2283] ) spids: [2279 2282] ) (command.FuncDef name: __tar_extract_like_mode body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(lhs_expr.LhsName name:i spids:[2391]) op:Equal spids:[2391])] spids: [2389] ) (command.ForEach iter_name: i iter_words: [{(x)} {(d)} {(t)} {(delete)}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$tar_mode'))} right: {(DQ ($ VSub_DollarName '$i'))} ) ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] spids: [2409 2433] ) spids: [2399 2407] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [2386] ) spids: [2382 2385] ) (command.FuncDef name: __tar_try_list_archive body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tarball spids:[2453]) op: Equal spids: [2453] ) (assign_pair lhs: (lhs_expr.LhsName name:tarbin spids:[2455]) op: Equal spids: [2455] ) (assign_pair lhs: (lhs_expr.LhsName name:untar spids:[2457]) op: Equal spids: [2457] ) ] spids: [2451] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(__tar_extract_like_mode)}) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (C {(set)} {(--)} { (DQ (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [2485 2490] ) ) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tarbin spids:[2494]) op: Equal rhs: {($ VSub_Number '$1')} spids: [2494] ) ] spids: [2494] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:untar spids:[2498]) op: Equal rhs: {(DQ (tf))} spids: [2498] ) ] spids: [2498] ) (C {(shift)}) (command.SimpleCommand words: [{(read)} {(tarball)}] redirects: [ (redir.Redir op: <Redir_TLess '<<<'> fd: 16777215 arg_word: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(printf)} {(--)} {(SQ <'%s\\n'>)} {(DQ ($ VSub_At '$@'))}) (C {(sed)} {(-n)} { (DQ ('/^.') (Lit_Other '\\') ('{1,') (Lit_Other '\\') ('}') ($ VSub_DollarName '$regex') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (/p) ) } ) (C {(tee)} {(/tmp/jetel)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [2514 2551] ) ) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolUnary op_id: BoolUnary_n child: {(DQ ($ VSub_DollarName '$tarball'))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:IFS spids:[2573]) op: Equal rhs: { (word_part.SingleQuotedPart left: <Left_DollarSingleQuote "$'"> tokens: [<Char_OneChar '\\n'>] spids: [2574 2576] ) } spids: [2573] ) ] spids: [2571] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[2579]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-o)} {(filenames)} {(-W)} { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(read)} {(line)}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (C {(printf)} { (DQ ('%q') (Lit_Other '\\') (n)) } { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(printf)} {(Lit_Other '%') (q) (DQ (Lit_Other '\\') (n)) } {(DQ ($ VSub_DollarName '$line'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [2613 2626] ) ) } ) ] spids: [2601 2630] ) redirects: [ (redir.Redir op: <Redir_TLess '<<<'> fd: 16777215 arg_word: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [ { ($ VSub_DollarName '$tarbin' ) } { ($ VSub_DollarName '$untar' ) } { (DQ ($ VSub_DollarName '$tarball' ) ) } ] redirects: [ (redir.Redir op: <Redir_Great '2>' > fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [2634 2645] ) ) } ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [2591 2649] ) ) } {(--)} { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(printf)} {(DQ ('%q') (Lit_Other '\\') (n))} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [2655 2667] ) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [2581 2669] ) } ] ) } spids: [2579] ) ] spids: [2579] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 2568] ) ] spids: [16777215 2678] ) ] spids: [2448] ) spids: [2444 2447] ) (command.FuncDef name: __tar_cleanup_prev body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_DollarName '$prev'))} right: {(Lit_Other '^') (-) (Lit_Other '[') (a-zA-Z0-9) (Lit_Other '?') (Lit_Other ']') (Lit_Other '*') (Lit_Other '$') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:prev spids:[2719]) op: Equal rhs: { (DQ (-) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(__tar_last_char)} {(DQ ($ VSub_DollarName '$prev'))}) ] ) left_token: <Left_CommandSub '$('> spids: [2722 2728] ) ) } spids: [2719] ) ] spids: [2719] ) ] spids: [16777215 2712] ) ] spids: [16777215 2732] ) ] spids: [2687] ) spids: [2683 2686] ) (command.FuncDef name: __tar_detect_ext body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tars spids:[2746]) op: Equal rhs: {(SQ <'@(@(tar|gem|spkg)?(.@(Z|[bgx]z|bz2|lz?(ma)))|t@([abglx]z|b?(z)2))'>)} spids: [2746] ) ] spids: [2744] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[2752]) op: Equal rhs: {(DQ ($ VSub_DollarName '$tars'))} spids: [2752] ) ] spids: [2752] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:regex spids:[2758]) op: Equal rhs: { (SQ < '\\(\\(tar\\|gem\\|spkg\\)\\(\\.\\(Z\\|[bgx]z\\|bz2\\|lz\\(ma\\)\\?\\)\\)\\?\\|t\\([abglx]z\\|bz\\?2\\)\\)' > ) } spids: [2758] ) ] spids: [2758] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$tar_mode_arg'))} arms: [ (case_arm pat_list: [{(--) (Lit_Other '*')}] spids: [2774 2776 2783 16777215] ) (case_arm pat_list: [ {(word_part.ExtGlobPart op:<ExtGlob_QMark '?('> arms:[{(-)}] spids:[2786 2788]) (Lit_Other '*') (Lit_Other '[') (cr) (Lit_Other ']') (Lit_Other '*') (f) } ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[2798]) op: Equal rhs: {(SQ <'@(tar|gem|spkg)'>)} spids: [2798] ) ] spids: [2798] ) (command.Case to_match: { (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [2806 2811] ) } arms: [ (case_arm pat_list: [{(Lit_Other '*') (a) (Lit_Other '*')}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[2821]) op: Equal rhs: {(DQ ($ VSub_DollarName '$tars'))} spids: [2821] ) ] spids: [2821] ) ] spids: [2816 2819 2826 16777215] ) (case_arm pat_list: [{(Lit_Other '*') (z) (Lit_Other '*')}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[2834]) op: Equal rhs: {(SQ <'t?(ar.)gz'>)} spids: [2834] ) ] spids: [2834] ) ] spids: [2829 2832 2839 16777215] ) (case_arm pat_list: [{(Lit_Other '*') (Z) (Lit_Other '*')}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[2847]) op: Equal rhs: {(SQ <'ta@(r.Z|z)'>)} spids: [2847] ) ] spids: [2847] ) ] spids: [2842 2845 2852 16777215] ) (case_arm pat_list: [ {(Lit_Other '*') (Lit_Other '[') (jy) (Lit_Other ']') (Lit_Other '*')} ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[2862]) op: Equal rhs: {(SQ <'t@(?(ar.)bz?(2)|b2)'>)} spids: [2862] ) ] spids: [2862] ) ] spids: [2855 2860 2867 16777215] ) (case_arm pat_list: [{(Lit_Other '*') (J) (Lit_Other '*')}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[2875]) op: Equal rhs: {(SQ <'t?(ar.)xz'>)} spids: [2875] ) ] spids: [2875] ) ] spids: [2870 2873 2880 16777215] ) ] spids: [2804 2813 2883] ) ] spids: [2786 2795 2886 16777215] ) (case_arm pat_list: [ { (word_part.ExtGlobPart op: <ExtGlob_Plus '+('> arms: [{('[^ZzJjy]')}] spids: [2889 2891] ) (f) } ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[2896]) op: Equal rhs: {(DQ ($ VSub_DollarName '$tars'))} spids: [2896] ) ] spids: [2896] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:regex spids:[2902]) op: Equal rhs: { (SQ < '\\(\\(tar\\|gem\\|spkg\\)\\(\\.\\(Z\\|[bgx]z\\|bz2\\|lz\\(ma\\)\\?\\)\\)\\?\\|t\\([abglx]z\\|bz\\?2\\)\\)' > ) } spids: [2902] ) ] spids: [2902] ) ] spids: [2889 2893 2908 16777215] ) (case_arm pat_list: [ {(Lit_Other '*') (Lit_Other '[') (Zz) (Lit_Other ']') (Lit_Other '*') (f)} ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[2920]) op: Equal rhs: {(SQ <'@(@(t?(ar.)|gem.|spkg.)@(gz|Z)|taz)'>)} spids: [2920] ) ] spids: [2920] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:regex spids:[2926]) op: Equal rhs: { (SQ < '\\(\\(t\\(ar\\.\\)\\?\\|gem\\.\\|spkg\\.\\)\\(gz\\|Z\\)\\|taz\\)' > ) } spids: [2926] ) ] spids: [2926] ) ] spids: [2911 2917 2932 16777215] ) (case_arm pat_list: [ {(Lit_Other '*') (Lit_Other '[') (jy) (Lit_Other ']') (Lit_Other '*') (f)} ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[2944]) op: Equal rhs: {(SQ <'@(@(t?(ar.)|gem.)bz?(2)|spkg|tb2)'>)} spids: [2944] ) ] spids: [2944] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:regex spids:[2950]) op: Equal rhs: {(SQ <'\\(\\(t\\(ar\\.\\)\\?\\|gem\\.\\)bz2\\?\\|spkg\\|tb2\\)'>)} spids: [2950] ) ] spids: [2950] ) ] spids: [2935 2941 2956 16777215] ) (case_arm pat_list: [{(Lit_Other '*') (Lit_Other '[') (J) (Lit_Other ']') (Lit_Other '*') (f)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[2968]) op: Equal rhs: {(SQ <'@(@(tar|gem|spkg).@(lzma|xz)|t[lx]z)'>)} spids: [2968] ) ] spids: [2968] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:regex spids:[2974]) op: Equal rhs: {(SQ <'\\(\\(tar\\|gem\\|spkg\\)\\.\\(lzma\\|xz\\)\\|t[lx]z\\)'>)} spids: [2974] ) ] spids: [2974] ) ] spids: [2959 2965 2980 16777215] ) ] spids: [2765 2771 2983] ) ] spids: [2741] ) spids: [2737 2740] ) (command.FuncDef name: _gtar body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:long_opts spids:[2998]) op: Equal spids: [2998] ) (assign_pair lhs: (lhs_expr.LhsName name:short_opts spids:[3000]) op: Equal spids: [3000] ) (assign_pair lhs: (lhs_expr.LhsName name:long_arg_none spids:[3004]) op: Equal spids: [3004] ) (assign_pair lhs: (lhs_expr.LhsName name:long_arg_opt spids:[3006]) op: Equal spids: [3006] ) (assign_pair lhs: (lhs_expr.LhsName name:long_arg_req spids:[3008]) op: Equal spids: [3008] ) (assign_pair lhs: (lhs_expr.LhsName name:short_arg_none spids:[3012]) op: Equal spids: [3012] ) (assign_pair lhs: (lhs_expr.LhsName name:short_arg_opt spids:[3014]) op: Equal spids: [3014] ) (assign_pair lhs: (lhs_expr.LhsName name:short_arg_req spids:[3016]) op: Equal spids: [3016] ) (assign_pair lhs: (lhs_expr.LhsName name:tar_mode spids:[3020]) op: Equal spids: [3020] ) (assign_pair lhs: (lhs_expr.LhsName name:tar_mode_arg spids:[3022]) op: Equal spids: [3022] ) (assign_pair lhs: (lhs_expr.LhsName name:old_opt_progress spids:[3024]) op: Equal rhs: {(0)} spids: [3024] ) (assign_pair lhs: (lhs_expr.LhsName name:old_opt_used spids:[3029]) op: Equal rhs: {(0)} spids: [3029] ) (assign_pair lhs: (lhs_expr.LhsName name:old_opt_parsed spids:[3032]) op: Equal rhs: {(word_part.ArrayLiteralPart)} spids: [3032] ) ] spids: [2996] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tar_mode spids:[3044]) op: Equal rhs: {(none)} spids: [3044] ) ] spids: [3042] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tar_mode_arg spids:[3059]) op: Equal rhs: (word.EmptyWord) spids: [3059] ) ] spids: [3057] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$_TAR_OPT_DEBUG'))} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(set)} {(-x)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PS4 spids:[3086]) op: Equal rhs: { (DQ (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('BASH_SOURCE:') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('LINENO: ') ) } spids: [3086] ) ] spids: [3086] ) ] spids: [16777215 3078] ) ] spids: [16777215 3095] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cur spids:[3101]) op: Equal spids: [3101] ) (assign_pair lhs: (lhs_expr.LhsName name:prev spids:[3103]) op: Equal spids: [3103] ) (assign_pair lhs: (lhs_expr.LhsName name:words spids:[3105]) op: Equal spids: [3105] ) (assign_pair lhs: (lhs_expr.LhsName name:cword spids:[3107]) op: Equal spids: [3107] ) (assign_pair lhs: (lhs_expr.LhsName name:split spids:[3109]) op: Equal spids: [3109] ) ] spids: [3099] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(_init_completion)} {(-s)}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (C {(__gnu_tar_parse_help)}) (C {(__tar_preparse_cmdline)} { (DQ (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [3134 3139] ) ) } ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[3146]) op: Equal spids: [3146] ) (assign_pair lhs: (lhs_expr.LhsName name:regex spids:[3148]) op: Equal spids: [3148] ) (assign_pair lhs: (lhs_expr.LhsName name:tar spids:[3150]) op: Equal spids: [3150] ) (assign_pair lhs: (lhs_expr.LhsName name:untar spids:[3152]) op: Equal spids: [3152] ) ] spids: [3144] ) (C {(__tar_detect_ext)}) (command.WhileUntil keyword: <KW_While while> cond: [(command.Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (command.DoGroup children: [ (C {(__tar_adjust_PREV_from_old_option)}) (command.AndOr ops: [Op_DAmp] children: [ (C {(__tar_posix_prev_handle)}) (command.ControlFlow token:<ControlFlow_Break break>) ] ) (C {(__tar_cleanup_prev)}) (command.Case to_match: {($ VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-C)} {(--directory)}] action: [ (C {(_filedir)} {(-d)}) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [3204 3207 3218 16777215] ) (case_arm pat_list: [{(--atime-preserve)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[3225]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'replace system'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [3228 3244] ) } ] ) } spids: [3225] ) ] spids: [3225] ) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [3221 3222 3252 16777215] ) (case_arm pat_list: [{(--group)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[3259]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-g)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [3262 3274] ) } ] ) } spids: [3259] ) ] spids: [3259] ) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [3255 3256 3282 16777215] ) (case_arm pat_list: [{(--owner)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[3289]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-u)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [3292 3304] ) } ] ) } spids: [3289] ) ] spids: [3289] ) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [3285 3286 3312 16777215] ) (case_arm pat_list: [ {(-F)} {(--info-script)} {(--new-volume-script)} {(--rmt-command)} {(--rsh-command)} {(-I)} {(--use-compress-program)} ] action: [ (C {(compopt)} {(-o)} {(filenames)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[3340]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-c)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [3343 3355] ) } ] ) } spids: [3340] ) ] spids: [3340] ) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [3315 3330 3363 16777215] ) (case_arm pat_list: [ {(--volno-file)} {(--add-file)} {(-T)} {(--files-from)} {(-X)} {(--exclude-from)} {(--index-file)} {(--listed-incremental)} {(-g)} ] action: [ (C {(_filedir)}) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [3366 3385 3394 16777215] ) (case_arm pat_list: [{(-H)} {(--format)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[3403]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'gnu oldgnu pax posix ustar v7'>)} {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [3406 3424] ) } ] ) } spids: [3403] ) ] spids: [3403] ) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [3397 3400 3432 16777215] ) (case_arm pat_list: [{(--quoting-style)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[3439]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ < 'literal shell shell-always c c-maybe\n' > <' escape locale clocale'> ) } {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [3442 3459] ) } ] ) } spids: [3439] ) ] spids: [3439] ) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [3435 3436 3467 16777215] ) (case_arm pat_list: [{(--totals)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[3474]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ <'SIGHUP SIGQUIT SIGINT SIGUSR1 SIGUSR2'>) } {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [3477 3495] ) } ] ) } spids: [3474] ) ] spids: [3474] ) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [3470 3471 3503 16777215] ) (case_arm pat_list: [{(--warning)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPREPLY spids:[3510]) op: Equal rhs: { (word_part.ArrayLiteralPart words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(__gtar_parse_warnings)}) ] ) left_token: <Left_CommandSub '$('> spids: [3520 3522] ) ) } {(--)} {(DQ ($ VSub_DollarName '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [3513 3531] ) } ] ) } spids: [3510] ) ] spids: [3510] ) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [3506 3507 3539 16777215] ) (case_arm pat_list: [ {(--file)} {(-f)} {(-) (word_part.ExtGlobPart op: <ExtGlob_Bang '!('> arms: [{(-) (Lit_Other '*')}] spids: [3547 3550] ) (f) } ] action: [ (C {(__tar_file_option)} {(DQ ($ VSub_DollarName '$ext'))}) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [3542 3552 3565 16777215] ) (case_arm pat_list: [{(--) (Lit_Other '*')}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ (' ') ($ VSub_DollarName '$long_arg_req') (' '))} right: { (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\ '> ) ($ VSub_DollarName '$prev') (Lit_Other '=') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) } ) ) (command.ControlFlow token: <ControlFlow_Break break> ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ (' ') ($ VSub_DollarName '$long_arg_opt') (' '))} right: { (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\ '> ) ($ VSub_DollarName '$prev') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\ '>) } ) ) (command.ControlFlow token: <ControlFlow_Break break> ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {($ VSub_DollarName '$split')}) (command.ControlFlow token: <ControlFlow_Break break> ) ] ) ] spids: [3568 3570 3658 16777215] ) (case_arm pat_list: [{(-) (Lit_Other '[') (a-zA-Z0-9) (Lit_Other '?') (Lit_Other ']')}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_DollarName '$short_arg_req'))} right: { (word_part.BracedVarSub token: <VSub_Name prev> suffix_op: (suffix_op.StringUnary op_id: VOp1_DPound arg_word: {(-)} ) spids: [3681 3685] ) } ) ) (command.ControlFlow token: <ControlFlow_Break break> ) ] ) ] spids: [3661 3666 3694 16777215] ) ] spids: [3197 3201 3697] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$cur'))} arms: [ (case_arm pat_list: [ {(-) (Lit_Other '[') (a-zA-Z0-9) (Lit_ArrayLhsClose ']=') (Lit_Other '*')} ] action: [(command.ControlFlow token:<ControlFlow_Break break>)] spids: [3714 3719 3729 16777215] ) ] spids: [3705 3711 3732] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(__tar_try_mode)}) (command.ControlFlow token:<ControlFlow_Break break>) ] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$cur'))} arms: [ (case_arm pat_list: [{(--) (Lit_Other '*')}] action: [ (C {(__gtar_complete_lopts)}) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [3765 3767 3776 16777215] ) (case_arm pat_list: [{(-) (Lit_Other '*')}] action: [ (C {(__gtar_complete_sopts)}) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [3779 3781 3794 16777215] ) ] spids: [3756 3762 3797] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_eq left: {(DQ ($ VSub_DollarName '$cword'))} right: {(1)} ) ) (command.ControlFlow token:<ControlFlow_Break break>) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(__tar_try_list_archive)}) (command.ControlFlow token:<ControlFlow_Break break>) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_DollarName '$tar_mode')} right: {(none)} ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(_filedir)})] spids: [16777215 3852] ) ] spids: [16777215 3858] ) (command.ControlFlow token:<ControlFlow_Break break>) ] spids: [3165 3865] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_DollarName '$_TAR_OPT_DEBUG'))} right: {(1)} ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(set)} {(Lit_Other '+') (x)}) (C {(unset)} {(PS4)})] spids: [16777215 3887] ) ] spids: [16777215 3901] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [2993] ) spids: [2989 2992] ) (command.FuncDef name: __tar_posix_prev_handle body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$prev'))} arms: [ (case_arm pat_list: [{(-f)}] action: [ (C {(__tar_file_option)} {(DQ ($ VSub_DollarName '$ext'))}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [3929 3930 3945 16777215] ) (case_arm pat_list: [{(-b)}] action: [(command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [3948 3949 16777215 3957] ) ] spids: [3920 3926 3957] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [3917] ) spids: [3913 3916] ) (command.FuncDef name: _posix_tar body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:long_opts spids:[3978]) op: Equal spids: [3978] ) (assign_pair lhs: (lhs_expr.LhsName name:short_opts spids:[3980]) op: Equal spids: [3980] ) (assign_pair lhs: (lhs_expr.LhsName name:basic_tar spids:[3982]) op: Equal spids: [3982] ) (assign_pair lhs: (lhs_expr.LhsName name:long_arg_none spids:[3986]) op: Equal spids: [3986] ) (assign_pair lhs: (lhs_expr.LhsName name:long_arg_opt spids:[3988]) op: Equal spids: [3988] ) (assign_pair lhs: (lhs_expr.LhsName name:long_arg_req spids:[3990]) op: Equal spids: [3990] ) (assign_pair lhs: (lhs_expr.LhsName name:short_arg_none spids:[3994]) op: Equal spids: [3994] ) (assign_pair lhs: (lhs_expr.LhsName name:short_arg_opt spids:[3996]) op: Equal spids: [3996] ) (assign_pair lhs: (lhs_expr.LhsName name:short_arg_req spids:[3998]) op: Equal spids: [3998] ) (assign_pair lhs: (lhs_expr.LhsName name:tar_mode spids:[4002]) op: Equal spids: [4002] ) (assign_pair lhs: (lhs_expr.LhsName name:tar_mode_arg spids:[4004]) op: Equal spids: [4004] ) (assign_pair lhs: (lhs_expr.LhsName name:old_opt_progress spids:[4006]) op: Equal rhs: {(0)} spids: [4006] ) (assign_pair lhs: (lhs_expr.LhsName name:old_opt_used spids:[4011]) op: Equal rhs: {(1)} spids: [4011] ) (assign_pair lhs: (lhs_expr.LhsName name:old_opt_parsed spids:[4014]) op: Equal rhs: {(word_part.ArrayLiteralPart)} spids: [4014] ) ] spids: [3976] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tar_mode spids:[4026]) op: Equal rhs: {(none)} spids: [4026] ) ] spids: [4024] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tar_mode_arg spids:[4037]) op: Equal rhs: (word.EmptyWord) spids: [4037] ) ] spids: [4035] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cur spids:[4043]) op: Equal spids: [4043] ) (assign_pair lhs: (lhs_expr.LhsName name:prev spids:[4045]) op: Equal spids: [4045] ) (assign_pair lhs: (lhs_expr.LhsName name:words spids:[4047]) op: Equal spids: [4047] ) (assign_pair lhs: (lhs_expr.LhsName name:cword spids:[4049]) op: Equal spids: [4049] ) (assign_pair lhs: (lhs_expr.LhsName name:split spids:[4051]) op: Equal spids: [4051] ) ] spids: [4041] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(_init_completion)} {(-s)}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:basic_tar spids:[4065]) op: Equal rhs: {(yes)} spids: [4065] ) ] spids: [4065] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tar_mode spids:[4069]) op: Equal rhs: {(none)} spids: [4069] ) ] spids: [4069] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:short_arg_req spids:[4082]) op: Equal rhs: {(DQ (fb))} spids: [4082] ) ] spids: [4082] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:short_arg_none spids:[4088]) op: Equal rhs: {(DQ (wmv))} spids: [4088] ) ] spids: [4088] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:short_opts spids:[4094]) op: Equal rhs: {(DQ ($ VSub_DollarName '$short_arg_req') ($ VSub_DollarName '$short_arg_none'))} spids: [4094] ) ] spids: [4094] ) (C {(__tar_preparse_cmdline)} { (DQ (word_part.BracedVarSub token: <VSub_Name words> bracket_op: (bracket_op.WholeArray op_id:Lit_At) spids: [4105 4110] ) ) } ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[4117]) op: Equal spids: [4117] ) (assign_pair lhs: (lhs_expr.LhsName name:regex spids:[4119]) op: Equal spids: [4119] ) (assign_pair lhs: (lhs_expr.LhsName name:tar spids:[4121]) op: Equal spids: [4121] ) (assign_pair lhs: (lhs_expr.LhsName name:untar spids:[4123]) op: Equal spids: [4123] ) ] spids: [4115] ) (C {(__tar_detect_ext)}) (C {(__tar_adjust_PREV_from_old_option)}) (command.AndOr ops: [Op_DAmp] children: [ (C {(__tar_posix_prev_handle)}) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] ) (command.AndOr ops: [Op_DAmp] children: [(C {(__tar_try_mode)}) (command.ControlFlow token:<ControlFlow_Return return>)] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(__tar_try_list_archive)}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (C {(_filedir)}) ] spids: [3973] ) spids: [3969 3972] ) (command.FuncDef name: _tar body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cmd spids:[4180]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name COMP_WORDS> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) spids: [4181 4186] ) } spids: [4180] ) (assign_pair lhs: (lhs_expr.LhsName name:output spids:[4188]) op: Equal spids: [4188] ) (assign_pair lhs: (lhs_expr.LhsName name:line spids:[4190]) op: Equal spids: [4190] ) ] spids: [4178] ) (command.SimpleCommand words: [{(read)} {(line)}] redirects: [ (redir.Redir op: <Redir_TLess '<<<'> fd: 16777215 arg_word: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [(C {($ VSub_DollarName '$cmd')} {(--version)})] ) left_token: <Left_CommandSub '$('> spids: [4199 4203] ) ) } ) ] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$line'))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (GNU) (Lit_Other '*')}] action: [(C {(_gtar)} {(DQ ($ VSub_At '$@'))})] spids: [4216 4219 4229 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(_posix_tar)} {(DQ ($ VSub_At '$@'))})] spids: [4232 4233 4243 16777215] ) ] spids: [4207 4213 4246] ) ] spids: [4175] ) spids: [4171 4174] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-n)} { (DQ (word_part.BracedVarSub token: <VSub_Name COMP_TAR_INTERNAL_PATHS> suffix_op: (suffix_op.StringUnary op_id:VTest_ColonHyphen arg_word:(word.EmptyWord)) spids: [4259 4262] ) ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(complete)} {(-F)} {(_tar)} {(-o)} {(dirnames)} {(tar)}) (C {(complete)} {(-F)} {(_gtar)} {(-o)} {(dirnames)} {(gtar)}) (C {(complete)} {(-F)} {(_posix_tar)} {(-o)} {(dirnames)} {(bsdtar)}) (C {(complete)} {(-F)} {(_posix_tar)} {(-o)} {(dirnames)} {(star)}) ] spids: [16777215 4268] ) ] else_action: [ (C {(complete)} {(-F)} {(_tar)} {(tar)}) (C {(complete)} {(-F)} {(_gtar)} {(gtar)}) (C {(complete)} {(-F)} {(_posix_tar)} {(bsdtar)}) (C {(complete)} {(-F)} {(_posix_tar)} {(star)}) ] spids: [4322 4360] ) ] )