(command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{(gawk)} {(--version)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:109) fd: -1 arg_word: {(/dev/null)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:114) arg_word: {(1)} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} {(DQ (--version))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:134) ) ] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'0.23\\n' span_id:142))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:147) ) ] ) ] spids: [119 136] ) ] ) (command.ShFunction name: usage body: (command.BraceGroup children: [ (command.Simple words: [ {(printf)} {(SQ (Token id:Id.Lit_Chars val:'%s\\n' span_id:161))} { (SQ (Token id: Id.Lit_Chars val: 'This utility converts ANSI codes in data passed to stdin\n' span_id: 166 ) (Token id:Id.Lit_Chars val:'It has 4 optional parameters:\n' span_id:167) (Token id: Id.Lit_Chars val: '--bg=dark --palette=linux|solarized|tango|xterm --css-only|--body-only\n' span_id: 168 ) (Token id: Id.Lit_Chars val: 'E.g.: ls -l --color=always | ansi2html.sh --bg=dark > ls.html' span_id: 169 ) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:172) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:176) ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} {(DQ (--help))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:196) ) ] action: [(C {(usage)})] spids: [181 198] ) ] ) (command.ShFunction name: processArg body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} {(DQ ('--bg=dark'))} {(Id.Lit_RBracket ']')} ) (command.BraceGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dark_bg) op: assign_op.Equal rhs: {(yes)} spids: [231] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:233) ) (command.Sentence child: (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:235) ) terminator: (Token id:Id.Op_Semi val:';' span_id:236) ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} {(DQ (--css-only))} {(Id.Lit_RBracket ']')} ) (command.BraceGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:css_only) op: assign_op.Equal rhs: {(yes)} spids: [259] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:261) ) (command.Sentence child: (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:263) ) terminator: (Token id:Id.Op_Semi val:';' span_id:264) ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} {(DQ (--body-only))} {(Id.Lit_RBracket ']')} ) (command.BraceGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:body_only) op: assign_op.Equal rhs: {(yes)} spids: [287] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:289) ) (command.Sentence child: (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:291) ) terminator: (Token id:Id.Op_Semi val:';' span_id:292) ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} {(DQ ('--palette=solarized'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:312) ) ] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P0) op: assign_op.Equal rhs: {(073642)} spids: [321] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:323) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P1) op: assign_op.Equal rhs: {(D30102)} spids: [325] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:327) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P2) op: assign_op.Equal rhs: {(859900)} spids: [329] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:331) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P3) op: assign_op.Equal rhs: {(B58900)} spids: [333] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:335) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P4) op: assign_op.Equal rhs: {(268BD2)} spids: [338] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:340) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P5) op: assign_op.Equal rhs: {(D33682)} spids: [342] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:344) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P6) op: assign_op.Equal rhs: {(2AA198)} spids: [346] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:348) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P7) op: assign_op.Equal rhs: {(EEE8D5)} spids: [350] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:352) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P8) op: assign_op.Equal rhs: {(002B36)} spids: [355] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:357) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P9) op: assign_op.Equal rhs: {(CB4B16)} spids: [359] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:361) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P10) op: assign_op.Equal rhs: {(586E75)} spids: [363] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:365) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P11) op: assign_op.Equal rhs: {(657B83)} spids: [367] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:369) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P12) op: assign_op.Equal rhs: {(839496)} spids: [372] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:374) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P13) op: assign_op.Equal rhs: {(6C71C4)} spids: [376] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:378) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P14) op: assign_op.Equal rhs: {(93A1A1)} spids: [380] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:382) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P15) op: assign_op.Equal rhs: {(FDF6E3)} spids: [384] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:386) ) (command.Sentence child: (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:389) ) terminator: (Token id:Id.Op_Semi val:';' span_id:390) ) ] spids: [297 314] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} {(DQ ('--palette=solarized-xterm'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:408) ) ] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P0) op: assign_op.Equal rhs: {(262626)} spids: [417] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:419) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P1) op: assign_op.Equal rhs: {(AF0000)} spids: [421] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:423) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P2) op: assign_op.Equal rhs: {(5F8700)} spids: [425] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:427) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P3) op: assign_op.Equal rhs: {(AF8700)} spids: [429] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:431) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P4) op: assign_op.Equal rhs: {(0087FF)} spids: [434] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:436) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P5) op: assign_op.Equal rhs: {(AF005F)} spids: [438] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:440) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P6) op: assign_op.Equal rhs: {(00AFAF)} spids: [442] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:444) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P7) op: assign_op.Equal rhs: {(E4E4E4)} spids: [446] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:448) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P8) op: assign_op.Equal rhs: {(1C1C1C)} spids: [451] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:453) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P9) op: assign_op.Equal rhs: {(D75F00)} spids: [455] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:457) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P10) op: assign_op.Equal rhs: {(585858)} spids: [459] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:461) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P11) op: assign_op.Equal rhs: {(626262)} spids: [463] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:465) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P12) op: assign_op.Equal rhs: {(808080)} spids: [468] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:470) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P13) op: assign_op.Equal rhs: {(5F5FAF)} spids: [472] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:474) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P14) op: assign_op.Equal rhs: {(8A8A8A)} spids: [476] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:478) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P15) op: assign_op.Equal rhs: {(FFFFD7)} spids: [480] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:482) ) (command.Sentence child: (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:485) ) terminator: (Token id:Id.Op_Semi val:';' span_id:486) ) ] spids: [393 410] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} {(DQ ('--palette=tango'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:504) ) ] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P0) op: assign_op.Equal rhs: {(000000)} spids: [513] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:515) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P1) op: assign_op.Equal rhs: {(CC0000)} spids: [517] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:519) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P2) op: assign_op.Equal rhs: {(4E9A06)} spids: [521] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:523) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P3) op: assign_op.Equal rhs: {(C4A000)} spids: [525] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:527) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P4) op: assign_op.Equal rhs: {(3465A4)} spids: [530] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:532) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P5) op: assign_op.Equal rhs: {(75507B)} spids: [534] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:536) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P6) op: assign_op.Equal rhs: {(06989A)} spids: [538] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:540) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P7) op: assign_op.Equal rhs: {(D3D7CF)} spids: [542] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:544) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P8) op: assign_op.Equal rhs: {(555753)} spids: [547] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:549) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P9) op: assign_op.Equal rhs: {(EF2929)} spids: [551] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:553) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P10) op: assign_op.Equal rhs: {(8AE234)} spids: [555] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:557) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P11) op: assign_op.Equal rhs: {(FCE94F)} spids: [559] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:561) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P12) op: assign_op.Equal rhs: {(729FCF)} spids: [564] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:566) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P13) op: assign_op.Equal rhs: {(AD7FA8)} spids: [568] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:570) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P14) op: assign_op.Equal rhs: {(34E2E2)} spids: [572] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:574) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P15) op: assign_op.Equal rhs: {(EEEEEC)} spids: [576] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:578) ) (command.Sentence child: (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:581) ) terminator: (Token id:Id.Op_Semi val:';' span_id:582) ) ] spids: [489 506] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} {(DQ ('--palette=xterm'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:600) ) ] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P0) op: assign_op.Equal rhs: {(000000)} spids: [605] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:607) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P1) op: assign_op.Equal rhs: {(CD0000)} spids: [609] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:611) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P2) op: assign_op.Equal rhs: {(00CD00)} spids: [613] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:615) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P3) op: assign_op.Equal rhs: {(CDCD00)} spids: [617] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:619) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P4) op: assign_op.Equal rhs: {(0000EE)} spids: [622] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:624) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P5) op: assign_op.Equal rhs: {(CD00CD)} spids: [626] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:628) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P6) op: assign_op.Equal rhs: {(00CDCD)} spids: [630] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:632) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P7) op: assign_op.Equal rhs: {(E5E5E5)} spids: [634] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:636) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P8) op: assign_op.Equal rhs: {(7F7F7F)} spids: [639] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:641) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P9) op: assign_op.Equal rhs: {(FF0000)} spids: [643] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:645) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P10) op: assign_op.Equal rhs: {(00FF00)} spids: [647] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:649) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P11) op: assign_op.Equal rhs: {(FFFF00)} spids: [651] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:653) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P12) op: assign_op.Equal rhs: {(5C5CFF)} spids: [656] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:658) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P13) op: assign_op.Equal rhs: {(FF00FF)} spids: [660] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:662) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P14) op: assign_op.Equal rhs: {(00FFFF)} spids: [664] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:666) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P15) op: assign_op.Equal rhs: {(FFFFFF)} spids: [668] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:670) ) (command.Sentence child: (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:673) ) terminator: (Token id:Id.Op_Semi val:';' span_id:674) ) ] spids: [585 602] ) ] else_action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P0) op: assign_op.Equal rhs: {(000000)} spids: [683] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:685) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P1) op: assign_op.Equal rhs: {(AA0000)} spids: [687] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:689) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P2) op: assign_op.Equal rhs: {(00AA00)} spids: [691] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:693) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P3) op: assign_op.Equal rhs: {(AA5500)} spids: [695] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:697) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P4) op: assign_op.Equal rhs: {(0000AA)} spids: [700] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:702) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P5) op: assign_op.Equal rhs: {(AA00AA)} spids: [704] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:706) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P6) op: assign_op.Equal rhs: {(00AAAA)} spids: [708] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:710) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P7) op: assign_op.Equal rhs: {(AAAAAA)} spids: [712] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:714) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P8) op: assign_op.Equal rhs: {(555555)} spids: [717] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:719) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P9) op: assign_op.Equal rhs: {(FF5555)} spids: [721] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:723) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P10) op: assign_op.Equal rhs: {(55FF55)} spids: [725] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:727) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P11) op: assign_op.Equal rhs: {(FFFF55)} spids: [729] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:731) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P12) op: assign_op.Equal rhs: {(5555FF)} spids: [734] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:736) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P13) op: assign_op.Equal rhs: {(FF55FF)} spids: [738] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:740) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P14) op: assign_op.Equal rhs: {(55FFFF)} spids: [742] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:744) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:P15) op: assign_op.Equal rhs: {(FFFFFF)} spids: [746] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:748) ) (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} {(DQ ('--palette=linux'))} {(Id.Lit_RBracket ']')} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:767) ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:768) ) ] ) ] ) ) (C {(processArg)}) (command.ForEach iter_name: var iter_words: [{(DQ ($ Id.VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [ (command.Sentence child: (C {(processArg)} {($ Id.VSub_DollarName '$var')}) terminator: (Token id:Id.Op_Semi val:';' span_id:797) ) ] ) ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$css_only'))} {(Id.Lit_RBracket ']')}) (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')}) (C {(usage)}) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [{(sed)} {(--version)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:838) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:841) fd: 2 arg_word: {(1)} ) ] ) ] negated: T ) terminator: (Token id:Id.Op_Semi val:';' span_id:843) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Simple words: [{(gsed)} {(--version)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:854) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:857) fd: 2 arg_word: {(1)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:859) ) ] action: [(C {(alias)} {(Id.Lit_VarLike 'sed=') (gsed)})] spids: [848 861] ) ] else_action: [ (command.Simple words: [{(echo)} {(DQ ("Error, can't find an acceptable GNU sed."))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:879) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:883) arg_word: {(1)} ) ] ) ] spids: [830 845] ) ] ) (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$css_only'))} {(Id.Lit_RBracket ']')}) (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')}) (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'%s' span_id:916))} { (DQ ('<html>\n') ('<head>\n') ('<meta http-equiv=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:923) ) (Content-Type) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:925)) (' content=') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:927)) ('text/html; charset=utf-8') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:929)) ('/>\n') ('<style type=') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:932)) (text/css) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:934) ) ('>\n') ) } ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')}) (C {(printf)} { (DQ ('.ef0,.f0 { color: #') ($ Id.VSub_DollarName '$P0') ('; } .eb0,.b0 { background-color: #') ($ Id.VSub_DollarName '$P0') ('; }\n') ('.ef1,.f1 { color: #') ($ Id.VSub_DollarName '$P1') ('; } .eb1,.b1 { background-color: #') ($ Id.VSub_DollarName '$P1') ('; }\n') ('.ef2,.f2 { color: #') ($ Id.VSub_DollarName '$P2') ('; } .eb2,.b2 { background-color: #') ($ Id.VSub_DollarName '$P2') ('; }\n') ('.ef3,.f3 { color: #') ($ Id.VSub_DollarName '$P3') ('; } .eb3,.b3 { background-color: #') ($ Id.VSub_DollarName '$P3') ('; }\n') ('.ef4,.f4 { color: #') ($ Id.VSub_DollarName '$P4') ('; } .eb4,.b4 { background-color: #') ($ Id.VSub_DollarName '$P4') ('; }\n') ('.ef5,.f5 { color: #') ($ Id.VSub_DollarName '$P5') ('; } .eb5,.b5 { background-color: #') ($ Id.VSub_DollarName '$P5') ('; }\n') ('.ef6,.f6 { color: #') ($ Id.VSub_DollarName '$P6') ('; } .eb6,.b6 { background-color: #') ($ Id.VSub_DollarName '$P6') ('; }\n') ('.ef7,.f7 { color: #') ($ Id.VSub_DollarName '$P7') ('; } .eb7,.b7 { background-color: #') ($ Id.VSub_DollarName '$P7') ('; }\n') ('.ef8, .f0 > .bold,.bold > .f0 { color: #') ($ Id.VSub_DollarName '$P8') ('; font-weight: normal; }\n') ('.ef9, .f1 > .bold,.bold > .f1 { color: #') ($ Id.VSub_DollarName '$P9') ('; font-weight: normal; }\n') ('.ef10,.f2 > .bold,.bold > .f2 { color: #') ($ Id.VSub_DollarName '$P10') ('; font-weight: normal; }\n') ('.ef11,.f3 > .bold,.bold > .f3 { color: #') ($ Id.VSub_DollarName '$P11') ('; font-weight: normal; }\n') ('.ef12,.f4 > .bold,.bold > .f4 { color: #') ($ Id.VSub_DollarName '$P12') ('; font-weight: normal; }\n') ('.ef13,.f5 > .bold,.bold > .f5 { color: #') ($ Id.VSub_DollarName '$P13') ('; font-weight: normal; }\n') ('.ef14,.f6 > .bold,.bold > .f6 { color: #') ($ Id.VSub_DollarName '$P14') ('; font-weight: normal; }\n') ('.ef15,.f7 > .bold,.bold > .f7 { color: #') ($ Id.VSub_DollarName '$P15') ('; font-weight: normal; }\n') ('.eb8 { background-color: #') ($ Id.VSub_DollarName '$P8') ('; }\n') ('.eb9 { background-color: #') ($ Id.VSub_DollarName '$P9') ('; }\n') ('.eb10 { background-color: #') ($ Id.VSub_DollarName '$P10') ('; }\n') ('.eb11 { background-color: #') ($ Id.VSub_DollarName '$P11') ('; }\n') ('.eb12 { background-color: #') ($ Id.VSub_DollarName '$P12') ('; }\n') ('.eb13 { background-color: #') ($ Id.VSub_DollarName '$P13') ('; }\n') ('.eb14 { background-color: #') ($ Id.VSub_DollarName '$P14') ('; }\n') ('.eb15 { background-color: #') ($ Id.VSub_DollarName '$P15') ('; }\n') ) } ) ] ) (command.ForEach iter_name: red iter_words: [{(0)} {(1)} {(2)} {(3)} {(4)} {(5)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: green iter_words: [{(0)} {(1)} {(2)} {(3)} {(4)} {(5)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: blue iter_words: [{(0)} {(1)} {(2)} {(3)} {(4)} {(5)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:c) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:{(Id.Lit_Digits 16)}) right: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$red')} ) right: (arith_expr.ArithWord w: {(Id.Lit_Digits 36)} ) ) ) right: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$green')} ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 6)}) ) ) right: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$blue')} ) ) ) } spids: [1113] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$red')} ) right: (arith_expr.ArithWord w: {(Id.Lit_Digits 40)} ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 55)}) ) right: (arith_expr.Binary op_id: Id.Arith_Great left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$red')} ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) ) } spids: [1144] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:g) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$green')} ) right: (arith_expr.ArithWord w: {(Id.Lit_Digits 40)} ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 55)}) ) right: (arith_expr.Binary op_id: Id.Arith_Great left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$green')} ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) ) } spids: [1171] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$blue')} ) right: (arith_expr.ArithWord w: {(Id.Lit_Digits 40)} ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 55)}) ) right: (arith_expr.Binary op_id: Id.Arith_Great left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$blue')} ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) ) } spids: [1198] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')} ) (C {(printf)} {(DQ ('.ef%d { color: #%2.2x%2.2x%2.2x; } '))} {($ Id.VSub_DollarName '$c')} {($ Id.VSub_DollarName '$r')} {($ Id.VSub_DollarName '$g')} {($ Id.VSub_DollarName '$b')} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')} ) (C {(printf)} { (DQ ('.eb%d { background-color: #%2.2x%2.2x%2.2x; }') (Id.Lit_Other '\\') (n) ) } {($ Id.VSub_DollarName '$c')} {($ Id.VSub_DollarName '$r')} {($ Id.VSub_DollarName '$g')} {($ Id.VSub_DollarName '$b')} ) ] ) ] ) ) ] ) ) ] ) ) (command.ForEach iter_name: gray iter_words: [ { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1290) command_list: (command.CommandList children:[(C {(seq)} {(0)} {(23)})]) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:c) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$gray')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 232)}) ) ) } spids: [1302] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:l) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$gray')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 10)}) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 8)}) ) ) } spids: [1311] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')} ) (C {(printf)} {(DQ ('.ef%d { color: #%2.2x%2.2x%2.2x; } '))} {($ Id.VSub_DollarName '$c')} {($ Id.VSub_DollarName '$l')} {($ Id.VSub_DollarName '$l')} {($ Id.VSub_DollarName '$l')} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')} ) (C {(printf)} {(DQ ('.eb%d { background-color: #%2.2x%2.2x%2.2x; }') (Id.Lit_Other '\\') (n))} {($ Id.VSub_DollarName '$c')} {($ Id.VSub_DollarName '$l')} {($ Id.VSub_DollarName '$l')} {($ Id.VSub_DollarName '$l')} ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')}) (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'%s' span_id:1391))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1395) (Token id:Id.Lit_Chars val:'.f9 { color: ' span_id:1396) ) (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:1398) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$dark_bg'))} {(Id.Lit_RBracket ']')} ) (C {(printf)} {(DQ ('#') ($ Id.VSub_DollarName '$P7') (';'))}) (C {(printf)} {(DQ ('#') ($ Id.VSub_DollarName '$P0') (';'))}) ] ) ] ) ) (SQ (Token id:Id.Lit_Chars val:' }\n' span_id:1430) (Token id:Id.Lit_Chars val:'.b9 { background-color: #' span_id:1431) ) (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:1433) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$dark_bg'))} {(Id.Lit_RBracket ']')} ) (C {(printf)} {($ Id.VSub_DollarName '$P0')}) (C {(printf)} {($ Id.VSub_DollarName '$P15')}) ] ) ] ) ) (SQ (Token id:Id.Lit_Chars val:'; }\n' span_id:1457) (Token id: Id.Lit_Chars val: '.f9 > .bold,.bold > .f9, body.f9 > pre > .bold {\n' span_id: 1458 ) (Token id:Id.Lit_Chars val:' /* Bold is heavy black on white, or bright white\n' span_id:1459) (Token id: Id.Lit_Chars val: ' depending on the default background */\n' span_id: 1460 ) (Token id:Id.Lit_Chars val:' color: ' span_id:1461) ) (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:1463) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$dark_bg'))} {(Id.Lit_RBracket ']')} ) (C {(printf)} {(DQ ('#') ($ Id.VSub_DollarName '$P15') (';'))}) (C {(printf)} {(DQ ('#') ($ Id.VSub_DollarName '$P0') (';'))}) ] ) ] ) ) (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1495) (Token id:Id.Lit_Chars val:' font-weight: ' span_id:1496) ) (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:1498) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$dark_bg'))} {(Id.Lit_RBracket ']')} ) (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'normal;' span_id:1514))}) (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'bold;' span_id:1522))}) ] ) ] ) ) (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1526) (Token id:Id.Lit_Chars val:'}\n' span_id:1527) (Token id:Id.Lit_Chars val:'.reverse {\n' span_id:1528) (Token id: Id.Lit_Chars val: ' /* CSS does not support swapping fg and bg colours unfortunately,\n' span_id: 1529 ) (Token id: Id.Lit_Chars val: ' so just hardcode something that will look OK on all backgrounds. */\n' span_id: 1530 ) (Token id:Id.Lit_Chars val:' ' span_id:1531) ) (DQ ('color: #') ($ Id.VSub_DollarName '$P0') ('; background-color: #') ($ Id.VSub_DollarName '$P7') (';') ) (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1541) (Token id:Id.Lit_Chars val:'}\n' span_id:1542) (Token id:Id.Lit_Chars val:'.underline { text-decoration: underline; }\n' span_id:1543) (Token id: Id.Lit_Chars val: '.line-through { text-decoration: line-through; }\n' span_id: 1544 ) (Token id:Id.Lit_Chars val:'.blink { text-decoration: blink; }\n' span_id:1545) (Token id:Id.Lit_Chars val:'\n' span_id:1546) (Token id:Id.Lit_Chars val:'/* Avoid pixels between adjacent span elements.\n' span_id:1547) (Token id: Id.Lit_Chars val: ' Note this only works for lines less than 80 chars\n' span_id: 1548 ) (Token id:Id.Lit_Chars val:' where we close span elements on the same line.\n' span_id:1549) (Token id: Id.Lit_Chars val: 'span { display: inline-block; }\n' span_id: 1550 ) (Token id:Id.Lit_Chars val:'*/\n' span_id:1551) ) } ) ] ) (command.AndOr ops: [Id.Op_DPipe Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')}) (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$css_only'))} {(Id.Lit_RBracket ']')}) (command.Simple words: [ {(printf)} {(SQ (Token id:Id.Lit_Chars val:'%s\\n' span_id:1577))} { (SQ (Token id: Id.Lit_Chars val: 'To use the css generated from --css-only, do: ' span_id: 1582 ) ) (SQ (Token id: Id.Lit_Chars val: '<head><link rel="stylesheet" type="text/css" href="style.css"></head>' span_id: 1586 ) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1589) fd: -1 arg_word: {(2)} ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$css_only'))} {(Id.Lit_RBracket ']')}) (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:1602)) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')}) (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'%s' span_id:1617))} { (SQ (Token id:Id.Lit_Chars val:'</style>\n' span_id:1621) (Token id:Id.Lit_Chars val:'</head>\n' span_id:1622) (Token id:Id.Lit_Chars val:'\n' span_id:1623) (Token id:Id.Lit_Chars val:'<body class="f9 b9">\n' span_id:1624) (Token id:Id.Lit_Chars val:'<pre>\n' span_id:1625) ) } ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')}) (command.Simple words: [ {(printf)} {(SQ (Token id:Id.Lit_Chars val:'%s\\n' span_id:1641))} { (SQ (Token id: Id.Lit_Chars val: 'Be sure to use <body class="f9 b9"> and <pre>' span_id: 1645 ) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1648) fd: -1 arg_word: {(2)} ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:p) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'\\x1b\\[' span_id:1654))} spids: [1652] ) ] ) (command.Pipeline children: [ (C {(sed)} { (DQ ('\n') ('# escape ampersand and quote\n') ('s#&#') (Id.Lit_Other '\\') ('&#g; s#') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1675) ) ('#') (Id.Lit_Other '\\') ('"#g;\n') ('s#') (Id.Lit_Other '\\') ('x1b[^') (Id.Lit_Other '\\') ('x1b]*') (Id.Lit_Other '\\') (x1b) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\\\' span_id:1686)) (Id.Lit_Other '\\') ('##g # strip anything between ') (Id.Lit_Other '\\') ('e and ST\n') ('s#') (Id.Lit_Other '\\') ('x1b][0-9]*;[^') (Id.Lit_Other '\\') ('a]*') (Id.Lit_Other '\\') ('a##g # strip any OSC (xterm title etc.)\n') ('\n') ('s#') (Id.Lit_Other '\\') (r) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:1702) ) ('## # strip trailing ') (Id.Lit_Other '\\') ('r\n') ('\n') ('# strip other non SGR escape sequences\n') ('s#[') (Id.Lit_Other '\\') ('x07]##g\n') ('s#') (Id.Lit_Other '\\') ('x1b[]>=') (Id.Lit_Other '\\') ('][0-9;]*##g\n') ('s#') (Id.Lit_Other '\\') ('x1bP+.') (Id.Lit_Other '\\') ('{5') (Id.Lit_Other '\\') ('}##g\n') ('# Mark cursor positioning codes ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:1724)) ('Jr;c;\n') ('s#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,2') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')G#') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:1738)) ('J;') (Id.Lit_Other '\\') ('1;#g\n') ('s#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,2') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (');') (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,2') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')H#') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1762) ) (J) (Id.Lit_Other '\\') ('1;') (Id.Lit_Other '\\') ('2;#g\n') ('\n') ('# Mark clear as ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1770) ) ('Cn where n=1 is screen and n=0 is to end-of-line\n') ('s#') (${ Id.VSub_Name p) ('H#') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1777) ) ('C1;#g\n') ('s#') (${ Id.VSub_Name p) ('K#') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1784) ) ('C0;#g\n') ('# Mark Cursor move columns as ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1787) ) ('Mn where n is +ve for right, -ve for left\n') ('s#') (${ Id.VSub_Name p) ('C#') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1794) ) ('M1;#g\n') ('s#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')C#') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1808) ) (M) (Id.Lit_Other '\\') ('1;#g\n') ('s#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')D#') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1824) ) (M-) (Id.Lit_Other '\\') ('1;#g\n') ('s#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')P#') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1840) ) (X) (Id.Lit_Other '\\') ('1;#g\n') ('\n') ('s#') (${ Id.VSub_Name p) ('[0-9;?]*[^0-9;?m]##g\n') ('\n') ) } ) (C {(sed)} { (DQ ('\n') ('# escape HTML (ampersand and quote done above)\n') ('s#>#') (Id.Lit_Other '\\') ('>#g; s#<#') (Id.Lit_Other '\\') ('<#g;\n') ('\n') ('# normalize SGR codes a little\n') ('\n') ("# split 256 colors out and mark so that they're not\n") ("# recognised by the following 'split combined' line\n") (':e\n') ('s#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([0-9;]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (');') (Id.Lit_Other '\\') ('([34]8;5;[0-9]') (Id.Lit_Other '\\') ('{1,3') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')m#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') (1m) (${ Id.VSub_Name p) ('\xc2\xac') (Id.Lit_Other '\\') ('2m#g; t e\n') ('s#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([34]8;5;[0-9]') (Id.Lit_Other '\\') ('{1,3') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')m#') (${ Id.VSub_Name p) ('\xc2\xac') (Id.Lit_Other '\\') ('1m#g;\n') ('\n') (':c\n') ('s#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (');') (Id.Lit_Other '\\') ('([0-9;]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')m#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') (1m) (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('2m#g; t c # split combined\n') ('s#') (${ Id.VSub_Name p) (0) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('1#g #strip leading 0\n') ('s#') (${ Id.VSub_Name p) (1m) (Id.Lit_Other '\\') ('(') (Id.Lit_Other '\\') ('(') (${ Id.VSub_Name p) ('[4579]m') (Id.Lit_Other '\\') (')*') (Id.Lit_Other '\\') (')#') (Id.Lit_Other '\\') (1) (${ Id.VSub_Name p) ('1m#g #bold last (with clr)\n') ('s#') (${ Id.VSub_Name p) ('m#') (${ Id.VSub_Name p) ('0m#g #add leading 0 to norm\n') ('\n') ('# undo any 256 color marking\n') ('s#') (${ Id.VSub_Name p) ('\xc2\xac') (Id.Lit_Other '\\') ('([34]8;5;[0-9]') (Id.Lit_Other '\\') ('{1,3') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')m#') (${ Id.VSub_Name p) (Id.Lit_Other '\\') ('1m#g;\n') ('\n') ('# map 16 color codes to color + bold\n') ('s#') (${ Id.VSub_Name p) (9) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m#') (${ Id.VSub_Name p) (3) (Id.Lit_Other '\\') (1m) (${ Id.VSub_Name p) ('1m#g;\n') ('s#') (${ Id.VSub_Name p) (10) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m#') (${ Id.VSub_Name p) (4) (Id.Lit_Other '\\') (1m) (${ Id.VSub_Name p) ('1m#g;\n') ('\n') ("# change 'reset' code to ") (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2064) ) ('R\n') ('s#') (${ Id.VSub_Name p) ('0m#') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2071) ) ('R;#g\n') ) } ) (C {(sed)} { (DQ ('\n') ('# common combinations to minimise html (optional)\n') (':f\n') ('s#') (${ Id.VSub_Name p) ('3[0-7]m') (${ Id.VSub_Name p) (3) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m#') (${ Id.VSub_Name p) (3) (Id.Lit_Other '\\') ('1m#g; t f\n') (':b\n') ('s#') (${ Id.VSub_Name p) ('4[0-7]m') (${ Id.VSub_Name p) (4) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m#') (${ Id.VSub_Name p) (4) (Id.Lit_Other '\\') ('1m#g; t b\n') ('s#') (${ Id.VSub_Name p) (3) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m') (${ Id.VSub_Name p) (4) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m#<span class=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2143) ) (f) (Id.Lit_Other '\\') ('1 b') (Id.Lit_Other '\\') (2) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2149) ) ('>#g\n') ('s#') (${ Id.VSub_Name p) (4) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m') (${ Id.VSub_Name p) (3) (Id.Lit_Other '\\') ('([0-7]') (Id.Lit_Other '\\') (')m#<span class=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2168) ) (f) (Id.Lit_Other '\\') ('2 b') (Id.Lit_Other '\\') (1) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2174) ) ('>#g\n') ('\n') ('s#') (${ Id.VSub_Name p) ('1m#<span class=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2182) ) (bold) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2184)) ('>#g\n') ('s#') (${ Id.VSub_Name p) ('4m#<span class=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2191) ) (underline) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2193)) ('>#g\n') ('s#') (${ Id.VSub_Name p) ('5m#<span class=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2200) ) (blink) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2202)) ('>#g\n') ('s#') (${ Id.VSub_Name p) ('7m#<span class=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2209) ) (reverse) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2211)) ('>#g\n') ('s#') (${ Id.VSub_Name p) ('9m#<span class=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2218) ) (line-through) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2220)) ('>#g\n') ('s#') (${ Id.VSub_Name p) (3) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') (')m#<span class=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2231) ) (f) (Id.Lit_Other '\\') (1) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2235) ) ('>#g\n') ('s#') (${ Id.VSub_Name p) (4) (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') (')m#<span class=') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2246)) (b) (Id.Lit_Other '\\') (1) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2250)) ('>#g\n') ('\n') ('s#') (${ Id.VSub_Name p) ('38;5;') (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,3') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')m#<span class=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2266) ) (ef) (Id.Lit_Other '\\') (1) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2270) ) ('>#g\n') ('s#') (${ Id.VSub_Name p) ('48;5;') (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,3') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')m#<span class=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2285) ) (eb) (Id.Lit_Other '\\') (1) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2289) ) ('>#g\n') ('\n') ('s#') (${ Id.VSub_Name p) ('[0-9;]*m##g # strip unhandled codes\n') ) } ) (C {(sed)} { (DQ ('\n') ("# change 'smacs' and 'rmacs' to ") (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2349) ) ('T1 and ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:2351)) ('T0 to simplify matching.\n') ('s#') (Id.Lit_Other '\\') ('x1b(0#') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2356) ) ('T1;#g;\n') ('s#') (Id.Lit_Other '\\') ('x0E#') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2361) ) ('T1;#g;\n') ('\n') ('s#') (Id.Lit_Other '\\') ('x1b(B#') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2367) ) ('T0;#g\n') ('s#') (Id.Lit_Other '\\') ('x0F#') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2372) ) ('T0;#g\n') ) } ) (command.Subshell command_list: (command.CommandList children: [ (C {(gawk)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2383) (Token id: Id.Lit_Chars val: 'function dump_line(l,del,c,blanks,ret) {\n' span_id: 2384 ) (Token id:Id.Lit_Chars val:' for(c=1;c<maxX;c++) {\n' span_id:2385) (Token id: Id.Lit_Chars val: ' if ((c SUBSEP l) in attr || length(cur)) {\n' span_id: 2386 ) (Token id:Id.Lit_Chars val:' ret = ret blanks fixas(cur,attr[c,l])\n' span_id:2387) (Token id: Id.Lit_Chars val: ' if(del) delete attr[c,l]\n' span_id: 2388 ) (Token id:Id.Lit_Chars val:' blanks=""\n' span_id:2389) (Token id:Id.Lit_Chars val:' }\n' span_id:2390) (Token id:Id.Lit_Chars val:' if ((c SUBSEP l) in dump) {\n' span_id:2391) (Token id: Id.Lit_Chars val: ' ret=ret blanks dump[c,l]\n' span_id: 2392 ) (Token id:Id.Lit_Chars val:' if(del) delete dump[c,l]\n' span_id:2393) (Token id: Id.Lit_Chars val: ' blanks=""\n' span_id: 2394 ) (Token id:Id.Lit_Chars val:' } else blanks=blanks " "\n' span_id:2395) (Token id:Id.Lit_Chars val:' }\n' span_id:2396) (Token id:Id.Lit_Chars val:' if(length(cur)) ret=ret blanks\n' span_id:2397) (Token id:Id.Lit_Chars val:' return ret\n' span_id:2398) (Token id:Id.Lit_Chars val:'}\n' span_id:2399) (Token id:Id.Lit_Chars val:'\n' span_id:2400) (Token id: Id.Lit_Chars val: 'function dump_screen(l,ret) {\n' span_id: 2401 ) (Token id:Id.Lit_Chars val:' for(l=1;l<=maxY;l++)\n' span_id:2402) (Token id: Id.Lit_Chars val: ' ret=ret dump_line(l,0) "\\n"\n' span_id: 2403 ) (Token id:Id.Lit_Chars val:' return ret fixas(cur, "")\n' span_id:2404) (Token id:Id.Lit_Chars val:'}\n' span_id:2405) (Token id:Id.Lit_Chars val:'\n' span_id:2406) (Token id: Id.Lit_Chars val: 'function atos(a,i,ret) {\n' span_id: 2407 ) (Token id:Id.Lit_Chars val:' for(i=1;i<=length(a);i++) if(i in a) ret=ret a[i]\n' span_id:2408) (Token id:Id.Lit_Chars val:' return ret\n' span_id:2409) (Token id:Id.Lit_Chars val:'}\n' span_id:2410) (Token id:Id.Lit_Chars val:'\n' span_id:2411) (Token id: Id.Lit_Chars val: 'function fixas(a,s,spc,i,attr,rm,ret) {\n' span_id: 2412 ) (Token id:Id.Lit_Chars val:' spc=length(a)\n' span_id:2413) (Token id: Id.Lit_Chars val: ' l=split(s,attr,">")\n' span_id: 2414 ) (Token id:Id.Lit_Chars val:' for(i=1;i<=spc;i++) {\n' span_id:2415) (Token id: Id.Lit_Chars val: ' rm=rm?rm:(a[i]!=attr[i]">")\n' span_id: 2416 ) (Token id:Id.Lit_Chars val:' if(rm) {\n' span_id:2417) (Token id: Id.Lit_Chars val: ' ret=ret "</span>"\n' span_id: 2418 ) (Token id:Id.Lit_Chars val:' delete a[i];\n' span_id:2419) (Token id:Id.Lit_Chars val:' }\n' span_id:2420) (Token id:Id.Lit_Chars val:' }\n' span_id:2421) (Token id: Id.Lit_Chars val: ' for(i=1;i<l;i++) {\n' span_id: 2422 ) (Token id:Id.Lit_Chars val:' attr[i]=attr[i]">"\n' span_id:2423) (Token id: Id.Lit_Chars val: ' if(a[i]!=attr[i]) {\n' span_id: 2424 ) (Token id:Id.Lit_Chars val:' a[i]=attr[i]\n' span_id:2425) (Token id: Id.Lit_Chars val: ' ret = ret attr[i]\n' span_id: 2426 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2427) (Token id:Id.Lit_Chars val:' }\n' span_id:2428) (Token id:Id.Lit_Chars val:' return ret\n' span_id:2429) (Token id:Id.Lit_Chars val:'}\n' span_id:2430) (Token id:Id.Lit_Chars val:'\n' span_id:2431) (Token id: Id.Lit_Chars val: 'function encode(string,start,end,i,ret,pos,sc,buf) {\n' span_id: 2432 ) (Token id:Id.Lit_Chars val:' if(!end) end=length(string);\n' span_id:2433) (Token id: Id.Lit_Chars val: ' if(!start) start=1;\n' span_id: 2434 ) (Token id:Id.Lit_Chars val:' state=3\n' span_id:2435) (Token id: Id.Lit_Chars val: ' for(i=1;i<=length(string);i++) {\n' span_id: 2436 ) (Token id:Id.Lit_Chars val:' c=substr(string,i,1)\n' span_id:2437) (Token id: Id.Lit_Chars val: ' if(state==2) {\n' span_id: 2438 ) (Token id:Id.Lit_Chars val:' sc=sc c\n' span_id:2439) (Token id: Id.Lit_Chars val: ' if(c==";") {\n' span_id: 2440 ) (Token id:Id.Lit_Chars val:' c=sc\n' span_id:2441) (Token id: Id.Lit_Chars val: ' state=last_mode\n' span_id: 2442 ) (Token id:Id.Lit_Chars val:' } else continue\n' span_id:2443) (Token id: Id.Lit_Chars val: ' } else {\n' span_id: 2444 ) (Token id:Id.Lit_Chars val:' if(c=="\\r") { x=1; continue }\n' span_id:2445) (Token id: Id.Lit_Chars val: ' if(c=="<") {\n' span_id: 2446 ) (Token id:Id.Lit_Chars val:' # Change attributes - store current active\n' span_id:2447) (Token id: Id.Lit_Chars val: ' # attributes in span array\n' span_id: 2448 ) (Token id:Id.Lit_Chars val:' split(substr(string,i),cord,">");\n' span_id:2449) (Token id: Id.Lit_Chars val: ' i+=length(cord[1])\n' span_id: 2450 ) (Token id:Id.Lit_Chars val:' span[++spc]=cord[1] ">"\n' span_id:2451) (Token id: Id.Lit_Chars val: ' continue\n' span_id: 2452 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2453) (Token id: Id.Lit_Chars val: ' else if(c=="&") {\n' span_id: 2454 ) (Token id: Id.Lit_Chars val: ' # All goes to single position till we see a semicolon\n' span_id: 2455 ) (Token id:Id.Lit_Chars val:' sc=c\n' span_id:2456) (Token id: Id.Lit_Chars val: ' state=2\n' span_id: 2457 ) (Token id:Id.Lit_Chars val:' continue\n' span_id:2458) (Token id:Id.Lit_Chars val:' }\n' span_id:2459) (Token id:Id.Lit_Chars val:' else if(c=="\\b") {\n' span_id:2460) (Token id: Id.Lit_Chars val: ' # backspace move insertion point back 1\n' span_id: 2461 ) (Token id:Id.Lit_Chars val:' if(spc) attr[x,y]=atos(span)\n' span_id:2462) (Token id: Id.Lit_Chars val: ' x=x>1?x-1:1\n' span_id: 2463 ) (Token id:Id.Lit_Chars val:' continue\n' span_id:2464) (Token id:Id.Lit_Chars val:' }\n' span_id:2465) (Token id:Id.Lit_Chars val:' else if(c=="\\"") {\n' span_id:2466) (Token id: Id.Lit_Chars val: ' split(substr(string,i+2),cord,";")\n' span_id: 2467 ) (Token id:Id.Lit_Chars val:' cc=substr(string,i+1,1);\n' span_id:2468) (Token id: Id.Lit_Chars val: ' if(cc=="T") {\n' span_id: 2469 ) (Token id:Id.Lit_Chars val:' # Transliterate on/off\n' span_id:2470) (Token id: Id.Lit_Chars val: ' if(cord[1]==1&&state==3) last_mode=state=4\n' span_id: 2471 ) (Token id:Id.Lit_Chars val:' if(cord[1]==0&&state==4) last_mode=state=3\n' span_id:2472) (Token id:Id.Lit_Chars val:' }\n' span_id:2473) (Token id:Id.Lit_Chars val:' else if(cc=="C") {\n' span_id:2474) (Token id: Id.Lit_Chars val: ' # Clear\n' span_id: 2475 ) (Token id:Id.Lit_Chars val:' if(cord[1]+0) {\n' span_id:2476) (Token id: Id.Lit_Chars val: ' # Screen - if Recording dump screen\n' span_id: 2477 ) (Token id: Id.Lit_Chars val: ' if(dumpStatus==dsActive) ret=ret dump_screen()\n' span_id: 2478 ) (Token id:Id.Lit_Chars val:' dumpStatus=dsActive\n' span_id:2479) (Token id: Id.Lit_Chars val: ' delete dump\n' span_id: 2480 ) (Token id:Id.Lit_Chars val:' delete attr\n' span_id:2481) (Token id: Id.Lit_Chars val: ' x=y=1\n' span_id: 2482 ) (Token id:Id.Lit_Chars val:' } else {\n' span_id:2483) (Token id: Id.Lit_Chars val: ' # To end of line\n' span_id: 2484 ) (Token id:Id.Lit_Chars val:' for(pos=x;pos<maxX;pos++) {\n' span_id:2485) (Token id: Id.Lit_Chars val: ' dump[pos,y]=" "\n' span_id: 2486 ) (Token id:Id.Lit_Chars val:' if (!spc) delete attr[pos,y]\n' span_id:2487) (Token id: Id.Lit_Chars val: ' else attr[pos,y]=atos(span)\n' span_id: 2488 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2489) (Token id: Id.Lit_Chars val: ' }\n' span_id: 2490 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2491) (Token id: Id.Lit_Chars val: ' else if(cc=="J") {\n' span_id: 2492 ) (Token id:Id.Lit_Chars val:' # Jump to x,y\n' span_id:2493) (Token id: Id.Lit_Chars val: ' i+=length(cord[2])+1\n' span_id: 2494 ) (Token id:Id.Lit_Chars val:' # If line is higher - dump previous screen\n' span_id:2495) (Token id: Id.Lit_Chars val: ' if(dumpStatus==dsActive&&cord[1]<y) {\n' span_id: 2496 ) (Token id:Id.Lit_Chars val:' ret=ret dump_screen();\n' span_id:2497) (Token id: Id.Lit_Chars val: ' dumpStatus=dsNew;\n' span_id: 2498 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2499) (Token id: Id.Lit_Chars val: ' x=cord[2]\n' span_id: 2500 ) (Token id:Id.Lit_Chars val:' if(length(cord[1]) && y!=cord[1]){\n' span_id:2501) (Token id: Id.Lit_Chars val: ' y=cord[1]\n' span_id: 2502 ) (Token id:Id.Lit_Chars val:' if(y>maxY) maxY=y\n' span_id:2503) (Token id: Id.Lit_Chars val: ' # Change y - start recording\n' span_id: 2504 ) (Token id:Id.Lit_Chars val:' dumpStatus=dumpStatus?dumpStatus:dsReset\n' span_id:2505) (Token id: Id.Lit_Chars val: ' }\n' span_id: 2506 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2507) (Token id: Id.Lit_Chars val: ' else if(cc=="M") {\n' span_id: 2508 ) (Token id:Id.Lit_Chars val:' # Move left/right on current line\n' span_id:2509) (Token id: Id.Lit_Chars val: ' x+=cord[1]\n' span_id: 2510 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2511) (Token id: Id.Lit_Chars val: ' else if(cc=="X") {\n' span_id: 2512 ) (Token id:Id.Lit_Chars val:' # delete on right\n' span_id:2513) (Token id: Id.Lit_Chars val: ' for(pos=x;pos<=maxX;pos++) {\n' span_id: 2514 ) (Token id:Id.Lit_Chars val:' nx=pos+cord[1]\n' span_id:2515) (Token id: Id.Lit_Chars val: ' if(nx<maxX) {\n' span_id: 2516 ) (Token id: Id.Lit_Chars val: ' if((nx SUBSEP y) in attr) attr[pos,y] = attr[nx,y]\n' span_id: 2517 ) (Token id:Id.Lit_Chars val:' else delete attr[pos,y]\n' span_id:2518) (Token id: Id.Lit_Chars val: ' if((nx SUBSEP y) in dump) dump[pos,y] = dump[nx,y]\n' span_id: 2519 ) (Token id:Id.Lit_Chars val:' else delete dump[pos,y]\n' span_id:2520) (Token id: Id.Lit_Chars val: ' } else if(spc) {\n' span_id: 2521 ) (Token id:Id.Lit_Chars val:' attr[pos,y]=atos(span)\n' span_id:2522) (Token id: Id.Lit_Chars val: ' dump[pos,y]=" "\n' span_id: 2523 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2524) (Token id: Id.Lit_Chars val: ' }\n' span_id: 2525 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2526) (Token id: Id.Lit_Chars val: ' else if(cc=="R") {\n' span_id: 2527 ) (Token id:Id.Lit_Chars val:' # Reset attributes\n' span_id:2528) (Token id: Id.Lit_Chars val: ' while(spc) delete span[spc--]\n' span_id: 2529 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2530) (Token id: Id.Lit_Chars val: ' i+=length(cord[1])+2\n' span_id: 2531 ) (Token id:Id.Lit_Chars val:' continue\n' span_id:2532) (Token id:Id.Lit_Chars val:' }\n' span_id:2533) (Token id: Id.Lit_Chars val: ' else if(state==4&&i>=start&&i<=end&&c in Trans) c=Trans[c]\n' span_id: 2534 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2535) (Token id: Id.Lit_Chars val: ' if(dumpStatus==dsReset) {\n' span_id: 2536 ) (Token id:Id.Lit_Chars val:' delete dump\n' span_id:2537) (Token id: Id.Lit_Chars val: ' delete attr\n' span_id: 2538 ) (Token id:Id.Lit_Chars val:' ret=ret"\\n"\n' span_id:2539) (Token id: Id.Lit_Chars val: ' dumpStatus=dsActive\n' span_id: 2540 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2541) (Token id: Id.Lit_Chars val: ' if(dumpStatus==dsNew) {\n' span_id: 2542 ) (Token id:Id.Lit_Chars val:' # After moving/clearing we are now ready to write\n' span_id:2543) (Token id: Id.Lit_Chars val: ' # somthing to the screen so start recording now\n' span_id: 2544 ) (Token id:Id.Lit_Chars val:' ret=ret"\\n"\n' span_id:2545) (Token id: Id.Lit_Chars val: ' dumpStatus=dsActive\n' span_id: 2546 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2547) (Token id: Id.Lit_Chars val: ' if(dumpStatus==dsActive||dumpStatus==dsOff) {\n' span_id: 2548 ) (Token id:Id.Lit_Chars val:' dump[x,y] = c\n' span_id:2549) (Token id: Id.Lit_Chars val: ' if(!spc) delete attr[x,y]\n' span_id: 2550 ) (Token id:Id.Lit_Chars val:' else attr[x,y] = atos(span)\n' span_id:2551) (Token id: Id.Lit_Chars val: ' if(++x>maxX) maxX=x;\n' span_id: 2552 ) (Token id:Id.Lit_Chars val:' }\n' span_id:2553) (Token id:Id.Lit_Chars val:' }\n' span_id:2554) (Token id: Id.Lit_Chars val: ' # End of line if dumping increment y and set x back to first col\n' span_id: 2555 ) (Token id:Id.Lit_Chars val:' x=1\n' span_id:2556) (Token id: Id.Lit_Chars val: ' if(!dumpStatus) return ret dump_line(y,1);\n' span_id: 2557 ) (Token id:Id.Lit_Chars val:' else if(++y>maxY) maxY=y;\n' span_id:2558) (Token id: Id.Lit_Chars val: ' return ret\n' span_id: 2559 ) (Token id:Id.Lit_Chars val:'}\n' span_id:2560) (Token id:Id.Lit_Chars val:'BEGIN{\n' span_id:2561) (Token id:Id.Lit_Chars val:' OFS=FS\n' span_id:2562) (Token id:Id.Lit_Chars val:' # dump screen status\n' span_id:2563) (Token id: Id.Lit_Chars val: ' dsOff=0 # Not dumping screen contents just write output direct\n' span_id: 2564 ) (Token id: Id.Lit_Chars val: ' dsNew=1 # Just after move/clear waiting for activity to start recording\n' span_id: 2565 ) (Token id: Id.Lit_Chars val: ' dsReset=2 # Screen cleared build new empty buffer and record\n' span_id: 2566 ) (Token id:Id.Lit_Chars val:' dsActive=3 # Currently recording\n' span_id:2567) (Token id: Id.Lit_Chars val: ' F="abcdefghijklmnopqrstuvwxyz{}`~"\n' span_id: 2568 ) (Token id: Id.Lit_Chars val: ' T="\xe2\x96\x92\xe2\x90\x89\xe2\x90\x8c\xe2\x90\x8d\xe2\x90\x8a\xc2\xb0\xc2\xb1\xe2\x90\xa4\xe2\x90\x8b\xe2\x94\x98\xe2\x94\x90\xe2\x94\x8c\xe2\x94\x94\xe2\x94\xbc\xe2\x8e\xba\xe2\x8e\xbb\xe2\x94\x80\xe2\x8e\xbc\xe2\x8e\xbd\xe2\x94\x9c\xe2\x94\xa4\xe2\x94\xb4\xe2\x94\xac\xe2\x94\x82\xe2\x89\xa4\xe2\x89\xa5\xcf\x80\xc2\xa3\xe2\x97\x86\xc2\xb7"\n' span_id: 2569 ) (Token id:Id.Lit_Chars val:' maxX=80\n' span_id:2570) (Token id: Id.Lit_Chars val: ' delete cur;\n' span_id: 2571 ) (Token id:Id.Lit_Chars val:' x=y=1\n' span_id:2572) (Token id: Id.Lit_Chars val: ' for(i=1;i<=length(F);i++)Trans[substr(F,i,1)]=substr(T,i,1);\n' span_id: 2573 ) (Token id:Id.Lit_Chars val:'}\n' span_id:2574) (Token id:Id.Lit_Chars val:'\n' span_id:2575) (Token id: Id.Lit_Chars val: '{ $0=encode($0) }\n' span_id: 2576 ) (Token id:Id.Lit_Chars val:'1\n' span_id:2577) (Token id:Id.Lit_Chars val:'END {\n' span_id:2578) (Token id: Id.Lit_Chars val: ' if(dumpStatus) {\n' span_id: 2579 ) (Token id:Id.Lit_Chars val:' print dump_screen();\n' span_id:2580) (Token id:Id.Lit_Chars val:' }\n' span_id:2581) (Token id:Id.Lit_Chars val:'}' span_id:2582) ) } ) ] ) ) ] negated: F ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$body_only'))} {(Id.Lit_RBracket ']')}) (C {(printf)} { (SQ (Token id:Id.Lit_Chars val:'</pre>\n' span_id:2601) (Token id:Id.Lit_Chars val:'</body>\n' span_id:2602) (Token id:Id.Lit_Chars val:'</html>\\n' span_id:2603) ) } ) ] ) ] )