chrislo-sourceclassifier 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. data/Manifest +0 -312
  2. data/Rakefile +2 -2
  3. data/sourceclassifier.gemspec +6 -6
  4. metadata +4 -316
  5. data/sources/gcc/ackermann.gcc-2.gcc +0 -93
  6. data/sources/gcc/ackermann.gcc-3.gcc +0 -20
  7. data/sources/gcc/ary.gcc +0 -40
  8. data/sources/gcc/binarytrees.gcc +0 -136
  9. data/sources/gcc/binarytrees.gcc-2.gcc +0 -140
  10. data/sources/gcc/binarytrees.gcc-3.gcc +0 -134
  11. data/sources/gcc/chameneos.gcc +0 -117
  12. data/sources/gcc/chameneos.gcc-2.gcc +0 -134
  13. data/sources/gcc/chameneos.gcc-3.gcc +0 -120
  14. data/sources/gcc/chameneosredux.gcc +0 -306
  15. data/sources/gcc/echo.gcc +0 -144
  16. data/sources/gcc/except.gcc +0 -52
  17. data/sources/gcc/fannkuch.gcc +0 -105
  18. data/sources/gcc/fannkuch.gcc-2.gcc +0 -94
  19. data/sources/gcc/fasta.gcc +0 -158
  20. data/sources/gcc/fasta.gcc-2.gcc +0 -132
  21. data/sources/gcc/fasta.gcc-3.gcc +0 -145
  22. data/sources/gcc/fasta.gcc-4.gcc +0 -141
  23. data/sources/gcc/fibo.gcc +0 -20
  24. data/sources/gcc/harmonic.gcc +0 -22
  25. data/sources/gcc/hash.gcc +0 -31
  26. data/sources/gcc/hash2.gcc +0 -38
  27. data/sources/gcc/heapsort.gcc +0 -72
  28. data/sources/gcc/hello.gcc-2.gcc +0 -12
  29. data/sources/gcc/hello.gcc-3.gcc +0 -20
  30. data/sources/gcc/knucleotide.gcc +0 -173
  31. data/sources/gcc/knucleotide.gcc-2.gcc +0 -168
  32. data/sources/gcc/lists.gcc +0 -226
  33. data/sources/gcc/magicsquares.gcc +0 -378
  34. data/sources/gcc/mandelbrot.gcc +0 -84
  35. data/sources/gcc/mandelbrot.gcc-2.gcc +0 -63
  36. data/sources/gcc/mandelbrot.gcc-3.gcc +0 -91
  37. data/sources/gcc/mandelbrot.gcc-4.gcc +0 -78
  38. data/sources/gcc/matrix.gcc +0 -66
  39. data/sources/gcc/message.gcc-2.gcc +0 -72
  40. data/sources/gcc/message.gcc-3.gcc +0 -64
  41. data/sources/gcc/methcall.gcc +0 -89
  42. data/sources/gcc/moments.gcc +0 -120
  43. data/sources/gcc/nbody.gcc +0 -142
  44. data/sources/gcc/nbody.gcc-2.gcc +0 -143
  45. data/sources/gcc/nbody.gcc-3.gcc +0 -142
  46. data/sources/gcc/nestedloop.gcc +0 -25
  47. data/sources/gcc/nsieve.gcc +0 -35
  48. data/sources/gcc/nsievebits.gcc-2.gcc +0 -37
  49. data/sources/gcc/nsievebits.gcc-3.gcc +0 -53
  50. data/sources/gcc/objinst.gcc +0 -95
  51. data/sources/gcc/partialsums.gcc +0 -86
  52. data/sources/gcc/partialsums.gcc-3.gcc +0 -81
  53. data/sources/gcc/partialsums.gcc-4.gcc +0 -68
  54. data/sources/gcc/pidigits.gcc +0 -105
  55. data/sources/gcc/primes.gcc +0 -75
  56. data/sources/gcc/prodcons.gcc +0 -86
  57. data/sources/gcc/random.gcc +0 -29
  58. data/sources/gcc/raytracer.gcc +0 -125
  59. data/sources/gcc/raytracer.gcc-2.gcc +0 -181
  60. data/sources/gcc/recursive.gcc +0 -68
  61. data/sources/gcc/recursive.gcc-2.gcc +0 -55
  62. data/sources/gcc/regexdna.gcc-2.gcc +0 -126
  63. data/sources/gcc/regexmatch.gcc +0 -136
  64. data/sources/gcc/revcomp.gcc +0 -85
  65. data/sources/gcc/revcomp.gcc-2.gcc +0 -88
  66. data/sources/gcc/revcomp.gcc-4.gcc +0 -71
  67. data/sources/gcc/reversefile.gcc +0 -103
  68. data/sources/gcc/reversefile.gcc-2.gcc +0 -56
  69. data/sources/gcc/sieve.gcc +0 -34
  70. data/sources/gcc/spectralnorm.gcc +0 -54
  71. data/sources/gcc/spellcheck.gcc +0 -72
  72. data/sources/gcc/spellcheck.gcc-2.gcc +0 -61
  73. data/sources/gcc/strcat.gcc +0 -38
  74. data/sources/gcc/sumcol.gcc-2.gcc +0 -98
  75. data/sources/gcc/sumcol.gcc-3.gcc +0 -22
  76. data/sources/gcc/sumcol.gcc-4.gcc +0 -18
  77. data/sources/gcc/sumcol.gcc-5.gcc +0 -32
  78. data/sources/gcc/takfp.gcc +0 -23
  79. data/sources/gcc/tcp-stream.gcc +0 -122
  80. data/sources/gcc/tcpecho.gcc +0 -122
  81. data/sources/gcc/tcpecho.gcc-2.gcc +0 -136
  82. data/sources/gcc/tcprequest.gcc +0 -122
  83. data/sources/gcc/threadring.gcc +0 -73
  84. data/sources/gcc/wc.gcc +0 -52
  85. data/sources/gcc/wc.gcc-2.gcc +0 -40
  86. data/sources/gcc/wc.gcc-3.gcc +0 -46
  87. data/sources/gcc/wordfreq.gcc-2.gcc +0 -85
  88. data/sources/perl/ackermann.perl +0 -28
  89. data/sources/perl/ackermann.perl-2.perl +0 -25
  90. data/sources/perl/ackermann.perl-3.perl +0 -20
  91. data/sources/perl/ackermann.perl-4.perl +0 -18
  92. data/sources/perl/ary.perl +0 -25
  93. data/sources/perl/ary.perl-2.perl +0 -23
  94. data/sources/perl/binarytrees.perl +0 -66
  95. data/sources/perl/binarytrees.perl-2.perl +0 -71
  96. data/sources/perl/chameneos.perl +0 -67
  97. data/sources/perl/echo.perl +0 -81
  98. data/sources/perl/except.perl +0 -73
  99. data/sources/perl/fannkuch.perl +0 -44
  100. data/sources/perl/fannkuch.perl-2.perl +0 -38
  101. data/sources/perl/fasta.perl +0 -112
  102. data/sources/perl/fasta.perl-2.perl +0 -135
  103. data/sources/perl/fasta.perl-4.perl +0 -122
  104. data/sources/perl/fibo.perl +0 -15
  105. data/sources/perl/fibo.perl-2.perl +0 -0
  106. data/sources/perl/fibo.perl-3.perl +0 -0
  107. data/sources/perl/harmonic.perl +0 -7
  108. data/sources/perl/hash.perl +0 -23
  109. data/sources/perl/hash.perl-2.perl +0 -17
  110. data/sources/perl/hash.perl-3.perl +0 -24
  111. data/sources/perl/hash2.perl +0 -16
  112. data/sources/perl/heapsort.perl +0 -65
  113. data/sources/perl/heapsort.perl-2.perl +0 -0
  114. data/sources/perl/hello.perl +0 -5
  115. data/sources/perl/knucleotide.perl-2.perl +0 -30
  116. data/sources/perl/lists.perl +0 -48
  117. data/sources/perl/mandelbrot.perl-2.perl +0 -32
  118. data/sources/perl/matrix.perl +0 -59
  119. data/sources/perl/matrix.perl-2.perl +0 -0
  120. data/sources/perl/matrix.perl-3.perl +0 -0
  121. data/sources/perl/message.perl +0 -27
  122. data/sources/perl/methcall.perl +0 -66
  123. data/sources/perl/moments.perl +0 -44
  124. data/sources/perl/nbody.perl +0 -108
  125. data/sources/perl/nestedloop.perl +0 -28
  126. data/sources/perl/nsieve.perl-2.perl +0 -41
  127. data/sources/perl/nsieve.perl-4.perl +0 -43
  128. data/sources/perl/nsievebits.perl +0 -37
  129. data/sources/perl/objinst.perl +0 -73
  130. data/sources/perl/partialsums.perl-3.perl +0 -31
  131. data/sources/perl/pidigits.perl +0 -52
  132. data/sources/perl/pidigits.perl-2.perl +0 -47
  133. data/sources/perl/process.perl +0 -50
  134. data/sources/perl/prodcons.perl +0 -47
  135. data/sources/perl/random.perl-4.perl +0 -17
  136. data/sources/perl/recursive.perl-2.perl +0 -57
  137. data/sources/perl/regexdna.perl +0 -48
  138. data/sources/perl/regexdna.perl-2.perl +0 -43
  139. data/sources/perl/regexdna.perl-3.perl +0 -50
  140. data/sources/perl/regexdna.perl-4.perl +0 -49
  141. data/sources/perl/regexdna.perl-5.perl +0 -42
  142. data/sources/perl/regexdna.perl-6.perl +0 -43
  143. data/sources/perl/regexmatch.perl +0 -35
  144. data/sources/perl/revcomp.perl-2.perl +0 -34
  145. data/sources/perl/reversefile.perl +0 -8
  146. data/sources/perl/reversefile.perl-2.perl +0 -0
  147. data/sources/perl/reversefile.perl-3.perl +0 -0
  148. data/sources/perl/sieve.perl +0 -23
  149. data/sources/perl/spectralnorm.perl-2.perl +0 -54
  150. data/sources/perl/spellcheck.perl +0 -24
  151. data/sources/perl/strcat.perl +0 -13
  152. data/sources/perl/strcat.perl-2.perl +0 -0
  153. data/sources/perl/sumcol.perl +0 -8
  154. data/sources/perl/takfp.perl +0 -23
  155. data/sources/perl/takfp.perl-3.perl +0 -20
  156. data/sources/perl/tcpecho.perl +0 -61
  157. data/sources/perl/tcprequest.perl +0 -61
  158. data/sources/perl/tcpstream.perl +0 -61
  159. data/sources/perl/threadring.perl +0 -55
  160. data/sources/perl/threadring.perl-2.perl +0 -43
  161. data/sources/perl/wc.perl +0 -20
  162. data/sources/perl/wc.perl-2.perl +0 -14
  163. data/sources/perl/wordfreq.perl +0 -22
  164. data/sources/perl/wordfreq.perl-3.perl +0 -0
  165. data/sources/perl/wordfreq.perl3.perl +0 -0
  166. data/sources/python/ackermann.python +0 -21
  167. data/sources/python/ary.python +0 -19
  168. data/sources/python/binarytrees.python +0 -39
  169. data/sources/python/binarytrees.python-3.python +0 -44
  170. data/sources/python/chameneos.python-6.python +0 -73
  171. data/sources/python/chameneosredux.python +0 -126
  172. data/sources/python/chameneosredux.python-2.python +0 -122
  173. data/sources/python/dispatch.python +0 -176
  174. data/sources/python/dispatch.python-2.python +0 -136
  175. data/sources/python/echo.python +0 -64
  176. data/sources/python/except.python +0 -62
  177. data/sources/python/fannkuch.python +0 -50
  178. data/sources/python/fannkuch.python-2.python +0 -54
  179. data/sources/python/fasta.python-2.python +0 -79
  180. data/sources/python/fibo.python +0 -17
  181. data/sources/python/fibo.python-2.python +0 -0
  182. data/sources/python/fibo.python-3.python +0 -0
  183. data/sources/python/harmonic.python-2.python +0 -9
  184. data/sources/python/hash.python +0 -21
  185. data/sources/python/hash.python-2.python +0 -0
  186. data/sources/python/hash2.python +0 -30
  187. data/sources/python/heapsort.python-3.python +0 -66
  188. data/sources/python/hello.python +0 -5
  189. data/sources/python/implicitode.python +0 -231
  190. data/sources/python/knucleotide.python +0 -55
  191. data/sources/python/lists.python +0 -44
  192. data/sources/python/magicsquares.python +0 -145
  193. data/sources/python/mandelbrot.python +0 -44
  194. data/sources/python/mandelbrot.python-2.python +0 -35
  195. data/sources/python/mandelbrot.python-3.python +0 -46
  196. data/sources/python/matrix.python +0 -34
  197. data/sources/python/matrix.python-2.python +0 -23
  198. data/sources/python/message.python +0 -24
  199. data/sources/python/message.python-2.python +0 -20
  200. data/sources/python/message.python-3.python +0 -19
  201. data/sources/python/meteor.python +0 -210
  202. data/sources/python/meteor.python-2.python +0 -192
  203. data/sources/python/methcall.python +0 -51
  204. data/sources/python/moments.python +0 -65
  205. data/sources/python/nbody.python +0 -123
  206. data/sources/python/nbody.python-2.python +0 -120
  207. data/sources/python/nestedloop.python +0 -24
  208. data/sources/python/nsieve.python +0 -27
  209. data/sources/python/nsieve.python-2.python +0 -23
  210. data/sources/python/nsieve.python-4.python +0 -25
  211. data/sources/python/nsievebits.python +0 -27
  212. data/sources/python/nsievebits.python-2.python +0 -43
  213. data/sources/python/objinst.python +0 -53
  214. data/sources/python/partialsums.python +0 -37
  215. data/sources/python/partialsums.python-2.python +0 -35
  216. data/sources/python/partialsums.python-3.python +0 -48
  217. data/sources/python/pidigits.python +0 -38
  218. data/sources/python/pidigits.python-3.python +0 -63
  219. data/sources/python/pidigits.python-4.python +0 -24
  220. data/sources/python/process.python +0 -51
  221. data/sources/python/process.python-2.python +0 -133
  222. data/sources/python/prodcons.python +0 -51
  223. data/sources/python/prodcons.python-2.python +0 -0
  224. data/sources/python/random.python +0 -27
  225. data/sources/python/raytracer.python +0 -203
  226. data/sources/python/recursive.python +0 -35
  227. data/sources/python/regexdna.python +0 -39
  228. data/sources/python/regexdna.python-2.python +0 -34
  229. data/sources/python/regexmatch.python +0 -36
  230. data/sources/python/revcomp.python-3.python +0 -31
  231. data/sources/python/reversefile.python +0 -13
  232. data/sources/python/reversefile.python-2.python +0 -0
  233. data/sources/python/reversefile.python-3.python +0 -0
  234. data/sources/python/sieve.python +0 -50
  235. data/sources/python/spectralnorm.python-2.python +0 -36
  236. data/sources/python/spellcheck.python +0 -17
  237. data/sources/python/strcat.python +0 -35
  238. data/sources/python/strcat.python-2.python +0 -0
  239. data/sources/python/sumcol.python-2.python +0 -0
  240. data/sources/python/sumcol.python-3.python +0 -0
  241. data/sources/python/takfp.python +0 -19
  242. data/sources/python/tcpecho.python +0 -67
  243. data/sources/python/tcprequest.python +0 -67
  244. data/sources/python/tcpstream.python +0 -67
  245. data/sources/python/threadring.python +0 -47
  246. data/sources/python/threadring.python-2.python +0 -40
  247. data/sources/python/threadring.python-3.python +0 -34
  248. data/sources/python/wc.python-2.python +0 -19
  249. data/sources/python/wordfreq.python +0 -43
  250. data/sources/python/wordfreq.python-2.python +0 -0
  251. data/sources/python/wordfreq.python-3.python +0 -28
  252. data/sources/python/wordfreq.python-4.python +0 -38
  253. data/sources/python/wordfreq.python-5.python +0 -39
  254. data/sources/ruby/ackermann.ruby +0 -17
  255. data/sources/ruby/ackermann.ruby-5.ruby +0 -153
  256. data/sources/ruby/ary.ruby +0 -22
  257. data/sources/ruby/binarytrees.ruby-2.ruby +0 -55
  258. data/sources/ruby/chameneos.ruby-2.ruby +0 -71
  259. data/sources/ruby/dispatch.ruby +0 -114
  260. data/sources/ruby/echo.ruby +0 -41
  261. data/sources/ruby/except.ruby +0 -61
  262. data/sources/ruby/except.ruby-2.ruby +0 -61
  263. data/sources/ruby/fannkuch.ruby +0 -42
  264. data/sources/ruby/fasta.ruby +0 -81
  265. data/sources/ruby/fibo.ruby +0 -15
  266. data/sources/ruby/harmonic.ruby-2.ruby +0 -15
  267. data/sources/ruby/hash.ruby +0 -19
  268. data/sources/ruby/hash2.ruby +0 -23
  269. data/sources/ruby/heapsort.ruby +0 -55
  270. data/sources/ruby/hello.ruby +0 -6
  271. data/sources/ruby/knucleotide.ruby-2.ruby +0 -44
  272. data/sources/ruby/lists.ruby +0 -46
  273. data/sources/ruby/mandelbrot.ruby-3.ruby +0 -63
  274. data/sources/ruby/matrix.ruby +0 -40
  275. data/sources/ruby/matrix.ruby-2.ruby +0 -30
  276. data/sources/ruby/message.ruby +0 -29
  277. data/sources/ruby/message.ruby-2.ruby +0 -24
  278. data/sources/ruby/meteor.ruby +0 -386
  279. data/sources/ruby/meteor.ruby-2.ruby +0 -561
  280. data/sources/ruby/methcall.ruby +0 -58
  281. data/sources/ruby/methcall.ruby-2.ruby +0 -54
  282. data/sources/ruby/moments.ruby +0 -64
  283. data/sources/ruby/nbody.ruby-2.ruby +0 -145
  284. data/sources/ruby/nestedloop.ruby +0 -22
  285. data/sources/ruby/nsieve.ruby +0 -36
  286. data/sources/ruby/nsieve.ruby-2.ruby +0 -25
  287. data/sources/ruby/nsievebits.ruby-2.ruby +0 -42
  288. data/sources/ruby/objinst.ruby +0 -58
  289. data/sources/ruby/partialsums.ruby +0 -39
  290. data/sources/ruby/pidigits.ruby +0 -92
  291. data/sources/ruby/pidigits.ruby-2.ruby +0 -109
  292. data/sources/ruby/prodcons.ruby +0 -41
  293. data/sources/ruby/random.ruby +0 -17
  294. data/sources/ruby/recursive.ruby-2.ruby +0 -53
  295. data/sources/ruby/regexdna.ruby +0 -32
  296. data/sources/ruby/regexdna.ruby-2.ruby +0 -38
  297. data/sources/ruby/regexmatch.ruby +0 -33
  298. data/sources/ruby/revcomp.ruby +0 -28
  299. data/sources/ruby/reversefile.ruby +0 -7
  300. data/sources/ruby/sieve.ruby +0 -30
  301. data/sources/ruby/spectralnorm.ruby +0 -48
  302. data/sources/ruby/spellcheck.ruby +0 -18
  303. data/sources/ruby/spellcheck.ruby-2.ruby +0 -0
  304. data/sources/ruby/strcat.ruby +0 -12
  305. data/sources/ruby/strcat.ruby-2.ruby +0 -12
  306. data/sources/ruby/sumcol.ruby +0 -12
  307. data/sources/ruby/sumcol.ruby-2.ruby +0 -5
  308. data/sources/ruby/takfp.ruby +0 -15
  309. data/sources/ruby/tcpecho.ruby +0 -45
  310. data/sources/ruby/tcprequest.ruby +0 -45
  311. data/sources/ruby/tcpstream.ruby +0 -45
  312. data/sources/ruby/threadring.ruby +0 -61
  313. data/sources/ruby/threadring.ruby-2.ruby +0 -33
  314. data/sources/ruby/wc.ruby +0 -15
  315. data/sources/ruby/wordfreq.ruby +0 -17
  316. data/sources/ruby/wordfreq.ruby2.ruby +0 -0
@@ -1,136 +0,0 @@
1
- /* -*- mode: c -*-
2
- * $Id: regexmatch.gcc,v 1.1.1.1 2004-05-19 18:11:23 bfulgham Exp $
3
- * http://www.bagley.org/~doug/shootout/
4
- */
5
-
6
- #include <sys/types.h>
7
- #include <sys/stat.h>
8
- #include <fcntl.h>
9
- #include <stdio.h>
10
- #include <pcre.h>
11
- #include <string.h>
12
-
13
- #define MAXLINES 100
14
- #define MAXLINELEN 132
15
-
16
- char *pattern =
17
- "(?:^|[^\\d\\(])" /* must be preceeded by non-digit */
18
- "(\\()?" /* match 1: possible initial left paren */
19
- "(\\d\\d\\d)" /* match 2: area code is 3 digits */
20
- "(?(1)\\))" /* if match1 then match right paren */
21
- "[ ]" /* area code followed by one space */
22
- "(\\d\\d\\d)" /* match 3: prefix of 3 digits */
23
- "[ -]" /* separator is either space or dash */
24
- "(\\d\\d\\d\\d)" /* match 4: last 4 digits */
25
- "\\D" /* must be followed by a non-digit */
26
- ;
27
-
28
-
29
- int
30
- main(int argc, char *argv[]) {
31
- int NUM = ((argc == 2) ? atoi(argv[1]) : 1);
32
- int count;
33
- char *cptr = "";
34
- char **phones;
35
- pcre *re;
36
- int erroffset;
37
- const char *errptr;
38
- int n, lines = 0;
39
- char num[256];
40
- int i, j, k, matchlen;
41
- char *matchoffset;
42
- int nmatches;
43
- int *ovec, ovecsize;
44
- pcre_extra *study;
45
-
46
- phones = (char **)malloc(MAXLINES * sizeof(char *));
47
- if (!phones) {
48
- fprintf(stderr, "malloc for phones array failed\n");
49
- exit(1);
50
- }
51
- lines = 0;
52
- while (cptr) {
53
- phones[lines] = (char *)malloc(MAXLINELEN);
54
- if (!phones[lines]) {
55
- fprintf(stderr, "malloc to hold line #%d failed\n", lines);
56
- exit(1);
57
- }
58
- cptr = fgets(phones[lines], MAXLINELEN, stdin);
59
- lines++;
60
- if (lines > MAXLINES) {
61
- fprintf(stderr, "MAXLINES is too small\n");
62
- exit(1);
63
- }
64
- }
65
-
66
- re = pcre_compile(pattern, 0, &errptr, &erroffset, NULL);
67
- if (!re) {
68
- fprintf(stderr, "can't open compile regexp\n");
69
- exit(1);
70
- }
71
-
72
- study = pcre_study(re, 0, &errptr);
73
-
74
- if (pcre_fullinfo(re, NULL, PCRE_INFO_CAPTURECOUNT, &nmatches) != 0) {
75
- fprintf(stderr, "pcre_fullinfo failed\n");
76
- exit(1);
77
- }
78
- nmatches++; /* add match of entire pattern */
79
-
80
- ovecsize = sizeof(int) * nmatches * 3;
81
- ovec = (int *)malloc(ovecsize);
82
- if (!ovec) {
83
- fprintf(stderr, "malloc for ovec array failed\n");
84
- exit(1);
85
- }
86
-
87
- count = 0;
88
- while (NUM--) {
89
- for (i=0; i<lines; i++) {
90
- n = pcre_exec(re, study,
91
- phones[i], strlen(phones[i]), 0,
92
- 0, ovec, ovecsize);
93
- if (n == nmatches) {
94
- /* stuff the match into the buffer "num" */
95
- k = 2*2; /* initial offset into ovec */
96
- /* areacode */
97
- j = 0;
98
- num[j++] = '(';
99
- matchoffset = phones[i] + ovec[k];
100
- matchlen = ovec[k+1] - ovec[k];
101
- strncpy(num+j, matchoffset, matchlen);
102
- j += matchlen; k += 2;
103
- num[j++] = ')';
104
- /* space separator */
105
- num[j++] = ' ';
106
- /* exchange */
107
- matchoffset = phones[i] + ovec[k];
108
- matchlen = ovec[k+1] - ovec[k];
109
- strncpy(num+j, matchoffset, matchlen);
110
- j += matchlen; k += 2;
111
- /* dash */
112
- num[j++] = '-';
113
- /* last 4 digits */
114
- matchoffset = phones[i] + ovec[k];
115
- matchlen = ovec[k+1] - ovec[k];
116
- strncpy(num+j, matchoffset, matchlen);
117
- j += matchlen; k += 2;
118
- /* with a cherry on top */
119
- num[j] = 0;
120
- if (0 == NUM) {
121
- count++;
122
- printf("%d: %s\n", count, num);
123
- }
124
- }
125
- }
126
- }
127
-
128
- for (i=0; i<MAXLINES; i++) {
129
- free(phones[i]);
130
- }
131
- free(phones);
132
- free(ovec);
133
-
134
- return(0);
135
- }
136
-
@@ -1,85 +0,0 @@
1
- /* The Computer Language Benchmarks Game
2
- http://shootout.alioth.debian.org
3
- contributed by Arek Bochinski
4
- */
5
-
6
-
7
- #define _GNU_SOURCE 1
8
- #include <stdio.h>
9
- #include <string.h>
10
- #include <limits.h>
11
-
12
- //conversion table
13
- static const char FtoCOMP[128] = {
14
- 0,0,0,0,0,0,0,0,0,0,0,0,0,'\n',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
15
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
16
- 0,'T','V','G','H',0,0,'C','D',0,0,'M',0,'K','N',0,
17
- 0,0,'Y','S','A',0,'B','W',0,'R',0, 0, 0,0,0,0,
18
- 0,'T','V','G','H',0,0,'C','D',0,0,'M',0,'K','N',0,
19
- 0,0,'Y','S','A',0,'B','W',0,'R',0,0,0,0,0,0
20
- };
21
-
22
- int main (int argc, char * argv[]) {
23
- char buffer[10240];
24
- int itotal=0,forward=0,end=0;
25
- char peek;
26
- //print header
27
- printf("%s",fgets_unlocked(buffer,61,stdin));
28
- while(fgets_unlocked(buffer+itotal,10239,stdin))
29
- {
30
- //if header is next
31
- if((peek=fgetc_unlocked(stdin))=='>')
32
- {
33
- //get total
34
- itotal+=strlen(buffer+itotal);
35
- //set the reverse indexes
36
- forward=0;
37
- end=itotal-2;
38
- //reverse the buffer and complement it
39
- while(forward<end)
40
- {
41
- if(buffer[forward]=='\n')++forward;
42
- if(buffer[end]=='\n')--end;
43
- buffer[forward]^=buffer[end];
44
- buffer[end]^=buffer[forward];
45
- buffer[forward]^=buffer[end];
46
- buffer[end]=FtoCOMP[buffer[end]];
47
- buffer[forward]=FtoCOMP[buffer[forward]];
48
- ++forward;
49
- --end;
50
- }
51
- //print it out
52
- puts(buffer);
53
- //print out the next header if there
54
- printf("%c%s",'>',fgets_unlocked(buffer,10239,stdin));
55
- //reset total
56
- itotal=0;
57
- }
58
- else{
59
- //header is not next, plase character back into stdin
60
- ungetc(peek,stdin);
61
- //sum up the total lenght of characters in the buffer
62
- itotal+=strlen(buffer+itotal);
63
- }
64
- }
65
- //print last sequence at end of stdin
66
- itotal+=strlen(buffer+itotal);
67
- //set the reverse indexes
68
- forward=0;
69
- end=itotal-2;
70
- //reverse the buffer and complement it
71
- while(forward<end)
72
- {
73
- if(buffer[forward]=='\n')++forward;
74
- if(buffer[end]=='\n')--end;
75
- buffer[forward]^=buffer[end];
76
- buffer[end]^=buffer[forward];
77
- buffer[forward]^=buffer[end];
78
- buffer[end]=FtoCOMP[buffer[end]];
79
- buffer[forward]=FtoCOMP[buffer[forward]];
80
- ++forward;
81
- --end;
82
- }
83
- puts(buffer);
84
- return 0;
85
- }
@@ -1,88 +0,0 @@
1
- #include <stdio.h>
2
- #include <string.h>
3
- #include <limits.h>
4
-
5
- static unsigned char iubpairs[][2] = {
6
- { 'A', 'T' },
7
- { 'C', 'G' },
8
- { 'B', 'V' },
9
- { 'D', 'H' },
10
- { 'K', 'M' },
11
- { 'R', 'Y' },
12
- { '\0', '\0' }
13
- };
14
-
15
- static unsigned char iubComplement[1+UCHAR_MAX];
16
-
17
- static void buildIubComplement (void) {
18
- int i;
19
- for (i=0; i <= UCHAR_MAX; i++) iubComplement[i] = (unsigned char) i;
20
- for (i=0; iubpairs[i][0] != '\0'; i++) {
21
- iubComplement[iubpairs[i][0]] = iubpairs[i][1];
22
- iubComplement[iubpairs[i][1]] = iubpairs[i][0];
23
- iubComplement[tolower (iubpairs[i][0])] = iubpairs[i][1];
24
- iubComplement[tolower (iubpairs[i][1])] = iubpairs[i][0];
25
- }
26
- }
27
-
28
- static void inPlaceReverse (unsigned char * strand, int len) {
29
- int i;
30
- for (i=0, len--; i < len; i++,len--) {
31
- unsigned char c = strand[i];
32
- strand[i] = iubComplement[strand[len]];
33
- strand[len] = iubComplement[c];
34
- }
35
- if (i == len) strand[i] = iubComplement[strand[i]];
36
- }
37
-
38
- static void process (char * strand, int len) {
39
- char * s, c;
40
-
41
- inPlaceReverse ((unsigned char *) strand, len);
42
- s = strand;
43
-
44
- while (len > 60) {
45
- c = s[60];
46
- s[60] = '\0';
47
- puts (s);
48
- s[60] = c;
49
- s += 60;
50
- len -= 60;
51
- }
52
-
53
- s[len] = '\0';
54
- puts (s);
55
- }
56
-
57
- int main (int argc, char * argv[]) {
58
- static char buffer[1024];
59
- char * inp = (char *) malloc (129);
60
- int mlen = 128;
61
- int slen = 0;
62
-
63
- buildIubComplement ();
64
-
65
- while (NULL != fgets (buffer, 1023, stdin)) {
66
- if (buffer[0] == '>') {
67
- if (slen > 0) {
68
- process (inp, slen);
69
- slen = 0;
70
- }
71
- printf ("%s", buffer);
72
- } else {
73
- int l = strlen (buffer);
74
- while (l > 0 && !isalpha (buffer[l-1])) l--;
75
- while (slen + l > mlen) {
76
- mlen += mlen;
77
- inp = (char *) realloc (inp, mlen + 1);
78
- }
79
-
80
- memcpy (inp + slen, buffer, l);
81
- slen += l;
82
- }
83
- }
84
- if (slen > 0) process (inp, slen);
85
- free (inp);
86
- return 0;
87
- }
88
-
@@ -1,71 +0,0 @@
1
- /*
2
- * The Computer Language Benchmarks Game
3
- * http://shootout.alioth.debian.org
4
- *
5
- * contributed by Bob W
6
- */
7
-
8
- #include <stdio.h>
9
- #include <stdlib.h>
10
-
11
- #define JBFSIZE 82 // line input buffer size
12
- #define QBFSIZE 5200 // output buffer initial size
13
- #define Z16 "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
14
- #define V32 "\0TVGH\0\0CD\0\0M\0KN\0\0\0YSA\0BW\0R\0\0\0\0\0\0"
15
- #define VALL Z16 Z16 Z16 Z16 V32 V32 Z16 Z16 Z16 Z16 Z16 Z16 Z16 Z16
16
-
17
- int errex(char *s, int n) { // error message+value, return 1
18
- fprintf(stderr,"\n*** Error: %s [%d]!\n", s, n);
19
- return 1;
20
- }
21
-
22
- int main () { // ***** main *****
23
- char *pj, *pq, *pr; // buffer pointers: inp,out,/out
24
- char *jjj = malloc(JBFSIZE); // allocate input line buffer
25
- char *qqq = malloc(QBFSIZE); // output buffer (dyn. size)
26
- char *pqstop = qqq+QBFSIZE; // end-of-buffer pointer
27
- char xtab[256] = VALL; // char conversion table
28
-
29
- if (!jjj || !qqq)
30
- return errex("Buffer allocation", !jjj + !qqq);
31
- pj = fgets(jjj,JBFSIZE,stdin); // fetch 1st line
32
- if (!pj)
33
- return errex("No input data",0);
34
- if (*jjj != '>')
35
- return errex("1st char not '>'", 0);
36
-
37
- while (pj) { // MAIN LOOP: process data
38
- fputs(jjj, stdout); // output ID line
39
-
40
- for (pq=qqq+1, pr=pqstop; ; pq++) { // LOOP: fill output buffer
41
- pj = fgets(jjj, JBFSIZE, stdin); // get line from stdin
42
- if (!pj || (*jjj=='>')) break; // EOF or new ID line
43
- if (pr <= (pq+61)) { // need to resize buffer
44
- char *newstop = pqstop + 12777888;
45
- char *newptr = realloc(qqq, newstop-qqq);
46
- if (!newptr)
47
- return errex("Out of memory", 0);
48
- if (newptr != qqq) { // new base: adj. pointers
49
- size_t x = newptr-qqq; // offset for pointer update
50
- pq+=x; pr+=x; qqq+=x;
51
- newstop+=x; pqstop+=x;
52
- }
53
- pr = __builtin_memmove(newstop-(pqstop-pr), pr, pqstop-pr);
54
- pqstop = newstop; // buffer resize complete
55
- }
56
- while (*pj) { // LOOP: conv. & revert line
57
- char c = xtab[(unsigned char)(*pj++)];
58
- if (c) // conversion valid
59
- *(--pr) = c;
60
- }
61
- }
62
-
63
- for (pq = qqq; pr<pqstop; ) { // LOOP: format output
64
- size_t x = (pqstop-pr)<60 ? pqstop-pr : 60;
65
- __builtin_memmove(pq,pr,x); // move line to free space
66
- pr+=x; pq+=x; *(pq++) = 0xA; // adjust pointers, add LF
67
- }
68
- fwrite(qqq, 1, pq-qqq, stdout); // output converted data
69
- }
70
- return 0;
71
- }
@@ -1,103 +0,0 @@
1
- /* -*- mode: c -*-
2
- * $Id: reversefile.gcc,v 1.5 2004-10-18 07:15:07 bfulgham Exp $
3
- * http://shootout.alioth.debian.org/
4
- *
5
- * from Alan Post <apost@recalcitrant.org>
6
- */
7
-
8
- #include <stdio.h>
9
- #include <stdlib.h>
10
- #include <string.h>
11
- #include <unistd.h>
12
- #include <assert.h>
13
- #include <limits.h>
14
- #include <sys/uio.h>
15
-
16
- #define MAXREAD 4096
17
- #define IOV_MAX 1024
18
-
19
- typedef struct buf_t { char d[MAXREAD];
20
- size_t len;
21
- struct buf_t *next;} buf_t;
22
-
23
- static print_string( char *data, size_t len,
24
- struct iovec *vec, size_t *p_ivec )
25
- {
26
- vec[ *p_ivec ].iov_base = data;
27
- vec[ *p_ivec ].iov_len = (int) len;
28
- ++ *p_ivec;
29
- if ( *p_ivec == IOV_MAX )
30
- {
31
- writev( STDOUT_FILENO, vec, *p_ivec );
32
- *p_ivec = 0;
33
- }
34
- }
35
-
36
- static print_line( char *pos, char *end, buf_t **p_loh,
37
- struct iovec *vec, size_t *p_ivec )
38
- {
39
- print_string( pos, end - pos, vec, p_ivec );
40
- for (; *p_loh != NULL; *p_loh = (*p_loh)->next )
41
- print_string( (*p_loh)->d, (*p_loh)->len, vec, p_ivec );
42
- }
43
-
44
- static void rev_print( buf_t *head )
45
- {
46
- buf_t *loh = NULL;
47
- buf_t *curr = head;
48
-
49
- struct iovec vec[ IOV_MAX ];
50
- size_t ivec = 0;
51
-
52
- while ( 1 )
53
- {
54
- char *buf = curr->d;
55
- char *end = buf + curr->len;
56
- char *pos = end;
57
- for (;; pos--)
58
- {
59
- if ( pos <= buf )
60
- {
61
- buf_t *new_curr = curr->next;
62
-
63
- if ( new_curr == NULL )
64
- {
65
- print_line( pos, end, &loh, vec, &ivec );
66
- writev( STDOUT_FILENO, vec, ivec );
67
- return;
68
- }
69
-
70
- curr->len = end - buf;
71
- curr->next = loh;
72
- loh = curr;
73
-
74
- curr = new_curr;
75
- break;
76
- }
77
- if ( *(pos-1) == '\n' )
78
- {
79
- print_line( pos, end, &loh, vec, &ivec );
80
- end = pos;
81
- }
82
- }
83
- }
84
- assert( NULL == "unreachable" );
85
- }
86
-
87
- static void f( buf_t *tail )
88
- {
89
- buf_t head;
90
-
91
- head.next = tail;
92
- head.len = read( STDIN_FILENO, head.d, MAXREAD );
93
-
94
- if ( head.len == MAXREAD ) f( &head );
95
- else rev_print( &head );
96
- }
97
-
98
- int main(int argc, char *argv[])
99
- {
100
- f( NULL );
101
- return EXIT_SUCCESS;
102
- }
103
-