summaryrefslogtreecommitdiff
path: root/config/nvim-2/nvim/undodir/%home%coast%projects%c%catter%src%main.c
blob: a5ec0180751aeb713d691b5885b4d8e0bed772a0 (plain)
ofshex dumpascii
0000 56 69 6d 9f 55 6e 44 6f e5 00 03 8e 9d 84 c4 ce 43 61 1a fa 13 7c b7 d9 e5 0b a9 0c 64 32 49 18 Vim.UnDo........Ca...|......d2I.
0020 fe dc a1 c1 ca 87 24 0a db dc 40 00 00 00 fd 00 00 00 25 20 20 20 20 70 72 69 6e 74 66 28 22 63 ......$...@.......%....printf("c
0040 63 61 74 20 2d 20 63 6f 6c 6f 72 69 7a 65 64 20 63 61 74 5c 6e 22 29 3b 00 00 00 de 00 00 00 10 cat.-.colorized.cat\n");........
0060 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 00 69 ff 84 e5 ............................i...
0080 04 01 00 00 00 02 00 5f d0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ......._........................
00a0 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 00 00 00 00 00 00 00 00 00 00 00 69 ff 83 cf 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 ...........i....................
0220 00 00 00 00 00 00 00 ff 00 00 00 03 2f 2a 2a 00 00 00 17 20 2a 20 63 63 61 74 20 2d 20 63 6f 6c ............/**.....*.ccat.-.col
0240 6f 72 69 7a 65 64 20 63 61 74 00 00 00 18 20 2a 20 63 6f 6d 70 69 6c 65 3a 20 6d 61 6b 65 20 72 orized.cat.....*.compile:.make.r
0260 65 6c 65 61 73 65 00 00 00 03 20 2a 2f 00 00 00 00 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 elease.....*/........#include.<s
0280 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 tdio.h>....#include.<stdlib.h>..
02a0 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 ..#include.<string.h>....#includ
02c0 65 20 3c 63 74 79 70 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e e.<ctype.h>....#include.<unistd.
02e0 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 67 65 74 6f 70 74 2e 68 3e 00 00 00 00 00 00 00 h>....#include.<getopt.h>.......
0300 21 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 52 45 53 45 54 20 20 20 20 20 22 5c 30 33 33 5b 30 !#define.COLOR_RESET....."\033[0
0320 6d 22 00 00 00 22 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 52 45 44 20 20 20 20 20 20 20 22 5c m"..."#define.COLOR_RED......."\
0340 30 33 33 5b 33 31 6d 22 00 00 00 22 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 47 52 45 45 4e 20 033[31m"..."#define.COLOR_GREEN.
0360 20 20 20 20 22 5c 30 33 33 5b 33 32 6d 22 00 00 00 22 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f ...."\033[32m"..."#define.COLOR_
0380 59 45 4c 4c 4f 57 20 20 20 20 22 5c 30 33 33 5b 33 33 6d 22 00 00 00 22 23 64 65 66 69 6e 65 20 YELLOW...."\033[33m"..."#define.
03a0 43 4f 4c 4f 52 5f 42 4c 55 45 20 20 20 20 20 20 22 5c 30 33 33 5b 33 34 6d 22 00 00 00 22 23 64 COLOR_BLUE......"\033[34m"..."#d
03c0 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 4d 41 47 45 4e 54 41 20 20 20 22 5c 30 33 33 5b 33 35 6d 22 efine.COLOR_MAGENTA..."\033[35m"
03e0 00 00 00 22 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 43 59 41 4e 20 20 20 20 20 20 22 5c 30 33 ..."#define.COLOR_CYAN......"\03
0400 33 5b 33 36 6d 22 00 00 00 21 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 42 4f 4c 44 20 20 20 20 3[36m"...!#define.COLOR_BOLD....
0420 20 20 22 5c 30 33 33 5b 31 6d 22 00 00 00 21 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 44 49 4d .."\033[1m"...!#define.COLOR_DIM
0440 20 20 20 20 20 20 20 22 5c 30 33 33 5b 32 6d 22 00 00 00 00 00 00 00 0e 74 79 70 65 64 65 66 20 ......."\033[2m"........typedef.
0460 65 6e 75 6d 20 7b 00 00 00 0f 20 20 20 20 54 4f 4b 45 4e 5f 4e 4f 4e 45 2c 00 00 00 12 20 20 20 enum.{........TOKEN_NONE,.......
0480 20 54 4f 4b 45 4e 5f 4b 45 59 57 4f 52 44 2c 00 00 00 11 20 20 20 20 54 4f 4b 45 4e 5f 53 54 52 .TOKEN_KEYWORD,........TOKEN_STR
04a0 49 4e 47 2c 00 00 00 11 20 20 20 20 54 4f 4b 45 4e 5f 4e 55 4d 42 45 52 2c 00 00 00 12 20 20 20 ING,........TOKEN_NUMBER,.......
04c0 20 54 4f 4b 45 4e 5f 43 4f 4d 4d 45 4e 54 2c 00 00 00 0f 20 20 20 20 54 4f 4b 45 4e 5f 54 59 50 .TOKEN_COMMENT,........TOKEN_TYP
04e0 45 2c 00 00 00 17 20 20 20 20 54 4f 4b 45 4e 5f 50 52 45 50 52 4f 43 45 53 53 4f 52 2c 00 00 00 E,........TOKEN_PREPROCESSOR,...
0500 13 20 20 20 20 54 4f 4b 45 4e 5f 46 55 4e 43 54 49 4f 4e 2c 00 00 00 12 20 20 20 20 54 4f 4b 45 .....TOKEN_FUNCTION,........TOKE
0520 4e 5f 4f 50 45 52 41 54 4f 52 00 00 00 0c 7d 20 54 6f 6b 65 6e 54 79 70 65 3b 00 00 00 00 00 00 N_OPERATOR....}.TokenType;......
0540 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 15 20 20 20 20 69 6e 74 20 6c 69 ..typedef.struct.{........int.li
0560 6e 65 5f 6e 75 6d 62 65 72 73 3b 00 00 00 0d 20 20 20 20 69 6e 74 20 68 65 6c 70 3b 00 00 00 16 ne_numbers;........int.help;....
0580 20 20 20 20 63 68 61 72 20 6c 61 6e 67 75 61 67 65 5b 33 32 5d 3b 00 00 00 11 20 20 20 20 69 6e ....char.language[32];........in
05a0 74 20 74 61 62 5f 73 69 7a 65 3b 00 00 00 0a 7d 20 4f 70 74 69 6f 6e 73 3b 00 00 00 00 00 00 00 t.tab_size;....}.Options;.......
05c0 21 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 6b 65 79 77 6f 72 64 73 5b 5d 20 3d !static.const.char.*keywords[].=
05e0 20 7b 00 00 00 4a 20 20 20 20 22 61 75 74 6f 22 2c 20 22 62 72 65 61 6b 22 2c 20 22 63 61 73 65 .{...J...."auto",."break",."case
0600 22 2c 20 22 63 68 61 72 22 2c 20 22 63 6f 6e 73 74 22 2c 20 22 63 6f 6e 74 69 6e 75 65 22 2c 20 ",."char",."const",."continue",.
0620 22 64 65 66 61 75 6c 74 22 2c 20 22 64 6f 22 2c 00 00 00 45 20 20 20 20 22 64 6f 75 62 6c 65 22 "default",."do",...E...."double"
0640 2c 20 22 65 6c 73 65 22 2c 20 22 65 6e 75 6d 22 2c 20 22 65 78 74 65 72 6e 22 2c 20 22 66 6c 6f ,."else",."enum",."extern",."flo
0660 61 74 22 2c 20 22 66 6f 72 22 2c 20 22 67 6f 74 6f 22 2c 20 22 69 66 22 2c 00 00 00 4f 20 20 20 at",."for",."goto",."if",...O...
0680 20 22 69 6e 74 22 2c 20 22 6c 6f 6e 67 22 2c 20 22 72 65 67 69 73 74 65 72 22 2c 20 22 72 65 74 ."int",."long",."register",."ret
06a0 75 72 6e 22 2c 20 22 73 68 6f 72 74 22 2c 20 22 73 69 67 6e 65 64 22 2c 20 22 73 69 7a 65 6f 66 urn",."short",."signed",."sizeof
06c0 22 2c 20 22 73 74 61 74 69 63 22 2c 00 00 00 54 20 20 20 20 22 73 74 72 75 63 74 22 2c 20 22 73 ",."static",...T...."struct",."s
06e0 77 69 74 63 68 22 2c 20 22 74 79 70 65 64 65 66 22 2c 20 22 75 6e 69 6f 6e 22 2c 20 22 75 6e 73 witch",."typedef",."union",."uns
0700 69 67 6e 65 64 22 2c 20 22 76 6f 69 64 22 2c 20 22 76 6f 6c 61 74 69 6c 65 22 2c 20 22 77 68 69 igned",."void",."volatile",."whi
0720 6c 65 22 2c 00 00 00 08 20 20 20 20 4e 55 4c 4c 00 00 00 02 7d 3b 00 00 00 00 00 00 00 1e 73 74 le",........NULL....};........st
0740 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 74 79 70 65 73 5b 5d 20 3d 20 7b 00 00 00 2e atic.const.char.*types[].=.{....
0760 20 20 20 20 22 69 6e 74 38 5f 74 22 2c 20 22 69 6e 74 31 36 5f 74 22 2c 20 22 69 6e 74 33 32 5f ...."int8_t",."int16_t",."int32_
0780 74 22 2c 20 22 69 6e 74 36 34 5f 74 22 2c 00 00 00 32 20 20 20 20 22 75 69 6e 74 38 5f 74 22 2c t",."int64_t",...2...."uint8_t",
07a0 20 22 75 69 6e 74 31 36 5f 74 22 2c 20 22 75 69 6e 74 33 32 5f 74 22 2c 20 22 75 69 6e 74 36 34 ."uint16_t",."uint32_t",."uint64
07c0 5f 74 22 2c 00 00 00 25 20 20 20 20 22 73 69 7a 65 5f 74 22 2c 20 22 73 73 69 7a 65 5f 74 22 2c _t",...%...."size_t",."ssize_t",
07e0 20 22 62 6f 6f 6c 22 2c 20 4e 55 4c 4c 00 00 00 02 7d 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 ."bool",.NULL....};.......)stati
0800 63 20 76 6f 69 64 20 69 6e 69 74 5f 6f 70 74 69 6f 6e 73 28 4f 70 74 69 6f 6e 73 20 2a 6f 70 74 c.void.init_options(Options.*opt
0820 73 29 20 7b 00 00 00 1b 20 20 20 20 6f 70 74 73 2d 3e 6c 69 6e 65 5f 6e 75 6d 62 65 72 73 20 3d s).{........opts->line_numbers.=
0840 20 30 3b 00 00 00 13 20 20 20 20 6f 70 74 73 2d 3e 68 65 6c 70 20 3d 20 30 3b 00 00 00 20 20 20 .0;........opts->help.=.0;......
0860 20 20 73 74 72 63 70 79 28 6f 70 74 73 2d 3e 6c 61 6e 67 75 61 67 65 2c 20 22 63 22 29 3b 00 00 ..strcpy(opts->language,."c");..
0880 00 17 20 20 20 20 6f 70 74 73 2d 3e 74 61 62 5f 73 69 7a 65 20 3d 20 34 3b 00 00 00 01 7d 00 00 ......opts->tab_size.=.4;....}..
08a0 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 69 73 5f 6b 65 79 77 6f 72 64 28 63 6f 6e 73 .....)static.int.is_keyword(cons
08c0 74 20 63 68 61 72 20 2a 77 6f 72 64 29 20 7b 00 00 00 25 20 20 20 20 66 6f 72 20 28 69 6e 74 20 t.char.*word).{...%....for.(int.
08e0 69 20 3d 20 30 3b 20 6b 65 79 77 6f 72 64 73 5b 69 5d 3b 20 69 2b 2b 29 00 00 00 35 20 20 20 20 i.=.0;.keywords[i];.i++)...5....
0900 20 20 20 20 69 66 20 28 73 74 72 63 6d 70 28 77 6f 72 64 2c 20 6b 65 79 77 6f 72 64 73 5b 69 5d ....if.(strcmp(word,.keywords[i]
0920 29 20 3d 3d 20 30 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 ).==.0).return.1;........return.
0940 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 69 6e 74 20 69 73 5f 74 79 70 0;....}.......&static.int.is_typ
0960 65 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 77 6f 72 64 29 20 7b 00 00 00 22 20 20 20 20 66 6f 72 e(const.char.*word).{..."....for
0980 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 74 79 70 65 73 5b 69 5d 3b 20 69 2b 2b 29 00 00 00 32 20 .(int.i.=.0;.types[i];.i++)...2.
09a0 20 20 20 20 20 20 20 69 66 20 28 73 74 72 63 6d 70 28 77 6f 72 64 2c 20 74 79 70 65 73 5b 69 5d .......if.(strcmp(word,.types[i]
09c0 29 20 3d 3d 20 30 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 ).==.0).return.1;........return.
09e0 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 48 73 74 61 74 69 63 20 76 6f 69 64 20 70 72 69 6e 74 0;....}.......Hstatic.void.print
0a00 5f 74 6f 6b 65 6e 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 74 6f 6b 65 6e 2c 20 54 6f 6b 65 6e 54 _token(const.char.*token,.TokenT
0a20 79 70 65 20 74 79 70 65 2c 20 73 69 7a 65 5f 74 20 6c 65 6e 29 20 7b 00 00 00 24 20 20 20 20 63 ype.type,.size_t.len).{...$....c
0a40 6f 6e 73 74 20 63 68 61 72 20 2a 63 6f 6c 6f 72 20 3d 20 43 4f 4c 4f 52 5f 52 45 53 45 54 3b 00 onst.char.*color.=.COLOR_RESET;.
0a60 00 00 04 20 20 20 20 00 00 00 13 20 20 20 20 73 77 69 74 63 68 20 28 74 79 70 65 29 20 7b 00 00 ...............switch.(type).{..
0a80 00 41 20 20 20 20 20 20 20 20 63 61 73 65 20 54 4f 4b 45 4e 5f 4b 45 59 57 4f 52 44 3a 20 63 6f .A........case.TOKEN_KEYWORD:.co
0aa0 6c 6f 72 20 3d 20 43 4f 4c 4f 52 5f 42 4f 4c 44 20 43 4f 4c 4f 52 5f 42 4c 55 45 3b 20 62 72 65 lor.=.COLOR_BOLD.COLOR_BLUE;.bre
0ac0 61 6b 3b 00 00 00 36 20 20 20 20 20 20 20 20 63 61 73 65 20 54 4f 4b 45 4e 5f 53 54 52 49 4e 47 ak;...6........case.TOKEN_STRING
0ae0 3a 20 63 6f 6c 6f 72 20 3d 20 43 4f 4c 4f 52 5f 47 52 45 45 4e 3b 20 62 72 65 61 6b 3b 00 00 00 :.color.=.COLOR_GREEN;.break;...
0b00 37 20 20 20 20 20 20 20 20 63 61 73 65 20 54 4f 4b 45 4e 5f 4e 55 4d 42 45 52 3a 20 63 6f 6c 6f 7........case.TOKEN_NUMBER:.colo
0b20 72 20 3d 20 43 4f 4c 4f 52 5f 59 45 4c 4c 4f 57 3b 20 62 72 65 61 6b 3b 00 00 00 35 20 20 20 20 r.=.COLOR_YELLOW;.break;...5....
0b40 20 20 20 20 63 61 73 65 20 54 4f 4b 45 4e 5f 43 4f 4d 4d 45 4e 54 3a 20 63 6f 6c 6f 72 20 3d 20 ....case.TOKEN_COMMENT:.color.=.
0b60 43 4f 4c 4f 52 5f 44 49 4d 3b 20 62 72 65 61 6b 3b 00 00 00 33 20 20 20 20 20 20 20 20 63 61 73 COLOR_DIM;.break;...3........cas
0b80 65 20 54 4f 4b 45 4e 5f 54 59 50 45 3a 20 63 6f 6c 6f 72 20 3d 20 43 4f 4c 4f 52 5f 43 59 41 4e e.TOKEN_TYPE:.color.=.COLOR_CYAN
0ba0 3b 20 62 72 65 61 6b 3b 00 00 00 3e 20 20 20 20 20 20 20 20 63 61 73 65 20 54 4f 4b 45 4e 5f 50 ;.break;...>........case.TOKEN_P
0bc0 52 45 50 52 4f 43 45 53 53 4f 52 3a 20 63 6f 6c 6f 72 20 3d 20 43 4f 4c 4f 52 5f 4d 41 47 45 4e REPROCESSOR:.color.=.COLOR_MAGEN
0be0 54 41 3b 20 62 72 65 61 6b 3b 00 00 00 44 20 20 20 20 20 20 20 20 63 61 73 65 20 54 4f 4b 45 4e TA;.break;...D........case.TOKEN
0c00 5f 46 55 4e 43 54 49 4f 4e 3a 20 63 6f 6c 6f 72 20 3d 20 43 4f 4c 4f 52 5f 42 4f 4c 44 20 43 4f _FUNCTION:.color.=.COLOR_BOLD.CO
0c20 4c 4f 52 5f 59 45 4c 4c 4f 57 3b 20 62 72 65 61 6b 3b 00 00 00 36 20 20 20 20 20 20 20 20 63 61 LOR_YELLOW;.break;...6........ca
0c40 73 65 20 54 4f 4b 45 4e 5f 4f 50 45 52 41 54 4f 52 3a 20 63 6f 6c 6f 72 20 3d 20 43 4f 4c 4f 52 se.TOKEN_OPERATOR:.color.=.COLOR
0c60 5f 52 45 44 3b 20 62 72 65 61 6b 3b 00 00 00 2c 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a _RED;.break;...,........default:
0c80 20 63 6f 6c 6f 72 20 3d 20 43 4f 4c 4f 52 5f 52 45 53 45 54 3b 20 62 72 65 61 6b 3b 00 00 00 05 .color.=.COLOR_RESET;.break;....
0ca0 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 3c 20 20 20 20 70 72 69 6e 74 66 28 22 25 73 25 ....}...........<....printf("%s%
0cc0 2e 2a 73 25 73 22 2c 20 63 6f 6c 6f 72 2c 20 28 69 6e 74 29 6c 65 6e 2c 20 74 6f 6b 65 6e 2c 20 .*s%s",.color,.(int)len,.token,.
0ce0 43 4f 4c 4f 52 5f 52 45 53 45 54 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3d 73 74 61 74 69 63 COLOR_RESET);....}.......=static
0d00 20 76 6f 69 64 20 68 69 67 68 6c 69 67 68 74 5f 6c 69 6e 65 28 63 6f 6e 73 74 20 63 68 61 72 20 .void.highlight_line(const.char.
0d20 2a 6c 69 6e 65 2c 20 4f 70 74 69 6f 6e 73 20 2a 6f 70 74 73 29 20 7b 00 00 00 19 20 20 20 20 63 *line,.Options.*opts).{........c
0d40 6f 6e 73 74 20 63 68 61 72 20 2a 70 20 3d 20 6c 69 6e 65 3b 00 00 00 13 20 20 20 20 63 68 61 72 onst.char.*p.=.line;........char
0d60 20 77 6f 72 64 5b 32 35 36 5d 3b 00 00 00 16 20 20 20 20 69 6e 74 20 69 6e 5f 73 74 72 69 6e 67 .word[256];........int.in_string
0d80 20 3d 20 30 3b 00 00 00 15 20 20 20 20 69 6e 74 20 77 6f 72 64 5f 6c 65 6e 20 3d 20 30 3b 00 00 .=.0;........int.word_len.=.0;..
0da0 00 0f 20 20 20 20 28 76 6f 69 64 29 6f 70 74 73 3b 00 00 00 04 20 20 20 20 00 00 00 10 20 20 20 ......(void)opts;...............
0dc0 20 77 68 69 6c 65 20 28 2a 70 29 20 7b 00 00 00 26 20 20 20 20 20 20 20 20 69 66 20 28 2a 70 20 .while.(*p).{...&........if.(*p.
0de0 3d 3d 20 27 22 27 20 26 26 20 21 69 6e 5f 73 74 72 69 6e 67 29 20 7b 00 00 00 28 20 20 20 20 20 ==.'"'.&&.!in_string).{...(.....
0e00 20 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 25 73 5c 22 22 2c 20 43 4f 4c 4f 52 5f 47 52 45 45 .......printf("%s\"",.COLOR_GREE
0e20 4e 29 3b 00 00 00 1a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 5f 73 74 72 69 6e 67 20 3d 20 31 N);................in_string.=.1
0e40 3b 00 00 00 10 20 20 20 20 20 20 20 20 20 20 20 20 70 2b 2b 3b 00 00 00 15 20 20 20 20 20 20 20 ;................p++;...........
0e60 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 08 20 .....continue;............}.....
0e80 20 20 20 20 20 20 20 00 00 00 25 20 20 20 20 20 20 20 20 69 66 20 28 2a 70 20 3d 3d 20 27 22 27 ..........%........if.(*p.==.'"'
0ea0 20 26 26 20 69 6e 5f 73 74 72 69 6e 67 29 20 7b 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 .&&.in_string).{...(............
0ec0 70 72 69 6e 74 66 28 22 5c 22 25 73 22 2c 20 43 4f 4c 4f 52 5f 52 45 53 45 54 29 3b 00 00 00 1a printf("\"%s",.COLOR_RESET);....
0ee0 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 5f 73 74 72 69 6e 67 20 3d 20 30 3b 00 00 00 10 20 20 ............in_string.=.0;......
0f00 20 20 20 20 20 20 20 20 20 20 70 2b 2b 3b 00 00 00 15 20 20 20 20 20 20 20 20 20 20 20 20 63 6f ..........p++;................co
0f20 6e 74 69 6e 75 65 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 08 20 20 20 20 20 20 20 20 ntinue;............}............
0f40 00 00 00 37 20 20 20 20 20 20 20 20 69 66 20 28 2a 70 20 3d 3d 20 27 2f 27 20 26 26 20 2a 28 70 ...7........if.(*p.==.'/'.&&.*(p
0f60 2b 31 29 20 3d 3d 20 27 2f 27 20 26 26 20 21 69 6e 5f 73 74 72 69 6e 67 29 20 7b 00 00 00 29 20 +1).==.'/'.&&.!in_string).{...).
0f80 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 25 73 25 73 22 2c 20 43 4f 4c 4f 52 5f ...........printf("%s%s",.COLOR_
0fa0 44 49 4d 2c 20 70 29 3b 00 00 00 12 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 DIM,.p);................break;..
0fc0 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 18 20 20 20 20 20 ..........}.....................
0fe0 20 20 20 69 66 20 28 69 6e 5f 73 74 72 69 6e 67 29 20 7b 00 00 00 1d 20 20 20 20 20 20 20 20 20 ...if.(in_string).{.............
1000 20 20 20 70 72 69 6e 74 66 28 22 25 63 22 2c 20 2a 70 29 3b 00 00 00 10 20 20 20 20 20 20 20 20 ...printf("%c",.*p);............
1020 20 20 20 20 70 2b 2b 3b 00 00 00 15 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 ....p++;................continue
1040 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 1a 20 20 ;............}..................
1060 20 20 20 20 20 20 69 66 20 28 69 73 64 69 67 69 74 28 2a 70 29 29 20 7b 00 00 00 22 20 20 20 20 ......if.(isdigit(*p)).{..."....
1080 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 61 72 74 20 3d 20 70 3b 00 00 ........const.char.*start.=.p;..
10a0 00 3c 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 69 73 64 69 67 69 74 28 2a 70 29 .<............while.(isdigit(*p)
10c0 20 7c 7c 20 2a 70 20 3d 3d 20 27 2e 27 20 7c 7c 20 2a 70 20 3d 3d 20 27 78 27 20 7c 7c 20 00 00 .||.*p.==.'.'.||.*p.==.'x'.||...
10e0 00 4d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 70 20 3e 3d 20 27 61 27 20 .M...................(*p.>=.'a'.
1100 26 26 20 2a 70 20 3c 3d 20 27 66 27 29 20 7c 7c 20 28 2a 70 20 3e 3d 20 27 41 27 20 26 26 20 2a &&.*p.<=.'f').||.(*p.>=.'A'.&&.*
1120 70 20 3c 3d 20 27 46 27 29 29 20 70 2b 2b 3b 00 00 00 53 20 20 20 20 20 20 20 20 20 20 20 20 70 p.<=.'F')).p++;...S............p
1140 72 69 6e 74 66 28 22 25 73 25 2e 2a 73 25 73 22 2c 20 43 4f 4c 4f 52 5f 59 45 4c 4c 4f 57 2c 20 rintf("%s%.*s%s",.COLOR_YELLOW,.
1160 28 69 6e 74 29 28 70 20 2d 20 73 74 61 72 74 29 2c 20 73 74 61 72 74 2c 20 43 4f 4c 4f 52 5f 52 (int)(p.-.start),.start,.COLOR_R
1180 45 53 45 54 29 3b 00 00 00 15 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 ESET);................continue;.
11a0 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 18 20 20 20 20 ...........}....................
11c0 20 20 20 20 69 66 20 28 2a 70 20 3d 3d 20 27 23 27 29 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 ....if.(*p.==.'#').{..."........
11e0 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 61 72 74 20 3d 20 70 3b 00 00 00 29 20 20 ....const.char.*start.=.p;...)..
1200 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 2a 70 20 26 26 20 2a 70 20 21 3d 20 27 5c 6e ..........while.(*p.&&.*p.!=.'\n
1220 27 29 20 70 2b 2b 3b 00 00 00 54 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 25 ').p++;...T............printf("%
1240 73 25 2e 2a 73 25 73 22 2c 20 43 4f 4c 4f 52 5f 4d 41 47 45 4e 54 41 2c 20 28 69 6e 74 29 28 70 s%.*s%s",.COLOR_MAGENTA,.(int)(p
1260 20 2d 20 73 74 61 72 74 29 2c 20 73 74 61 72 74 2c 20 43 4f 4c 4f 52 5f 52 45 53 45 54 29 3b 00 .-.start),.start,.COLOR_RESET);.
1280 00 00 15 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 09 20 20 20 20 ...............continue;........
12a0 20 20 20 20 7d 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 27 20 20 20 20 20 20 20 20 69 66 20 ....}...............'........if.
12c0 28 69 73 61 6c 70 68 61 28 2a 70 29 20 7c 7c 20 2a 70 20 3d 3d 20 27 5f 27 29 20 7b 00 00 00 19 (isalpha(*p).||.*p.==.'_').{....
12e0 20 20 20 20 20 20 20 20 20 20 20 20 77 6f 72 64 5f 6c 65 6e 20 3d 20 30 3b 00 00 00 2e 20 20 20 ............word_len.=.0;.......
1300 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 69 73 61 6c 6e 75 6d 28 2a 70 29 20 7c 7c 20 2a .........while.(isalnum(*p).||.*
1320 70 20 3d 3d 20 27 5f 27 29 20 7b 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 p.==.'_').{...:................i
1340 66 20 28 77 6f 72 64 5f 6c 65 6e 20 3c 20 32 35 35 29 20 77 6f 72 64 5b 77 6f 72 64 5f 6c 65 6e f.(word_len.<.255).word[word_len
1360 2b 2b 5d 20 3d 20 2a 70 3b 00 00 00 14 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 2b 2b ++].=.*p;....................p++
1380 3b 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 22 20 20 20 20 20 20 20 20 20 20 ;................}..."..........
13a0 20 20 77 6f 72 64 5b 77 6f 72 64 5f 6c 65 6e 5d 20 3d 20 27 5c 30 27 3b 00 00 00 0c 20 20 20 20 ..word[word_len].=.'\0';........
13c0 20 20 20 20 20 20 20 20 00 00 00 23 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 6b ...........#............if.(is_k
13e0 65 79 77 6f 72 64 28 77 6f 72 64 29 29 20 7b 00 00 00 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 eyword(word)).{...;.............
1400 20 20 20 70 72 69 6e 74 5f 74 6f 6b 65 6e 28 77 6f 72 64 2c 20 54 4f 4b 45 4e 5f 4b 45 59 57 4f ...print_token(word,.TOKEN_KEYWO
1420 52 44 2c 20 77 6f 72 64 5f 6c 65 6e 29 3b 00 00 00 27 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 RD,.word_len);...'............}.
1440 65 6c 73 65 20 69 66 20 28 69 73 5f 74 79 70 65 28 77 6f 72 64 29 29 20 7b 00 00 00 38 20 20 20 else.if.(is_type(word)).{...8...
1460 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 74 6f 6b 65 6e 28 77 6f 72 64 2c 20 54 .............print_token(word,.T
1480 4f 4b 45 4e 5f 54 59 50 45 2c 20 77 6f 72 64 5f 6c 65 6e 29 3b 00 00 00 41 20 20 20 20 20 20 20 OKEN_TYPE,.word_len);...A.......
14a0 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 77 6f 72 64 5f 6c 65 6e 20 3e 20 30 20 26 26 20 .....}.else.if.(word_len.>.0.&&.
14c0 77 6f 72 64 5b 77 6f 72 64 5f 6c 65 6e 2d 31 5d 20 3d 3d 20 27 28 27 29 20 7b 00 00 00 3e 20 20 word[word_len-1].==.'(').{...>..
14e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 74 6f 6b 65 6e 28 77 6f 72 64 2c 20 ..............print_token(word,.
1500 54 4f 4b 45 4e 5f 46 55 4e 43 54 49 4f 4e 2c 20 77 6f 72 64 5f 6c 65 6e 2d 31 29 3b 00 00 00 1c TOKEN_FUNCTION,.word_len-1);....
1520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 28 22 29 3b 00 00 00 14 ................printf("(");....
1540 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 23 20 20 20 20 20 20 20 20 ............}.else.{...#........
1560 20 20 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 25 73 22 2c 20 77 6f 72 64 29 3b 00 00 00 0d 20 ........printf("%s",.word);.....
1580 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 15 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 ...........}................cont
15a0 69 6e 75 65 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 08 20 20 20 20 20 20 20 20 00 00 inue;............}..............
15c0 00 4c 20 20 20 20 20 20 20 20 69 66 20 28 2a 70 20 3d 3d 20 27 2b 27 20 7c 7c 20 2a 70 20 3d 3d .L........if.(*p.==.'+'.||.*p.==
15e0 20 27 2d 27 20 7c 7c 20 2a 70 20 3d 3d 20 27 2a 27 20 7c 7c 20 2a 70 20 3d 3d 20 27 2f 27 20 7c .'-'.||.*p.==.'*'.||.*p.==.'/'.|
1600 7c 20 2a 70 20 3d 3d 20 27 25 27 20 7c 7c 00 00 00 4c 20 20 20 20 20 20 20 20 20 20 20 20 2a 70 |.*p.==.'%'.||...L............*p
1620 20 3d 3d 20 27 3d 27 20 7c 7c 20 2a 70 20 3d 3d 20 27 3c 27 20 7c 7c 20 2a 70 20 3d 3d 20 27 3e .==.'='.||.*p.==.'<'.||.*p.==.'>
1640 27 20 7c 7c 20 2a 70 20 3d 3d 20 27 21 27 20 7c 7c 20 2a 70 20 3d 3d 20 27 26 27 20 7c 7c 00 00 '.||.*p.==.'!'.||.*p.==.'&'.||..
1660 00 32 20 20 20 20 20 20 20 20 20 20 20 20 2a 70 20 3d 3d 20 27 7c 27 20 7c 7c 20 2a 70 20 3d 3d .2............*p.==.'|'.||.*p.==
1680 20 27 5e 27 20 7c 7c 20 2a 70 20 3d 3d 20 27 7e 27 29 20 7b 00 00 00 39 20 20 20 20 20 20 20 20 .'^'.||.*p.==.'~').{...9........
16a0 20 20 20 20 70 72 69 6e 74 66 28 22 25 73 25 63 25 73 22 2c 20 43 4f 4c 4f 52 5f 52 45 44 2c 20 ....printf("%s%c%s",.COLOR_RED,.
16c0 2a 70 2c 20 43 4f 4c 4f 52 5f 52 45 53 45 54 29 3b 00 00 00 10 20 20 20 20 20 20 20 20 20 20 20 *p,.COLOR_RESET);...............
16e0 20 70 2b 2b 3b 00 00 00 15 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 .p++;................continue;..
1700 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 19 20 20 20 20 20 ..........}.....................
1720 20 20 20 70 72 69 6e 74 66 28 22 25 63 22 2c 20 2a 70 29 3b 00 00 00 0c 20 20 20 20 20 20 20 20 ...printf("%c",.*p);............
1740 70 2b 2b 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 11 20 20 20 20 70 72 69 p++;........}................pri
1760 6e 74 66 28 22 5c 6e 22 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 37 73 74 61 74 69 63 20 76 6f ntf("\n");....}.......7static.vo
1780 69 64 20 70 72 6f 63 65 73 73 5f 69 6e 70 75 74 28 46 49 4c 45 20 2a 69 6e 70 75 74 2c 20 4f 70 id.process_input(FILE.*input,.Op
17a0 74 69 6f 6e 73 20 2a 6f 70 74 73 29 20 7b 00 00 00 16 20 20 20 20 63 68 61 72 20 2a 6c 69 6e 65 tions.*opts).{........char.*line
17c0 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 20 20 73 69 7a 65 5f 74 20 6c 65 6e 20 3d 20 30 3b 00 .=.NULL;........size_t.len.=.0;.
17e0 00 00 11 20 20 20 20 73 73 69 7a 65 5f 74 20 72 65 61 64 3b 00 00 00 15 20 20 20 20 69 6e 74 20 .......ssize_t.read;........int.
1800 6c 69 6e 65 5f 6e 75 6d 20 3d 20 31 3b 00 00 00 04 20 20 20 20 00 00 00 38 20 20 20 20 77 68 69 line_num.=.1;...........8....whi
1820 6c 65 20 28 28 72 65 61 64 20 3d 20 67 65 74 6c 69 6e 65 28 26 6c 69 6e 65 2c 20 26 6c 65 6e 2c le.((read.=.getline(&line,.&len,
1840 20 69 6e 70 75 74 29 29 20 21 3d 20 2d 31 29 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 69 66 20 .input)).!=.-1).{.../........if.
1860 28 72 65 61 64 20 3e 20 30 20 26 26 20 6c 69 6e 65 5b 72 65 61 64 2d 31 5d 20 3d 3d 20 27 5c 6e (read.>.0.&&.line[read-1].==.'\n
1880 27 29 20 7b 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 5b 72 65 61 64 2d 31 5d ').{................line[read-1]
18a0 20 3d 20 27 5c 30 27 3b 00 00 00 13 20 20 20 20 20 20 20 20 20 20 20 20 72 65 61 64 2d 2d 3b 00 .=.'\0';................read--;.
18c0 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 1f 20 20 20 20 ...........}....................
18e0 20 20 20 20 69 66 20 28 6f 70 74 73 2d 3e 6c 69 6e 65 5f 6e 75 6d 62 65 72 73 29 00 00 00 41 20 ....if.(opts->line_numbers)...A.
1900 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 25 73 25 34 64 25 73 20 22 2c 20 43 4f ...........printf("%s%4d%s.",.CO
1920 4c 4f 52 5f 44 49 4d 2c 20 6c 69 6e 65 5f 6e 75 6d 2c 20 43 4f 4c 4f 52 5f 52 45 53 45 54 29 3b LOR_DIM,.line_num,.COLOR_RESET);
1940 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 23 20 20 20 20 20 20 20 20 68 69 67 68 6c 69 67 68 ...............#........highligh
1960 74 5f 6c 69 6e 65 28 6c 69 6e 65 2c 20 6f 70 74 73 29 3b 00 00 00 13 20 20 20 20 20 20 20 20 6c t_line(line,.opts);............l
1980 69 6e 65 5f 6e 75 6d 2b 2b 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 0f 20 ine_num++;........}.............
19a0 20 20 20 66 72 65 65 28 6c 69 6e 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3e 73 74 61 74 69 ...free(line);....}.......>stati
19c0 63 20 69 6e 74 20 70 61 72 73 65 5f 61 72 67 73 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 c.int.parse_args(int.argc,.char.
19e0 2a 61 72 67 76 5b 5d 2c 20 4f 70 74 69 6f 6e 73 20 2a 6f 70 74 73 29 20 7b 00 00 00 28 20 20 20 *argv[],.Options.*opts).{...(...
1a00 20 73 74 61 74 69 63 20 73 74 72 75 63 74 20 6f 70 74 69 6f 6e 20 6c 6f 6e 67 5f 6f 70 74 73 5b .static.struct.option.long_opts[
1a20 5d 20 3d 20 7b 00 00 00 2e 20 20 20 20 20 20 20 20 7b 22 6c 69 6e 65 2d 6e 75 6d 62 65 72 73 22 ].=.{............{"line-numbers"
1a40 2c 20 6e 6f 5f 61 72 67 75 6d 65 6e 74 2c 20 30 2c 20 27 6e 27 7d 2c 00 00 00 26 20 20 20 20 20 ,.no_argument,.0,.'n'},...&.....
1a60 20 20 20 7b 22 68 65 6c 70 22 2c 20 6e 6f 5f 61 72 67 75 6d 65 6e 74 2c 20 30 2c 20 27 68 27 7d ...{"help",.no_argument,.0,.'h'}
1a80 2c 00 00 00 30 20 20 20 20 20 20 20 20 7b 22 6c 61 6e 67 75 61 67 65 22 2c 20 72 65 71 75 69 72 ,...0........{"language",.requir
1aa0 65 64 5f 61 72 67 75 6d 65 6e 74 2c 20 30 2c 20 27 6c 27 7d 2c 00 00 00 30 20 20 20 20 20 20 20 ed_argument,.0,.'l'},...0.......
1ac0 20 7b 22 74 61 62 2d 73 69 7a 65 22 2c 20 72 65 71 75 69 72 65 64 5f 61 72 67 75 6d 65 6e 74 2c .{"tab-size",.required_argument,
1ae0 20 30 2c 20 27 74 27 7d 2c 00 00 00 14 20 20 20 20 20 20 20 20 7b 30 2c 20 30 2c 20 30 2c 20 30 .0,.'t'},............{0,.0,.0,.0
1b00 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 04 20 20 20 20 00 00 00 0c 20 20 20 20 69 6e 74 20 6f }........};................int.o
1b20 70 74 3b 00 00 00 04 20 20 20 20 00 00 00 4e 20 20 20 20 77 68 69 6c 65 20 28 28 6f 70 74 20 3d pt;...........N....while.((opt.=
1b40 20 67 65 74 6f 70 74 5f 6c 6f 6e 67 28 61 72 67 63 2c 20 61 72 67 76 2c 20 22 6e 68 6c 3a 74 3a .getopt_long(argc,.argv,."nhl:t:
1b60 22 2c 20 6c 6f 6e 67 5f 6f 70 74 73 2c 20 4e 55 4c 4c 29 29 20 21 3d 20 2d 31 29 20 7b 00 00 00 ",.long_opts,.NULL)).!=.-1).{...
1b80 16 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 6f 70 74 29 20 7b 00 00 00 34 20 20 20 20 20 .........switch.(opt).{...4.....
1ba0 20 20 20 20 20 20 20 63 61 73 65 20 27 6e 27 3a 20 6f 70 74 73 2d 3e 6c 69 6e 65 5f 6e 75 6d 62 .......case.'n':.opts->line_numb
1bc0 65 72 73 20 3d 20 31 3b 20 62 72 65 61 6b 3b 00 00 00 2c 20 20 20 20 20 20 20 20 20 20 20 20 63 ers.=.1;.break;...,............c
1be0 61 73 65 20 27 68 27 3a 20 6f 70 74 73 2d 3e 68 65 6c 70 20 3d 20 31 3b 20 62 72 65 61 6b 3b 00 ase.'h':.opts->help.=.1;.break;.
1c00 00 00 41 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 6c 27 3a 20 73 74 72 6e 63 70 79 ..A............case.'l':.strncpy
1c20 28 6f 70 74 73 2d 3e 6c 61 6e 67 75 61 67 65 2c 20 6f 70 74 61 72 67 2c 20 33 31 29 3b 20 62 72 (opts->language,.optarg,.31);.br
1c40 65 61 6b 3b 00 00 00 3b 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 74 27 3a 20 6f 70 eak;...;............case.'t':.op
1c60 74 73 2d 3e 74 61 62 5f 73 69 7a 65 20 3d 20 61 74 6f 69 28 6f 70 74 61 72 67 29 3b 20 62 72 65 ts->tab_size.=.atoi(optarg);.bre
1c80 61 6b 3b 00 00 00 1f 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 20 72 65 74 75 ak;................default:.retu
1ca0 72 6e 20 2d 31 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 04 rn.-1;............}........}....
1cc0 20 20 20 20 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 ............return.0;....}......
1ce0 00 1e 73 74 61 74 69 63 20 76 6f 69 64 20 70 72 69 6e 74 5f 68 65 6c 70 28 76 6f 69 64 29 20 7b ..static.void.print_help(void).{
1d00 00 00 00 25 20 20 20 20 70 72 69 6e 74 66 28 22 63 63 61 74 20 2d 20 63 6f 6c 6f 72 69 7a 65 64 ...%....printf("ccat.-.colorized
1d20 20 63 61 74 5c 6e 22 29 3b 00 00 00 33 20 20 20 20 70 72 69 6e 74 66 28 22 55 73 61 67 65 3a 20 .cat\n");...3....printf("Usage:.
1d40 63 61 74 20 66 69 6c 65 20 7c 20 63 63 61 74 20 5b 4f 50 54 49 4f 4e 53 5d 5c 6e 5c 6e 22 29 3b cat.file.|.ccat.[OPTIONS]\n\n");
1d60 00 00 00 19 20 20 20 20 70 72 69 6e 74 66 28 22 4f 70 74 69 6f 6e 73 3a 5c 6e 22 29 3b 00 00 00 ........printf("Options:\n");...
1d80 3b 20 20 20 20 70 72 69 6e 74 66 28 22 20 20 2d 6e 2c 20 2d 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 ;....printf("..-n,.--line-number
1da0 73 20 20 20 20 20 53 68 6f 77 20 6c 69 6e 65 20 6e 75 6d 62 65 72 73 5c 6e 22 29 3b 00 00 00 47 s.....Show.line.numbers\n");...G
1dc0 20 20 20 20 70 72 69 6e 74 66 28 22 20 20 2d 6c 2c 20 2d 2d 6c 61 6e 67 75 61 67 65 20 4c 41 4e ....printf("..-l,.--language.LAN
1de0 47 20 20 20 20 53 65 74 20 6c 61 6e 67 75 61 67 65 20 28 63 2c 20 70 79 74 68 6f 6e 2c 20 65 74 G....Set.language.(c,.python,.et
1e00 63 29 5c 6e 22 29 3b 00 00 00 36 20 20 20 20 70 72 69 6e 74 66 28 22 20 20 2d 74 2c 20 2d 2d 74 c)\n");...6....printf("..-t,.--t
1e20 61 62 2d 73 69 7a 65 20 4e 20 20 20 20 20 20 20 53 65 74 20 74 61 62 20 73 69 7a 65 5c 6e 22 29 ab-size.N.......Set.tab.size\n")
1e40 3b 00 00 00 39 20 20 20 20 70 72 69 6e 74 66 28 22 20 20 2d 68 2c 20 2d 2d 68 65 6c 70 20 20 20 ;...9....printf("..-h,.--help...
1e60 20 20 20 20 20 20 20 20 20 53 68 6f 77 20 74 68 69 73 20 68 65 6c 70 5c 6e 5c 6e 22 29 3b 00 00 .........Show.this.help\n\n");..
1e80 00 1a 20 20 20 20 70 72 69 6e 74 66 28 22 45 78 61 6d 70 6c 65 73 3a 5c 6e 22 29 3b 00 00 00 27 ......printf("Examples:\n");...'
1ea0 20 20 20 20 70 72 69 6e 74 66 28 22 20 20 63 61 74 20 66 69 6c 65 2e 63 20 7c 20 63 63 61 74 20 ....printf("..cat.file.c.|.ccat.
1ec0 2d 6e 5c 6e 22 29 3b 00 00 00 2c 20 20 20 20 70 72 69 6e 74 66 28 22 20 20 67 63 63 20 2d 45 20 -n\n");...,....printf("..gcc.-E.
1ee0 66 69 6c 65 2e 63 20 7c 20 63 63 61 74 20 2d 6c 20 63 5c 6e 22 29 3b 00 00 00 01 7d 00 00 00 00 file.c.|.ccat.-l.c\n");....}....
1f00 00 00 00 22 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 61 72 67 ..."int.main(int.argc,.char.*arg
1f20 76 5b 5d 29 20 7b 00 00 00 11 20 20 20 20 4f 70 74 69 6f 6e 73 20 6f 70 74 73 3b 00 00 00 18 20 v[]).{........Options.opts;.....
1f40 20 20 20 69 6e 69 74 5f 6f 70 74 69 6f 6e 73 28 26 6f 70 74 73 29 3b 00 00 00 04 20 20 20 20 00 ...init_options(&opts);.........
1f60 00 00 3a 20 20 20 20 69 66 20 28 70 61 72 73 65 5f 61 72 67 73 28 61 72 67 63 2c 20 61 72 67 76 ..:....if.(parse_args(argc,.argv
1f80 2c 20 26 6f 70 74 73 29 20 21 3d 20 30 20 7c 7c 20 6f 70 74 73 2e 68 65 6c 70 29 20 7b 00 00 00 ,.&opts).!=.0.||.opts.help).{...
1fa0 15 20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 68 65 6c 70 28 29 3b 00 00 00 37 20 20 20 20 20 20 .........print_help();...7......
1fc0 20 20 72 65 74 75 72 6e 20 6f 70 74 73 2e 68 65 6c 70 20 3f 20 45 58 49 54 5f 53 55 43 43 45 53 ..return.opts.help.?.EXIT_SUCCES
1fe0 53 20 3a 20 45 58 49 54 5f 46 41 49 4c 55 52 45 3b 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 S.:.EXIT_FAILURE;........}......
2000 20 20 00 00 00 20 20 20 20 20 69 66 20 28 69 73 61 74 74 79 28 66 69 6c 65 6e 6f 28 73 74 64 69 ..........if.(isatty(fileno(stdi
2020 6e 29 29 29 20 7b 00 00 00 17 20 20 20 20 20 20 20 20 63 68 61 72 20 62 75 66 5b 38 31 39 32 5d n))).{............char.buf[8192]
2040 3b 00 00 00 11 20 20 20 20 20 20 20 20 73 69 7a 65 5f 74 20 6e 3b 00 00 00 3b 20 20 20 20 20 20 ;............size_t.n;...;......
2060 20 20 77 68 69 6c 65 20 28 28 6e 20 3d 20 66 72 65 61 64 28 62 75 66 2c 20 31 2c 20 73 69 7a 65 ..while.((n.=.fread(buf,.1,.size
2080 6f 66 28 62 75 66 29 2c 20 73 74 64 69 6e 29 29 20 3e 20 30 29 00 00 00 26 20 20 20 20 20 20 20 of(buf),.stdin)).>.0)...&.......
20a0 20 20 20 20 20 66 77 72 69 74 65 28 62 75 66 2c 20 31 2c 20 6e 2c 20 73 74 64 6f 75 74 29 3b 00 .....fwrite(buf,.1,.n,.stdout);.
20c0 00 00 0c 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 00 24 20 20 20 20 20 20 20 20 70 72 6f 63 65 .......}.else.{...$........proce
20e0 73 73 5f 69 6e 70 75 74 28 73 74 64 69 6e 2c 20 26 6f 70 74 73 29 3b 00 00 00 05 20 20 20 20 7d ss_input(stdin,.&opts);........}
2100 00 00 00 04 20 20 20 20 00 00 00 18 20 20 20 20 72 65 74 75 72 6e 20 45 58 49 54 5f 53 55 43 43 ................return.EXIT_SUCC
2120 45 53 53 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 ESS;....}5......................
2140 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 1c 00 00 00 00 00 00 01 00 00 00 00 00 00 ................................
2160 00 35 81 5f d0 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 .5._............................
2180 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22e0 00 00 00 00 00 00 00 69 ff 83 cf 04 01 00 00 00 00 00 f5 18 00 00 00 95 00 00 00 00 00 00 00 00 .......i........................
2300 00 00 00 01 00 00 00 10 20 20 20 20 20 20 20 20 20 20 20 20 77 6f 72 64 f5 18 00 00 00 96 00 00 ....................word........
2320 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ................................
2340 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 ..................5.............
2360 00 00 00 00 00 00 00 00 00 00 95 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2380 00 00 f9 0f 00 00 00 00 00 00 f5 18 00 00 00 00 95 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 ................................
23a0 6c 00 00 00 01 00 00 00 f9 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3f 0c 00 00 00 00 00 00 l.......................?.......
23c0 35 81 5f d0 00 00 00 02 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00 00 00 00 5._.............................
23e0 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2520 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 56 00 00 .............................V..
2540 00 00 00 00 00 00 69 ff 83 d4 04 01 00 00 00 01 00 f5 18 00 00 00 00 00 00 00 01 00 00 00 00 00 ......i.........................
2560 00 00 05 00 00 00 03 2f 2a 2a 00 00 00 17 20 2a 20 63 63 61 74 20 2d 20 63 6f 6c 6f 72 69 7a 65 ......./**.....*.ccat.-.colorize
2580 64 20 63 61 74 00 00 00 18 20 2a 20 63 6f 6d 70 69 6c 65 3a 20 6d 61 6b 65 20 72 65 6c 65 61 73 d.cat.....*.compile:.make.releas
25a0 65 00 00 00 03 20 2a 2f 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 e.....*/....5...................
25c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3a 00 00 00 00 00 00 00 00 00 00 00 ....................:...........
25e0 00 00 00 00 35 81 5f d0 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 de ....5._.........................
2600 00 00 00 10 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2740 00 00 00 00 00 00 00 00 00 de 00 00 00 0b 00 00 00 00 00 00 00 de 00 00 00 0e 00 00 00 00 00 00 ................................
2760 00 76 00 00 00 0e 00 00 00 00 69 ff 84 e4 04 01 00 00 00 02 00 f5 18 00 00 00 dd 00 00 00 df 00 .v........i.....................
2780 00 00 fd 00 00 00 01 00 00 00 25 20 20 20 20 70 72 69 6e 74 66 28 22 63 63 61 74 20 2d 20 63 6f ..........%....printf("ccat.-.co
27a0 6c 6f 72 69 7a 65 64 20 63 61 74 5c 6e 22 29 3b 35 81 f5 18 00 00 00 00 dd 00 00 00 0d 00 00 00 lorized.cat\n");5...............
27c0 00 00 00 00 03 00 00 00 00 00 00 00 0a 00 00 00 43 18 00 00 00 00 00 00 03 00 00 00 00 00 00 00 ................C...............
27e0 0a 00 00 00 00 00 00 00 35 81 e7 aa ........5...