(command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{(less)} {(-K)} {(-Ff)} {(/dev/null)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:95) fd: 2 arg_word: {(/dev/null)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CTRL_C_EXITS) op: assign_op.Equal rhs: {(DQ (-K))} spids: [100] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RED) op: assign_op.Equal rhs: {(1)} spids: [106] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:108) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GREEN) op: assign_op.Equal rhs: {(2)} spids: [110] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:112) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BLUE) op: assign_op.Equal rhs: {(4)} spids: [114] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:116) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BRIGHT) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'1;' span_id:120))} spids: [118] ) ] ) ] ) (command.ShFunction name: tputc body: (command.BraceGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bright) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [131] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:133) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:colour) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [135] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$bright'))} {(Id.Lit_RBracket ']')} ) (C {(tput)} {(bold)}) ] ) (C {(tput)} {(setaf)} {($ Id.VSub_DollarName '$colour')}) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEL) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:165) command_list: (command.CommandList children: [ (C {(tputc)} {($ Id.VSub_DollarName '$BRIGHT')} {($ Id.VSub_DollarName '$RED')}) ] ) ) ) } spids: [163] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ADD) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:178) command_list: (command.CommandList children: [ (C {(tputc)} {($ Id.VSub_DollarName '$BRIGHT')} {($ Id.VSub_DollarName '$GREEN')} ) ] ) ) ) } spids: [176] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHG) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:191) command_list: (command.CommandList children: [ (C {(tputc)} {($ Id.VSub_DollarName '$BRIGHT')} {($ Id.VSub_DollarName '$BLUE')}) ] ) ) ) } spids: [189] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FIL) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:204) command_list: (command.CommandList children:[(C {(tput)} {(smso)})]) ) ) } spids: [202] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RST) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:218) command_list: (command.CommandList children:[(C {(tput)} {(sgr0)})]) ) ) } spids: [216] ) ] ) (command.Pipeline children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Pound '$#'))} {(-eq)} {(DQ (2))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:243) ) ] action: [(C {(diff)} {(-Naru)} {(DQ ($ Id.VSub_At '$@'))})] spids: [228 245] ) ] else_action: [(C {(cat)} {(DQ ($ Id.VSub_At '$@'))})] ) (C {(sed)} { (DQ ('\n') ('s/^') (Id.Lit_Other '\\') ('*') (Id.Lit_Other '\\') ('{3') (Id.Lit_Other '\\') ('}.*') (Id.Lit_Other '\\') ('*') (Id.Lit_Other '\\') ('{4') (Id.Lit_Other '\\') ('}/') ($ Id.VSub_DollarName '$CHG') ('&') ($ Id.VSub_DollarName '$RST') ('/;t\n') (' s/^-') (Id.Lit_Other '\\') ('{3') (Id.Lit_Other '\\') ('}.*-') (Id.Lit_Other '\\') ('{4') (Id.Lit_Other '\\') ('}/') ($ Id.VSub_DollarName '$CHG') ('&') ($ Id.VSub_DollarName '$RST') ('/;t\n') (' s/^@.*/') ($ Id.VSub_DollarName '$CHG') ('&') ($ Id.VSub_DollarName '$RST') ('/;t\n') (' s/^[0-9].*/') ($ Id.VSub_DollarName '$CHG') ('&') ($ Id.VSub_DollarName '$RST') ('/;t\n') (' s/^!.*/') ($ Id.VSub_DollarName '$CHG') ('&') ($ Id.VSub_DollarName '$RST') ('/;t\n') ('\n') (' s/^-.*/') ($ Id.VSub_DollarName '$DEL') ('&') ($ Id.VSub_DollarName '$RST') ('/;t\n') (' s/^<.*/') ($ Id.VSub_DollarName '$DEL') ('&') ($ Id.VSub_DollarName '$RST') ('/;t\n') ('\n') (' s/^') (Id.Lit_Other '\\') ('*.*/') ($ Id.VSub_DollarName '$ADD') ('&') ($ Id.VSub_DollarName '$RST') ('/;t\n') (' s/^') (Id.Lit_Other '\\') ('+.*/') ($ Id.VSub_DollarName '$ADD') ('&') ($ Id.VSub_DollarName '$RST') ('/;t\n') (' s/^>.*/') ($ Id.VSub_DollarName '$ADD') ('&') ($ Id.VSub_DollarName '$RST') ('/;t\n') ('\n') (' s/^Only in.*/') ($ Id.VSub_DollarName '$FIL') ('&') ($ Id.VSub_DollarName '$RST') ('/;t\n') (' s/^Index: .*/') ($ Id.VSub_DollarName '$FIL') ('&') ($ Id.VSub_DollarName '$RST') ('/;t\n') (' s/^diff .*/') ($ Id.VSub_DollarName '$FIL') ('&') ($ Id.VSub_DollarName '$RST') ('/;t\n') ) } ) (C { (braced_var_sub token: (Token id:Id.VSub_Name val:PAGER span_id:370) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {('less -QRS ') ($ Id.VSub_DollarName '$CTRL_C_EXITS')} ) ) } ) ] negated: F ) ] )