(CommandList children: [ (AndOr children: [ (FuncDef name: _rsync body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:cur) op:Equal spids:[13]) (assign_pair lhs:(LhsName name:prev) op:Equal spids:[15]) (assign_pair lhs:(LhsName name:words) op:Equal spids:[17]) (assign_pair lhs:(LhsName name:cword) op:Equal spids:[19]) (assign_pair lhs:(LhsName name:split) op:Equal spids:[21]) ] spids: [11] ) (AndOr children: [ (C {(_init_completion)} {(-s)} {(-n)} {(Lit_Other ':')}) (ControlFlow token:<ControlFlow_Return return>) ] op_id: Op_DPipe ) (AndOr children: [ (C {(_expand)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] op_id: Op_DPipe ) (Case to_match: {($ VSub_Name '$prev')} arms: [ (case_arm pat_list: [ {(--config)} {(--password-file)} {(--include-from)} {(--exclude-from)} {(--files-from)} {(--log-file)} {(--write-batch)} {(--only-write-batch)} {(--read-batch)} ] action: [ (C {(compopt)} {(Lit_Other '+') (o)} {(nospace)}) (C {(_filedir)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [55 74 93 16777215] ) (case_arm pat_list: [ {(-T)} {(--temp-dir)} {(--compare-dest)} {(--backup-dir)} {(--partial-dir)} {(--copy-dest)} {(--link-dest)} ] action: [ (C {(compopt)} {(Lit_Other '+') (o)} {(nospace)}) (C {(_filedir)} {(-d)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [96 111 132 16777215] ) (case_arm pat_list: [{(-e)} {(--rsh)}] action: [ (C {(compopt)} {(Lit_Other '+') (o)} {(nospace)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'rsh ssh'>)} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [152 168] ) } ] ) } spids: [149] ) ] spids: [149] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [135 138 178 16777215] ) (case_arm pat_list: [{(--compress-level)}] action: [ (C {(compopt)} {(Lit_Other '+') (o)} {(nospace)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} {(SQ <'{1..9}'>)} {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [196 212] ) } ] ) } spids: [193] ) ] spids: [193] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [181 182 222 16777215] ) ] spids: [48 52 225] ) (AndOr children: [ (C {($ VSub_Name '$split')}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] op_id: Op_DAmp ) (Case to_match: {($ VSub_Name '$cur')} arms: [ (case_arm pat_list: [{(-) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPREPLY) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(compgen)} {(-W)} { (SQ <'--verbose --quiet --no-motd --checksum\n'> < ' --archive --recursive --relative --no-implied-dirs\n' > <' --backup --backup-dir= --suffix= --update --inplace --append\n'> < ' --append-verify --dirs --old-dirs --links --copy-links\n' > <' --copy-unsafe-links --safe-links --copy-dirlinks\n'> < ' --keep-dirlinks --hard-links --perms --executability --chmod=\n' > <' --acls --xattrs --owner --group --devices --copy-devices\n'> < ' --specials --times --omit-dir-times --super --fake-super\n' > <' --sparse --dry-run --whole-file --no-whole-file\n'> < ' --one-file-system --block-size= --rsh= --rsync-path=\n' > <' --existing --ignore-existing --remove-source-files --delete\n'> < ' --delete-before --delete-during --delete-delay --delete-after\n' > <' --delete-excluded --ignore-errors --force --max-delete=\n'> < ' --max-size= --min-size= --partial --partial-dir=\n' > <' --delay-updates --prune-empty-dirs --numeric-ids --timeout=\n'> < ' --contimeout= --ignore-times --size-only --modify-window=\n' > <' --temp-dir= --fuzzy --compare-dest= --copy-dest= --link-dest=\n'> < ' --compress --compress-level= --skip-compress= --cvs-exclude\n' > <' --filter= --exclude= --exclude-from= --include= --include-from=\n'> < ' --files-from= --from0 --protect-args --address= --port=\n' > <' --sockopts= --blocking-io --no-blocking-io --stats\n'> < ' --8-bit-output --human-readable --progress --itemize-changes\n' > <' --out-format= --log-file= --log-file-format= --password-file=\n'> < ' --list-only --bwlimit= --write-batch= --only-write-batch=\n' > <' --read-batch= --protocol= --iconv= --ipv4 --ipv6 --version\n'> < ' --help --daemon --config= --no-detach' > ) } {(--)} {(DQ ($ VSub_Name '$cur'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [254 295] ) } ] ) } spids: [251] ) ] spids: [251] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$COMPREPLY')} right: {(Lit_Other '*') (BoolBinary_GlobEqual '=')} ) ) (C {(compopt)} {(Lit_Other '+') (o)} {(nospace)}) ] op_id: Op_DPipe ) ] spids: [246 248 321 16777215] ) (case_arm pat_list: [{(Lit_Other '*') (Lit_Other ':') (Lit_Other '*')}] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal spids: [336] ) (assign_pair lhs: (LhsName name:shell) op: Equal rhs: {(ssh)} spids: [338] ) ] spids: [334] ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithVarRef name:cword) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr: (ArithVarRef name:i) ) spids: [373 378] ) ) } right: {(-) (ExtGlobPart op: <ExtGlob_At '@('> spids: [384 388] ) } ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:shell) op: Equal rhs: { (BracedVarSub token: <VSub_Name words> bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [397 404] ) } spids: [396] ) ] spids: [396] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [16777215 393] ) ] spids: [16777215 410] ) ] spids: [365 413] ) ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$shell')} right: {(ssh)} ) ) (C {(_xfunc)} {(ssh)} {(_scp_remote_files)}) ] op_id: Op_DAmp ) ] spids: [324 327 435 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(_known_hosts_real)} {(-c)} {(-a)} {(DQ ($ VSub_Name '$cur'))}) (C {(_xfunc)} {(ssh)} {(_scp_local_files)}) ] spids: [438 439 460 16777215] ) ] spids: [239 243 463] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [8] ) spids: [4 7] ) (C {(complete)} {(-F)} {(_rsync)} {(-o)} {(nospace)} {(rsync)}) ] op_id: Op_DAmp ) ] )