(command.CommandList children: [ (command.ShFunction name: _make_target_extract_script body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'mode=') (DQ ($ Id.VSub_Number '$1'))}) (C {(shift)}) (C {(local)} {(Id.Lit_VarLike 'prefix=') (DQ ($ Id.VSub_Number '$1'))}) (C {(local)} {(Id.Lit_VarLike 'prefix_pat=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:36) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(printf)} {(DQ ('%s') (Id.Lit_Other '\\') (n))} {(DQ ($ Id.VSub_DollarName '$prefix'))} ) (C {(sed)} { (SQ (Token id: Id.Lit_Chars val: 's/[][\\,.*^$(){}?+|/]/\\\\&/g' span_id: 57 ) ) } ) ] negated: F ) ] ) ) } ) (C {(local)} {(Id.Lit_VarLike 'basename=') (braced_var_sub token: (Token id:Id.VSub_Name val:prefix span_id:67) suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{('*') (Id.Lit_Slash /)}) ) } ) (C {(local)} {(Id.Lit_VarLike 'dirname_len=') (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: (arith_expr.ArithWord w: { (braced_var_sub token: (Token id:Id.VSub_Name val:prefix span_id:81) prefix_op: (Id.VSub_Pound) ) } ) right: (arith_expr.ArithWord w: { (braced_var_sub token: (Token id:Id.VSub_Name val:basename span_id:88) prefix_op: (Id.VSub_Pound) ) } ) ) ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$mode')} right: {(Id.BoolUnary_d -d)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:107) ) ] action: [(C {(local)} {(Id.Lit_VarLike 'output=') (DQ (Id.Lit_Other '\\') (2))})] spids: [96 109] ) ] else_action: [ (C {(local)} {(Id.Lit_VarLike 'output=') (DQ (Id.Lit_Other '\\') (1) (Id.Lit_Other '\\') (2))} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:149) fd: -1 here_begin: {(EOF)} here_end_span_id: 285 stdin_parts: [ (' 1,/^# * Make data base/ d; # skip any makefile output\n') (' /^# * Finished Make data base/,/^# * Make data base/{\n') (' d; # skip any makefile output\n') (' }\n') (' /^# * Variables/,/^# * Files/ d; # skip until files section\n') (' /^# * Not a target/,/^') (Id.Lit_Other '$') ('/ d; # skip not target blocks\n') (' /^') (${ Id.VSub_Name prefix_pat) ('/,/^') (Id.Lit_Other '$') ('/! d; # skip anything user dont want\n') ('\n') (' # The stuff above here describes lines that are not\n') (' # explicit targets or not targets other than special ones\n') (' # The stuff below here decides whether an explicit target\n') (' # should be output.\n') ('\n') (' /^# * File is an intermediate prerequisite/ {\n') (' s/^.*') (Id.Lit_Other '$') ('//;x; # unhold target\n') (' d; # delete line\n') (' }\n') ('\n') (' /^') (Id.Lit_Other '$') ('/ { # end of target block\n') (' x; # unhold target\n') (' /^') (Id.Lit_Other '$') ('/d; # dont print blanks\n') (' s|^') (Id.Lit_Other '\\') ('(.') (Id.Lit_Other '\\') ('{') (${ Id.VSub_Name dirname_len) (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')') (Id.Lit_Other '\\') ('(.') (Id.Lit_Other '\\') ('{') (braced_var_sub token: (Token id:Id.VSub_Name val:basename span_id:205) prefix_op: (Id.VSub_Pound) ) (Id.Lit_Other '\\') ('}[^:/]*/') (Id.Lit_Other '\\') ('{0,1') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')[^:]*:.*') (Id.Lit_Other '$') ('|') (${ Id.VSub_Name output) ('|p;\n') (' d; # hide any bugs\n') (' }\n') ('\n') (' # This pattern includes a literal tab character as ') (Id.Lit_Other '\\') ('t is not a portable\n') (' # representation and fails with BSD sed\n') (' /^[^#\t:%]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}:/ { # found target block\n') (' /^') (Id.Lit_Other '\\') ('.PHONY:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.SUFFIXES:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.DEFAULT:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.PRECIOUS:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.INTERMEDIATE:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.SECONDARY:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.SECONDEXPANSION:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.DELETE_ON_ERROR:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.IGNORE:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.LOW_RESOLUTION_TIME:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.SILENT:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.EXPORT_ALL_VARIABLES:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.NOTPARALLEL:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.ONESHELL:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.POSIX:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.NOEXPORT:/ d; # special target\n') (' /^') (Id.Lit_Other '\\') ('.MAKE:/ d; # special target\n') ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ (${ Id.VSub_Name prefix_pat))} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ (${ Id.VSub_Name prefix_pat))} right: {(Id.Lit_Other '*') (/)} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:318) ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:325) fd: -1 here_begin: {(EOF)} here_end_span_id: 334 stdin_parts: [ (' /^') (${ Id.VSub_Name prefix_pat) ('[^a-zA-Z0-9]/d # convention for hidden tgt\n') ] ) ] ) ] spids: [292 320] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:342) fd: -1 here_begin: {(EOF)} here_end_span_id: 350 stdin_parts: [ (' h; # hold target\n') (' d; # delete line\n') (' }\n') ('\n') ] ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShFunction name: _make 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:380) ) ] ) (C {(local)} {(file)} {(makef)} {(Id.Lit_VarLike 'makef_dir=') (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:391) words: [{(DQ (-C))} {(DQ (.))}] ) } {(makef_inc)} {(i)} ) (command.Case to_match: {($ Id.VSub_DollarName '$prev')} arms: [ (case_arm pat_list: [ {(-f)} {(--file)} {(--makefile)} {(-o)} {(--old-file)} {(--assume-old)} {(-W)} {(--what-if)} {(--new-file)} {(--assume-new)} ] action: [ (C {(_filedir)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:443) arg_word: {(0)} ) ] spids: [416 437 448 -1] ) (case_arm pat_list: [{(-I)} {(--include-dir)} {(-C)} {(--directory)} {(-m)}] action: [ (C {(_filedir)} {(-d)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:468) arg_word: {(0)} ) ] spids: [451 460 473 -1] ) (case_arm pat_list: [{(-E)}] 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:481) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 483 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-v)} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [480] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:500) arg_word: {(0)} ) ] spids: [476 477 505 -1] ) (case_arm pat_list: [{(--eval)} {(-D)} {(-V)} {(-x)}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:518) arg_word: {(0)} ) ] spids: [508 515 523 -1] ) (case_arm pat_list: [{(--jobs)} {(-j)}] 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:533) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 535 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} { (DQ ('{1..') (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w: { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 545 ) command_list: (command.CommandList children: [(C {(_ncpus)})] ) ) } ) right: (arith_expr.ArithWord w: {(Id.Lit_Digits 2)} ) ) ) ('}') ) } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [532] ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:567) arg_word: {(0)} ) ] spids: [526 529 572 -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:583) 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:603) ) ] action: [ (C {(local)} {(Id.Lit_VarLike 'opts=') (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:612) command_list: (command.CommandList children: [(C {(_parse_help)} {(DQ ($ Id.VSub_Number '$1'))})] ) ) ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName '$opts')}) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:opts) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 634 ) command_list: (command.CommandList children: [ (C {(_parse_usage)} {(DQ ($ Id.VSub_Number '$1'))}) ] ) ) ) } spids: [632] ) ] ) ] ) (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:647) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 649 ) command_list: (command.CommandList children: [ (C {(compgen)} {(-W)} {(DQ ($ Id.VSub_DollarName '$opts'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ] ) } spids: [646] ) ] ) (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: [589 605] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$cur')} right: {(Id.Lit_Other '*') (Id.BoolBinary_GlobEqual '=') (Id.Lit_Other '*') } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:703) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:prev) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:cur span_id:710) suffix_op: (suffix_op.Unary op_id: Id.VOp1_DPercent arg_word: {('=*')} ) ) } spids: [708] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cur) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:cur span_id:718) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{('*=')}) ) } spids: [716] ) ] ) (C {(local)} {(diropt)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: (Token id:Id.VSub_Name val:prev span_id:732) suffix_op: (suffix_op.Unary op_id:Id.VOp1_DComma arg_word:{}) ) } right: {(Id.Lit_Other '*') (dir) (word_part.ExtGlob op: (Token id:Id.ExtGlob_QMark val:'?(' span_id:740) arms: [{(ectory)}] ) } ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:diropt) op: assign_op.Equal rhs: {(-d)} spids: [748] ) ] ) ] ) (C {(_filedir)} {($ Id.VSub_DollarName '$diropt')}) ] spids: [690 705] ) ] else_action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:i) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:i span_id:777) ) right: (arith_expr.ArithWord w: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:783) prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:i) ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: (Token id: Id.VSub_Name val: words span_id: 805 ) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: i span_id: 807 ) ) ) ) } right: {(-) (word_part.ExtGlob op: (Token id:Id.ExtGlob_At val:'@(' span_id:814) arms: [{(C)} {(-directory)}] ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:821) ) ] action: [ (C {(eval)} {(Id.Lit_VarLike 'makef_dir=') (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:833) words: [ {(-C)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: words span_id: 839 ) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: i span_id: 841 ) ) right: (arith_expr.ArithWord w: {(Id.Lit_Digits 1)} ) ) ) ) ) } ] ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:851) ) ] spids: [800 823] ) ] ) ] ) ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:i) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:i span_id:878) ) right: (arith_expr.ArithWord w: { (braced_var_sub token: (Token id:Id.VSub_Name val:words span_id:884) prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:i) ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (braced_var_sub token: (Token id: Id.VSub_Name val: words span_id: 906 ) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: i span_id: 908 ) ) ) ) } right: {(-) (word_part.ExtGlob op: (Token id:Id.ExtGlob_At val:'@(' span_id:915) arms: [ {(f)} {(-) (word_part.ExtGlob op: (Token id: Id.ExtGlob_QMark val: '?(' span_id: 919 ) arms: [{(make)}] ) (file) } ] ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:926) ) ] action: [ (C {(eval)} {(Id.Lit_VarLike 'makef=') (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:938) words: [ {(-f)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: words span_id: 944 ) bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: i span_id: 946 ) ) right: (arith_expr.ArithWord w: {(Id.Lit_Digits 1)} ) ) ) ) ) } ] ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Break val:break span_id:956) ) ] spids: [901 928] ) ] ) ] ) ) (C {(local)} {(Id.Lit_VarLike 'mode=') (--)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: COMP_TYPE span_id: 984 ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 9)}) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:992) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode) op: assign_op.Equal rhs: {(-d)} spids: [997] ) ] ) ] spids: [980 994] ) ] ) (command.Sentence child: (C {(local)} {(Id.Lit_VarLike 'reset=') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1011) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(Id.KW_Set set)} {(Id.Lit_Other '+') (o)}) (C {(command)} {(grep)} {(-F)} {(posix)}) ] negated: F ) ] ) ) } ) terminator: (Token id:Id.Op_Semi val:';' span_id:1029) ) (C {(Id.KW_Set set)} {(Id.Lit_Other '+') (o)} {(posix)}) (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:1043) words: [ { (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 1045 ) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [ {(make)} {(-npq)} {(Id.Lit_VarLike '__BASH_MAKE_COMPLETION__=') (1)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: makef span_id: 1063 ) bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: makef_dir span_id: 1072 ) bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } {(.DEFAULT)} ] redirects: [ (redir.Redir op: (Token id: Id.Redir_Great val: '2>' span_id: 1081 ) fd: 2 arg_word: {(/dev/null)} ) ] more_env: [ (env_pair name: LC_ALL val: {(C)} spids: [1047] ) ] ) (C {(sed)} {(-nf)} { (command_sub left_token: (Token id: Id.Left_ProcSubIn val: '<(' span_id: 1092 ) command_list: (command.CommandList children: [ (C {(_make_target_extract_script)} {($ Id.VSub_DollarName '$mode')} {(DQ ($ Id.VSub_DollarName '$cur'))} ) ] ) ) } ) ] negated: F ) ] ) ) } ] ) } spids: [1042] ) ] ) (C {($ Id.VSub_DollarName '$reset')}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName '$mode')} right: {(Id.BoolUnary_d -d)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:1122) ) ] action: [ (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 '*') (/)} ) ) (C {(compopt)} {(-o)} {(nospace)}) ] ) ] spids: [1111 1124] ) ] ) ] ) ] ) ) (C {(complete)} {(-F)} {(_make)} {(make)} {(gmake)} {(gnumake)} {(pmake)} {(colormake)}) ] ) ] )