(command.CommandList children: [ (command.ShFunction name: _aspell_dictionary body: (command.BraceGroup children: [ (C {(local)} {(datadir)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:datadir) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:17) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{(aspell)} {(config)} {(data-dir)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:25) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(echo)} {(/usr/lib/aspell)}) ] ) ] ) ) } spids: [16] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:42) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:44) command_list: (command.CommandList children: [ (command.Simple words: [ {(command)} {(ls)} {($ Id.VSub_DollarName '$datadir') (/) (Id.Lit_Star '*') (.alias) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:55) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } ] ) } spids: [41] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:64) words: [ { (braced_var_sub token: (Token id:Id.VSub_Name val:COMPREPLY span_id:67) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{(.alias)}) ) } ] ) } spids: [63] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:79) words: [ { (braced_var_sub token: (Token id:Id.VSub_Name val:COMPREPLY span_id:82) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {($ Id.VSub_DollarName '$datadir') (Id.Lit_Slash /)} ) ) } ] ) } spids: [78] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.PlusEqual rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:99) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:101) command_list: (command.CommandList children: [ (command.Simple words: [{(aspell)} {(dicts)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:107) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) } ] ) } spids: [98] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:116) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:118) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(SQ (Token id:Id.Lit_Chars val:'${COMPREPLY[@]}' span_id:125))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [115] ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _aspell body: (command.BraceGroup children: [ (C {(local)} {(cur)} {(prev)} {(words)} {(cword)} {(split)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(_init_completion)} {(-s)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:167) ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [{(-c)} {(-p)} {(check)} {(--conf)} {(--personal)} {(--repl)} {(--per-conf)}] action: [ (C {(_filedir)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:197) arg_word: {(0)} ) ] spids: [178 191 202 -1] ) (case_arm pat_list: [ {(--conf-dir)} {(--data-dir)} {(--dict-dir)} {(--home-dir)} {(--local-data-dir)} {(--prefix)} ] action: [ (C {(_filedir)} {(-d)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:224) arg_word: {(0)} ) ] spids: [205 216 229 -1] ) (case_arm pat_list: [{(dump)} {(create)} {(merge)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:241) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 243 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'master personal repl' span_id: 250 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [240] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:264) arg_word: {(0)} ) ] spids: [232 237 269 -1] ) (case_arm pat_list: [{(--mode)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:277) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 279 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 286 ) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {($ Id.VSub_Number '$1')} {(modes)} ] redirects: [ (redir.Redir op: (Token id: Id.Redir_Great val: '2>' span_id: 292 ) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(awk)} { (SQ (Token id: Id.Lit_Chars val: '{ print $1 }' span_id: 302 ) ) } ) ] negated: F ) ] ) ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [276] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:319) arg_word: {(0)} ) ] spids: [272 273 324 -1] ) (case_arm pat_list: [{(--sug-mode)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:332) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 334 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'ultra fast normal bad-speller' span_id: 341 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [331] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:357) arg_word: {(0)} ) ] spids: [327 328 362 -1] ) (case_arm pat_list: [{(--keymapping)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:370) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 372 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'aspell ispell' span_id: 379 ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [369] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:393) arg_word: {(0)} ) ] spids: [365 366 398 -1] ) (case_arm pat_list: [{(-d)} {(--master)}] action: [ (C {(_aspell_dictionary)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:410) arg_word: {(0)} ) ] spids: [401 404 415 -1] ) (case_arm pat_list: [{(--add-filter)} {(--rem-filter)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:425) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 427 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 434 ) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {($ Id.VSub_Number '$1')} {(filters)} ] redirects: [ (redir.Redir op: (Token id: Id.Redir_Great val: '2>' span_id: 440 ) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(awk)} { (SQ (Token id: Id.Lit_Chars val: '{ print $1 }' span_id: 450 ) ) } ) ] negated: F ) ] ) ) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [424] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:467) arg_word: {(0)} ) ] spids: [418 421 472 -1] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {($ Id.VSub_DollarName '$split')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:483) arg_word: {(0)} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$cur'))} right: {(-) (Id.Lit_Other '*')} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:503) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:509) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 511 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: '--conf= --conf-dir= --data-dir= --dict-dir=\n' span_id: 518 ) (Token id: Id.Lit_Chars val: ' --encoding= --add-filter= --rem-filter= --mode= --add-extra-dicts=\n' span_id: 519 ) (Token id: Id.Lit_Chars val: ' --rem-extra-dicts= --home-dir= --ignore= --ignore-accents\n' span_id: 520 ) (Token id: Id.Lit_Chars val: ' --dont-ignore-accents --ignore-case --dont-ignore-case\n' span_id: 521 ) (Token id: Id.Lit_Chars val: ' --ignore-repl --dont-ignore-repl --jargon --keyboard= --lang=\n' span_id: 522 ) (Token id: Id.Lit_Chars val: ' --language-tag --local-data-dir= --master= --module\n' span_id: 523 ) (Token id: Id.Lit_Chars val: ' --add-module-search-order --rem-module-search-order --per-conf=\n' span_id: 524 ) (Token id: Id.Lit_Chars val: ' --personal= --prefix= --repl= --run-together --dont-run-together\n' span_id: 525 ) (Token id: Id.Lit_Chars val: ' --run-together-limit= --run-together-min= --save-repl\n' span_id: 526 ) (Token id: Id.Lit_Chars val: ' --dont-save-repl --set-prefix --dont-set-prefix --size= --spelling\n' span_id: 527 ) (Token id: Id.Lit_Chars val: ' --strip-accents --dont-strip-accents --sug-mode=\n' span_id: 528 ) (Token id: Id.Lit_Chars val: ' --add-word-list-path --rem-word-list-path --backup --dont-backup\n' span_id: 529 ) (Token id: Id.Lit_Chars val: ' --reverse --dont-reverse --time --dont-time --keymapping=\n' span_id: 530 ) (Token id: Id.Lit_Chars val: ' --add-email-quote= --rem-email-quote= --email-margin=\n' span_id: 531 ) (Token id: Id.Lit_Chars val: ' --add-tex-command= --rem-tex-command= --tex-check-comments\n' span_id: 532 ) (Token id: Id.Lit_Chars val: ' --dont-tex-check-comments --add-tex-extension --rem-tex-extension\n' span_id: 533 ) (Token id: Id.Lit_Chars val: ' --add-sgml-check= --rem-sgml-check= --add-sgml-extension\n' span_id: 534 ) (Token id:Id.Lit_Chars val:' --rem-sgml-extension' span_id:535) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [508] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$COMPREPLY')} right: {(Id.Lit_Other '*') (Id.BoolBinary_GlobEqual '=')} ) ) (C {(compopt)} {(-o)} {(nospace)}) ] ) ] spids: [489 505] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPREPLY) op: assign_op.Equal rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:573) words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:575) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (SQ (Token id: Id.Lit_Chars val: 'usage help check pipe list config soundslike\n' span_id: 582 ) (Token id:Id.Lit_Chars val:' filter version dump create merge' span_id:583) ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [572] ) ] ) ] ) ] ) ) (C {(complete)} {(-F)} {(_aspell)} {(aspell)}) ] ) ] )