home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / compsrcs / misc / volume07 / repunsel < prev    next >
Encoding:
Internet Message Format  |  1991-08-27  |  26.9 KB

  1. From decwrl!sun-barr!cs.utexas.edu!uunet!allbery Sun Jun  4 14:43:41 PDT 1989
  2. Article 894 of comp.sources.misc:
  3. Path: decwrl!sun-barr!cs.utexas.edu!uunet!allbery
  4. From: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  5. Newsgroups: comp.sources.misc
  6. Subject: v07i005: Submission: Repunsel - English to PUNish text translator.
  7. Message-ID: <56705@uunet.UU.NET>
  8. Date: 4 Jun 89 01:29:55 GMT
  9. Sender: allbery@uunet.UU.NET
  10. Reply-To: sparks@corpane.uucp
  11. Lines: 1102
  12. Approved: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  13.  
  14. Posting-number: Volume 7, Issue 5
  15. Submitted-by: sparks@corpane.uucp
  16. Archive-name: repunsel
  17.  
  18. [Now *this* one's more my style!  Even if it *is* a bit mindless.  ++bsa]
  19.  
  20.                             - Repunsel v0.9 -
  21.  
  22. English:
  23. Howdy Partner!
  24.  
  25. Welcome to repunsel. You knew it had to happen, and it did. Leave it up to me!
  26. But, don't worry, there is nothing to be afraid of. Just groan and bear it.
  27. It may seem way out at first, but you will soon take a liking to repunsel.
  28.  
  29. Of course, it is in poor taste, but that is the NATURE of puns. You know you
  30. wouldn't have it any other way. Be a fun guy and download repunsel today.
  31.  
  32. Well I must be going. Let us part paths for now. So long!
  33. ----
  34. RePUNsel:
  35. Howdy POD'ner!
  36.  
  37. Welcome to rePUNsel. You knew it had to happen, ANT it did. LEAF it up to me!
  38. But, DEWn't worry, there is KNOThing to be A FRAYED of. Just groan ANT bear it.
  39. It may seem WHEY out at first, but you will soon take a LICHEN to rePUNsel.
  40.  
  41. Of course, it is in SPORE taste, but that is the NATURE of PUNs. You know you
  42. WOODEN have it any other WHEY. Be a FUNGI ANT DEWwnload rePUNsel today.
  43.  
  44. Well I MOSS be going. LETTUCE part paths for now. SOIL LOG!
  45.  
  46.           -John Sparks
  47.           uunet!ukma!corpane!sparks
  48.  
  49.  
  50. -----------
  51. This is a unix shar file
  52.  
  53. Cut out everything above and including the line '----8<---cut me ---' and
  54. rename the remaining portion 'repunsel.shar'
  55.  
  56. Run repunsel.shar thru the unix shell:
  57.  
  58.      $sh repunsel.shar
  59.  
  60. ----------------8<-------cut me---------------8<----------------------------
  61. echo x - destructions
  62. sed 's/^X//' >destructions <<'*-*-END-of-destructions-*-*'
  63. X                                     Repunsel
  64. X                               +++++++++++++++++
  65. XCompiling Repunsel:
  66. X
  67. XYou should have the files: repunsel.c and repunsel.l and lex.yy.c
  68. X
  69. X
  70. Xrepunsel.l must be run thru the unix 'lex' utility to produce the file lex.yy.c
  71. XThen compile repunsel.c and lex.yy.c to produce repunsel
  72. X
  73. X     $lex repunsel.l
  74. X     $cc repunsel.c lex.yy.c -o repunsel
  75. X  (You may get a list of warnings from the compiler. Ignore them.)
  76. X
  77. XNote: lex.yy.c is included in this package. You only need to use lex if you
  78. Xwish to make changes to repunsel. 
  79. X
  80. XUsing Repunsel:
  81. X
  82. XRepunsel uses standard input and output.
  83. X
  84. XExamples:
  85. X
  86. XTo translate a file called 'note' and output repunsel to a file called 'knote':
  87. X
  88. X     $ cat note | repunsel > knote
  89. X
  90. XTo translate a file called 'note' and just print it to the screen:
  91. X
  92. X     $ cat note | repunsel
  93. X
  94. XTo have repunsel wait to translate what you type at the keyboard and return it
  95. Xin repunsel on your screen:
  96. X
  97. X     $ repunsel
  98. X
  99. X---
  100. *-*-END-of-destructions-*-*
  101. echo x - repunsel.c
  102. sed 's/^X//' >repunsel.c <<'*-*-END-of-repunsel.c-*-*'
  103. X#include <stdio.h>
  104. X/*                   Repunsel v0.9       */
  105. X/*                      by               */
  106. X/*                   John Sparks         */
  107. X/*           uunet!ukma!corpane!sparks   */
  108. X/*                     5/8/89            */
  109. X/*  This is in the Public Domain, do with it what you will */
  110. X
  111. X
  112. Xmain()
  113. X{
  114. Xchar *line; 
  115. X
  116. X    while(line = (char *) yylex()){
  117. X         printf("%s", line);
  118. X    }
  119. X}
  120. X
  121. Xyywrap ()
  122. X{
  123. X    return (1);
  124. X}
  125. *-*-END-of-repunsel.c-*-*
  126. echo x - lex.yy.c
  127. sed 's/^X//' >lex.yy.c <<'*-*-END-of-lex.yy.c-*-*'
  128. X# include "stdio.h"
  129. X# define U(x) x
  130. X# define NLSTATE yyprevious=YYNEWLINE
  131. X# define BEGIN yybgin = yysvec + 1 +
  132. X# define INITIAL 0
  133. X# define YYLERR yysvec
  134. X# define YYSTATE (yyestate-yysvec-1)
  135. X# define YYOPTIM 1
  136. X# define YYLMAX 200
  137. X# define output(c) putc(c,yyout)
  138. X# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
  139. X# define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
  140. X# define yymore() (yymorfg=1)
  141. X# define ECHO fprintf(yyout, "%s",yytext)
  142. X# define REJECT { nstr = yyreject(); goto yyfussy;}
  143. Xint yyleng; extern char yytext[];
  144. Xint yymorfg;
  145. Xextern char *yysptr, yysbuf[];
  146. Xint yytchar;
  147. XFILE *yyin = {stdin}, *yyout = {stdout};
  148. Xextern int yylineno;
  149. Xstruct yysvf { 
  150. X    struct yywork *yystoff;
  151. X    struct yysvf *yyother;
  152. X    int *yystops;};
  153. Xstruct yysvf *yyestate;
  154. Xextern struct yysvf yysvec[], *yybgin;
  155. X     char buf[128];
  156. X
  157. X# define YYNEWLINE 10
  158. Xyylex(){
  159. Xint nstr; extern int yyprevious;
  160. Xwhile((nstr = yylook()) >= 0)
  161. Xyyfussy: switch(nstr){
  162. Xcase 0:
  163. Xif(yywrap()) return(0); break;
  164. Xcase 1:
  165. X           return("ANT");
  166. Xbreak;
  167. Xcase 2:
  168. X             return("ANT");
  169. Xbreak;
  170. Xcase 3:
  171. X      return("WOODEN");
  172. Xbreak;
  173. Xcase 4:
  174. X           return("WOOD");
  175. Xbreak;
  176. Xcase 5:
  177. X            return("ROOT");
  178. Xbreak;
  179. Xcase 6:
  180. X           return("STUMP");
  181. Xbreak;
  182. Xcase 7:
  183. X            return("TWIG");
  184. Xbreak;
  185. Xcase 8:
  186. X            return("TWIG");
  187. Xbreak;
  188. Xcase 9:
  189. X          return("BRANCH");
  190. Xbreak;
  191. Xcase 10:
  192. X            return("BARK");
  193. Xbreak;
  194. Xcase 11:
  195. X        return("LETTUCE");
  196. Xbreak;
  197. Xcase 12:
  198. X           return("'EAR ");
  199. Xbreak;
  200. Xcase 13:
  201. X            return(" 'EAR ");
  202. Xbreak;
  203. Xcase 14:
  204. X           return("'EAR ");
  205. Xbreak;
  206. Xcase 15:
  207. X            return(" 'EAR ");
  208. Xbreak;
  209. Xcase 16:
  210. X             return("LOG");
  211. Xbreak;
  212. Xcase 17:
  213. X            return("LOG");
  214. Xbreak;
  215. Xcase 18:
  216. X           return("LEAF");
  217. Xbreak;
  218. Xcase 19:
  219. X            return("LEAF");
  220. Xbreak;
  221. Xcase 20:
  222. X            return("TREE");
  223. Xbreak;
  224. Xcase 21:
  225. X             return("SAP");
  226. Xbreak;
  227. Xcase 22:
  228. X            return("BUSH");
  229. Xbreak;
  230. Xcase 23:
  231. X           return("HEDGE");
  232. Xbreak;
  233. Xcase 24:
  234. X           return("FLOWER");
  235. Xbreak;
  236. Xcase 25:
  237. X          return("FLOWER");
  238. Xbreak;
  239. Xcase 26:
  240. X          return("POD'n");
  241. Xbreak;
  242. Xcase 27:
  243. X         return("POD'ner");
  244. Xbreak;
  245. Xcase 28:
  246. X             return("POD");
  247. Xbreak;
  248. Xcase 29:
  249. X           return("SOIL ");
  250. Xbreak;
  251. Xcase 30:
  252. X            return("SOIL");
  253. Xbreak;
  254. Xcase 31:
  255. X            return("CARROT");
  256. Xbreak;
  257. Xcase 32:
  258. X          return("CARROT");
  259. Xbreak;
  260. Xcase 33:
  261. X             return("PUN");
  262. Xbreak;
  263. Xcase 34:
  264. X           return("A FRAYED");
  265. Xbreak;
  266. Xcase 35:
  267. X          return("FUNGI");
  268. Xbreak;
  269. Xcase 36:
  270. X          return("FUNGI");
  271. Xbreak;
  272. Xcase 37:
  273. X          return("FUNGI");
  274. Xbreak;
  275. Xcase 38:
  276. X             return("WHEY");
  277. Xbreak;
  278. Xcase 39:
  279. X            return("SPORE");
  280. Xbreak;
  281. Xcase 40:
  282. X          return("LICHEN");
  283. Xbreak;
  284. Xcase 41:
  285. X          return("NATURE");
  286. Xbreak;
  287. Xcase 42:
  288. X            return("MOSS");
  289. Xbreak;
  290. Xcase 43:
  291. X            return("MOLD");
  292. Xbreak;
  293. Xcase 44:
  294. X             return("PUN");
  295. Xbreak;
  296. Xcase 45:
  297. X            return("SLAW");
  298. Xbreak;
  299. Xcase 46:
  300. X             return("KNOT");
  301. Xbreak;
  302. Xcase 47:
  303. X           return("GRAIN");
  304. Xbreak;
  305. Xcase 48:
  306. X              return("DEW");
  307. Xbreak;
  308. Xcase 49:
  309. X                return("PINE");
  310. Xbreak;
  311. Xcase 50:
  312. X       return("WALNUT");
  313. Xbreak;
  314. Xcase 51:
  315. X             return("HAY");
  316. Xbreak;
  317. Xcase 52:
  318. X        return("ORANGE");
  319. Xbreak;
  320. Xcase 53:
  321. X           return("PEAS");
  322. Xbreak;
  323. Xcase 54:
  324. X           return("PEAS");
  325. Xbreak;
  326. Xcase 55:
  327. X          return("PEAS");
  328. Xbreak;
  329. Xcase 56:
  330. X            return("BEAN");
  331. Xbreak;
  332. Xcase 57:
  333. X           return("CLOVER");
  334. Xbreak;
  335. Xcase 58:
  336. X            return("PEEL");
  337. Xbreak;
  338. Xcase -1:
  339. Xbreak;
  340. Xdefault:
  341. Xfprintf(yyout,"bad switch yylook %d",nstr);
  342. X} return(0); }
  343. X/* end of yylex */
  344. X
  345. X
  346. Xint yyvstop[] = {
  347. X0,
  348. X
  349. X1,
  350. X0,
  351. X
  352. X48,
  353. X0,
  354. X
  355. X2,
  356. X0,
  357. X
  358. X44,
  359. X0,
  360. X
  361. X51,
  362. X0,
  363. X
  364. X16,
  365. X0,
  366. X
  367. X46,
  368. X0,
  369. X
  370. X28,
  371. X0,
  372. X
  373. X33,
  374. X0,
  375. X
  376. X21,
  377. X0,
  378. X
  379. X29,
  380. X0,
  381. X
  382. X38,
  383. X0,
  384. X
  385. X44,
  386. X0,
  387. X
  388. X49,
  389. X0,
  390. X
  391. X10,
  392. X0,
  393. X
  394. X56,
  395. X0,
  396. X
  397. X22,
  398. X0,
  399. X
  400. X31,
  401. X0,
  402. X
  403. X19,
  404. X0,
  405. X
  406. X17,
  407. X0,
  408. X
  409. X43,
  410. X0,
  411. X
  412. X42,
  413. X0,
  414. X
  415. X58,
  416. X0,
  417. X
  418. X39,
  419. X0,
  420. X
  421. X5,
  422. X0,
  423. X
  424. X45,
  425. X0,
  426. X
  427. X30,
  428. X0,
  429. X
  430. X20,
  431. X0,
  432. X
  433. X7,
  434. X0,
  435. X
  436. X8,
  437. X0,
  438. X
  439. X24,
  440. X0,
  441. X
  442. X47,
  443. X0,
  444. X
  445. X23,
  446. X0,
  447. X
  448. X18,
  449. X0,
  450. X
  451. X53,
  452. X0,
  453. X
  454. X54,
  455. X0,
  456. X
  457. X6,
  458. X0,
  459. X
  460. X4,
  461. X0,
  462. X
  463. X13,
  464. X0,
  465. X
  466. X15,
  467. X0,
  468. X
  469. X57,
  470. X0,
  471. X
  472. X34,
  473. X0,
  474. X
  475. X52,
  476. X0,
  477. X
  478. X9,
  479. X0,
  480. X
  481. X32,
  482. X0,
  483. X
  484. X25,
  485. X0,
  486. X
  487. X12,
  488. X0,
  489. X
  490. X14,
  491. X0,
  492. X
  493. X11,
  494. X0,
  495. X
  496. X40,
  497. X0,
  498. X
  499. X41,
  500. X0,
  501. X
  502. X26,
  503. X0,
  504. X
  505. X55,
  506. X0,
  507. X
  508. X37,
  509. X0,
  510. X
  511. X36,
  512. X0,
  513. X
  514. X27,
  515. X0,
  516. X
  517. X50,
  518. X0,
  519. X
  520. X35,
  521. X0,
  522. X
  523. X3,
  524. X0,
  525. X0};
  526. X# define YYTYPE int
  527. Xstruct yywork { YYTYPE verify, advance; } yycrank[] = {
  528. X0,0,     0,0, 0,0, 0,0, 
  529. X0,0,     0,0, 0,0, 0,0, 
  530. X0,0,     0,0, 0,0, 0,0, 
  531. X0,0,     0,0, 0,0, 0,0, 
  532. X0,0,     0,0, 0,0, 0,0, 
  533. X0,0,     0,0, 0,0, 0,0, 
  534. X0,0,     0,0, 0,0, 0,0, 
  535. X0,0,     0,0, 0,0, 0,0, 
  536. X0,0,     1,3, 0,0, 0,0, 
  537. X0,0,     0,0, 0,0, 1,4, 
  538. X0,0,     0,0, 0,0, 0,0, 
  539. X0,0,     0,0, 0,0, 0,0, 
  540. X0,0,     0,0, 0,0, 0,0, 
  541. X0,0,     0,0, 0,0, 0,0, 
  542. X0,0,     0,0, 0,0, 0,0, 
  543. X0,0,     0,0, 0,0, 0,0, 
  544. X0,0,     0,0, 1,5, 1,6, 
  545. X1,7,     1,8, 0,0, 1,9, 
  546. X1,10,    1,11,     0,0, 0,0, 
  547. X0,0,     1,12,     1,13,     1,14,     
  548. X0,0,     1,15,     0,0, 1,16,     
  549. X1,17,    1,18,     0,0, 0,0, 
  550. X1,19,    0,0, 0,0, 0,0, 
  551. X0,0,     0,0, 0,0, 0,0, 
  552. X0,0,     0,0, 1,5, 1,6, 
  553. X1,7,     1,8, 6,30,     1,20,     
  554. X1,10,    1,21,     6,31,     3,25,     
  555. X7,34,    1,12,     1,13,     1,14,     
  556. X8,35,    1,22,     3,26,     1,23,     
  557. X1,17,    1,24,     5,27,     6,32,     
  558. X1,19,    10,38,    6,33,     9,36,     
  559. X11,39,   12,40,    5,28,     13,43,    
  560. X14,45,   12,41,    5,29,     16,53,    
  561. X9,37,    13,44,    17,54,    12,42,    
  562. X15,47,   20,63,    18,58,    21,64,    
  563. X15,48,   22,65,    14,46,    18,59,    
  564. X15,49,   17,55,    23,53,    15,50,    
  565. X17,56,   23,66,    15,51,    19,60,    
  566. X24,67,   17,57,    25,68,    26,69,    
  567. X15,52,   27,70,    19,61,    28,71,    
  568. X29,72,   30,73,    31,74,    32,75,    
  569. X33,76,   19,62,    34,77,    36,78,    
  570. X37,79,   38,80,    39,81,    40,85,    
  571. X41,87,   39,82,    42,88,    43,90,    
  572. X44,91,   45,92,    46,93,    47,94,    
  573. X48,95,   42,89,    49,96,    50,97,    
  574. X51,98,   52,100,   53,101,   39,83,    
  575. X54,102,  55,103,   40,86,    56,104,   
  576. X57,106,  58,107,   39,84,    51,99,    
  577. X59,109,  58,108,   60,110,   61,111,   
  578. X62,112,  63,113,   64,82,    65,96,    
  579. X66,108,  67,107,   69,117,   68,115,   
  580. X70,118,  72,119,   73,120,   74,121,   
  581. X65,114,  75,122,   76,123,   77,124,   
  582. X78,126,  79,128,   78,127,   80,129,   
  583. X81,130,  82,131,   83,132,   64,84,    
  584. X68,116,  85,133,   86,135,   87,136,   
  585. X77,125,  89,137,   90,138,   91,139,   
  586. X92,140,  94,141,   95,143,   96,145,   
  587. X97,146,  99,147,   101,148,  103,149,  
  588. X105,150, 85,134,   106,151,  95,144,   
  589. X107,152, 108,153,  109,154,  111,155,  
  590. X112,156, 94,142,   113,157,  115,158,  
  591. X116,159, 117,160,  118,161,  119,162,  
  592. X122,163, 125,164,  126,165,  127,166,  
  593. X128,167, 129,169,  130,170,  131,171,  
  594. X56,105,  132,172,  134,173,  135,174,  
  595. X136,175, 140,176,  141,177,  142,178,  
  596. X143,179, 145,180,  146,181,  151,182,  
  597. X155,183, 156,184,  157,185,  158,186,  
  598. X159,187, 160,188,  161,189,  162,190,  
  599. X163,191, 164,192,  166,193,  167,194,  
  600. X168,195, 170,196,  172,197,  174,198,  
  601. X128,168, 175,199,  176,200,  177,201,  
  602. X178,202, 181,203,  183,204,  184,205,  
  603. X185,206, 194,207,  195,208,  202,209,  
  604. X204,210, 205,211,  206,212,  211,213,  
  605. X0,0};
  606. Xstruct yysvf yysvec[] = {
  607. X0,  0,   0,
  608. Xyycrank+1,    0,        0,   
  609. Xyycrank+0,    yysvec+1, 0,   
  610. Xyycrank+3,    0,        0,   
  611. Xyycrank+0,    0,        yyvstop+1,
  612. Xyycrank+16,   0,        0,   
  613. Xyycrank+5,    0,        0,   
  614. Xyycrank+11,   0,        0,   
  615. Xyycrank+1,    0,        0,   
  616. Xyycrank+15,   0,        0,   
  617. Xyycrank+7,    0,        0,   
  618. Xyycrank+23,   0,        0,   
  619. Xyycrank+24,   0,        0,   
  620. Xyycrank+16,   0,        0,   
  621. Xyycrank+31,   0,        0,   
  622. Xyycrank+39,   0,        0,   
  623. Xyycrank+20,   0,        0,   
  624. Xyycrank+37,   0,        0,   
  625. Xyycrank+24,   0,        0,   
  626. Xyycrank+54,   0,        0,   
  627. Xyycrank+20,   yysvec+9, 0,   
  628. Xyycrank+38,   0,        0,   
  629. Xyycrank+36,   yysvec+15,     0,   
  630. Xyycrank+35,   0,        0,   
  631. Xyycrank+38,   yysvec+18,     0,   
  632. Xyycrank+53,   0,        0,   
  633. Xyycrank+37,   0,        0,   
  634. Xyycrank+43,   0,        0,   
  635. Xyycrank+59,   0,        0,   
  636. Xyycrank+59,   0,        0,   
  637. Xyycrank+47,   0,        0,   
  638. Xyycrank+61,   0,        0,   
  639. Xyycrank+66,   0,        0,   
  640. Xyycrank+49,   0,        0,   
  641. Xyycrank+52,   0,        0,   
  642. Xyycrank+0,    0,        yyvstop+3,
  643. Xyycrank+56,   0,        0,   
  644. Xyycrank+58,   0,        0,   
  645. Xyycrank+72,   0,        0,   
  646. Xyycrank+73,   0,        0,   
  647. Xyycrank+74,   0,        0,   
  648. Xyycrank+65,   0,        0,   
  649. Xyycrank+71,   0,        0,   
  650. Xyycrank+67,   0,        0,   
  651. Xyycrank+61,   0,        0,   
  652. Xyycrank+61,   0,        0,   
  653. Xyycrank+62,   0,        0,   
  654. Xyycrank+65,   0,        0,   
  655. Xyycrank+83,   0,        0,   
  656. Xyycrank+81,   0,        0,   
  657. Xyycrank+82,   0,        0,   
  658. Xyycrank+84,   0,        0,   
  659. Xyycrank+75,   0,        0,   
  660. Xyycrank+75,   0,        0,   
  661. Xyycrank+76,   0,        0,   
  662. Xyycrank+78,   0,        0,   
  663. Xyycrank+159,  0,        0,   
  664. Xyycrank+75,   0,        0,   
  665. Xyycrank+92,   0,        0,   
  666. Xyycrank+91,   0,        0,   
  667. Xyycrank+77,   0,        0,   
  668. Xyycrank+78,   0,        0,   
  669. Xyycrank+83,   0,        0,   
  670. Xyycrank+91,   0,        0,   
  671. Xyycrank+102,  0,        0,   
  672. Xyycrank+102,  0,        0,   
  673. Xyycrank+99,   0,        0,   
  674. Xyycrank+104,  0,        0,   
  675. Xyycrank+110,  0,        0,   
  676. Xyycrank+105,  0,        0,   
  677. Xyycrank+111,  0,        0,   
  678. Xyycrank+0,    0,        yyvstop+5,
  679. Xyycrank+99,   0,        0,   
  680. Xyycrank+103,  0,        0,   
  681. Xyycrank+101,  0,        0,   
  682. Xyycrank+103,  0,        0,   
  683. Xyycrank+110,  0,        0,   
  684. Xyycrank+114,  0,        0,   
  685. Xyycrank+99,   0,        0,   
  686. Xyycrank+185,  0,        yyvstop+7,
  687. Xyycrank+114,  0,        0,   
  688. Xyycrank+106,  0,        0,   
  689. Xyycrank+118,  0,        0,   
  690. Xyycrank+121,  0,        0,   
  691. Xyycrank+0,    0,        yyvstop+9,
  692. Xyycrank+123,  0,        0,   
  693. Xyycrank+194,  0,        0,   
  694. Xyycrank+122,  0,        0,   
  695. Xyycrank+0,    0,        yyvstop+11,
  696. Xyycrank+126,  0,        0,   
  697. Xyycrank+130,  0,        0,   
  698. Xyycrank+115,  0,        0,   
  699. Xyycrank+115,  0,        0,   
  700. Xyycrank+0,    0,        yyvstop+13,
  701. Xyycrank+133,  0,        0,   
  702. Xyycrank+135,  0,        0,   
  703. Xyycrank+136,  0,        0,   
  704. Xyycrank+139,  0,        0,   
  705. Xyycrank+0,    0,        yyvstop+15,
  706. Xyycrank+123,  0,        0,   
  707. Xyycrank+0,    0,        yyvstop+17,
  708. Xyycrank+122,  0,        0,   
  709. Xyycrank+0,    0,        yyvstop+19,
  710. Xyycrank+120,  0,        0,   
  711. Xyycrank+0,    0,        yyvstop+21,
  712. Xyycrank+132,  0,        0,   
  713. Xyycrank+133,  0,        0,   
  714. Xyycrank+143,  0,        0,   
  715. Xyycrank+142,  0,        0,   
  716. Xyycrank+143,  0,        0,   
  717. Xyycrank+0,    0,        yyvstop+23,
  718. Xyycrank+215,  0,        0,   
  719. Xyycrank+140,  0,        0,   
  720. Xyycrank+218,  0,        yyvstop+25,
  721. Xyycrank+0,    0,        yyvstop+27,
  722. Xyycrank+137,  0,        0,   
  723. Xyycrank+151,  0,        0,   
  724. Xyycrank+139,  0,        0,   
  725. Xyycrank+149,  0,        0,   
  726. Xyycrank+216,  0,        0,   
  727. Xyycrank+0,    0,        yyvstop+29,
  728. Xyycrank+0,    0,        yyvstop+31,
  729. Xyycrank+157,  0,        0,   
  730. Xyycrank+0,    0,        yyvstop+33,
  731. Xyycrank+0,    0,        yyvstop+35,
  732. Xyycrank+146,  0,        0,   
  733. Xyycrank+144,  0,        0,   
  734. Xyycrank+158,  0,        0,   
  735. Xyycrank+189,  0,        0,   
  736. Xyycrank+151,  0,        0,   
  737. Xyycrank+230,  0,        0,   
  738. Xyycrank+162,  0,        0,   
  739. Xyycrank+233,  0,        0,   
  740. Xyycrank+0,    0,        yyvstop+37,
  741. Xyycrank+165,  0,        0,   
  742. Xyycrank+150,  0,        0,   
  743. Xyycrank+158,  0,        0,   
  744. Xyycrank+0,    0,        yyvstop+39,
  745. Xyycrank+0,    0,        yyvstop+41,
  746. Xyycrank+0,    0,        yyvstop+43,
  747. Xyycrank+155,  0,        0,   
  748. Xyycrank+159,  0,        0,   
  749. Xyycrank+161,  0,        0,   
  750. Xyycrank+171,  0,        0,   
  751. Xyycrank+0,    0,        yyvstop+45,
  752. Xyycrank+172,  0,        0,   
  753. Xyycrank+159,  0,        0,   
  754. Xyycrank+0,    0,        yyvstop+47,
  755. Xyycrank+0,    0,        yyvstop+49,
  756. Xyycrank+0,    0,        yyvstop+51,
  757. Xyycrank+0,    0,        yyvstop+53,
  758. Xyycrank+163,  0,        0,   
  759. Xyycrank+0,    0,        yyvstop+55,
  760. Xyycrank+0,    0,        yyvstop+57,
  761. Xyycrank+0,    0,        yyvstop+59,
  762. Xyycrank+166,  0,        0,   
  763. Xyycrank+177,  0,        0,   
  764. Xyycrank+175,  0,        0,   
  765. Xyycrank+247,  0,        0,   
  766. Xyycrank+248,  0,        0,   
  767. Xyycrank+249,  0,        0,   
  768. Xyycrank+182,  0,        0,   
  769. Xyycrank+167,  0,        0,   
  770. Xyycrank+180,  0,        0,   
  771. Xyycrank+169,  0,        0,   
  772. Xyycrank+0,    0,        yyvstop+61,
  773. Xyycrank+172,  0,        0,   
  774. Xyycrank+170,  0,        0,   
  775. Xyycrank+171,  0,        0,   
  776. Xyycrank+0,    0,        yyvstop+63,
  777. Xyycrank+257,  0,        0,   
  778. Xyycrank+0,    0,        yyvstop+65,
  779. Xyycrank+258,  0,        0,   
  780. Xyycrank+0,    0,        yyvstop+67,
  781. Xyycrank+176,  0,        0,   
  782. Xyycrank+190,  0,        0,   
  783. Xyycrank+193,  0,        0,   
  784. Xyycrank+185,  0,        0,   
  785. Xyycrank+195,  0,        0,   
  786. Xyycrank+0,    0,        yyvstop+69,
  787. Xyycrank+0,    0,        yyvstop+71,
  788. Xyycrank+196,  0,        0,   
  789. Xyycrank+0,    0,        yyvstop+73,
  790. Xyycrank+187,  0,        0,   
  791. Xyycrank+189,  0,        yyvstop+75,
  792. Xyycrank+183,  0,        0,   
  793. Xyycrank+0,    0,        yyvstop+77,
  794. Xyycrank+0,    0,        yyvstop+79,
  795. Xyycrank+0,    0,        yyvstop+81,
  796. Xyycrank+0,    0,        yyvstop+83,
  797. Xyycrank+0,    0,        yyvstop+85,
  798. Xyycrank+0,    0,        yyvstop+87,
  799. Xyycrank+0,    0,        yyvstop+89,
  800. Xyycrank+0,    0,        yyvstop+91,
  801. Xyycrank+180,  0,        0,   
  802. Xyycrank+181,  0,        0,   
  803. Xyycrank+0,    0,        yyvstop+93,
  804. Xyycrank+0,    0,        yyvstop+95,
  805. Xyycrank+0,    0,        yyvstop+97,
  806. Xyycrank+0,    0,        yyvstop+99,
  807. Xyycrank+0,    0,        yyvstop+101,
  808. Xyycrank+0,    0,        yyvstop+103,
  809. Xyycrank+189,  0,        0,   
  810. Xyycrank+0,    0,        yyvstop+105,
  811. Xyycrank+188,  0,        0,   
  812. Xyycrank+266,  0,        0,   
  813. Xyycrank+185,  0,        0,   
  814. Xyycrank+0,    0,        yyvstop+107,
  815. Xyycrank+0,    0,        yyvstop+109,
  816. Xyycrank+0,    0,        yyvstop+111,
  817. Xyycrank+0,    0,        yyvstop+113,
  818. Xyycrank+191,  0,        0,   
  819. Xyycrank+0,    0,        yyvstop+115,
  820. Xyycrank+0,    0,        yyvstop+117,
  821. X0,  0,   0};
  822. Xstruct yywork *yytop = yycrank+307;
  823. Xstruct yysvf *yybgin = yysvec+1;
  824. Xchar yymatch[] = {
  825. X00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  826. X01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  827. X01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  828. X01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  829. X01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  830. X01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  831. X01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  832. X01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  833. X01  ,'A' ,'B' ,'C' ,'D' ,01  ,'F' ,'G' ,
  834. X'H' ,01  ,01  ,01  ,'L' ,'M' ,'N' ,01  ,
  835. X'P' ,01  ,'R' ,'S' ,'T' ,01  ,01  ,'W' ,
  836. X01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  837. X01  ,'A' ,'B' ,'C' ,'D' ,01  ,'F' ,'G' ,
  838. X'H' ,01  ,01  ,01  ,'L' ,'M' ,'N' ,01  ,
  839. X'P' ,01  ,'r' ,'S' ,'t' ,01  ,01  ,'W' ,
  840. X01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  841. X0};
  842. Xchar yyextra[] = {
  843. X0,0,0,0,0,0,0,0,
  844. X0,0,0,0,0,0,0,0,
  845. X0,0,0,0,0,0,0,0,
  846. X0,0,0,0,0,0,0,0,
  847. X0,0,0,0,0,0,0,0,
  848. X0,0,0,0,0,0,0,0,
  849. X0,0,0,0,0,0,0,0,
  850. X0,0,0,0,0,0,0,0,
  851. X0};
  852. X#ident   "@(#)libl:lib/ncform     1.3"
  853. Xint yylineno =1;
  854. X# define YYU(x) x
  855. X# define NLSTATE yyprevious=YYNEWLINE
  856. Xchar yytext[YYLMAX];
  857. Xstruct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
  858. Xchar yysbuf[YYLMAX];
  859. Xchar *yysptr = yysbuf;
  860. Xint *yyfnd;
  861. Xextern struct yysvf *yyestate;
  862. Xint yyprevious = YYNEWLINE;
  863. Xyylook(){
  864. X    register struct yysvf *yystate, **lsp;
  865. X    register struct yywork *yyt;
  866. X    struct yysvf *yyz;
  867. X    int yych, yyfirst;
  868. X    struct yywork *yyr;
  869. X# ifdef LEXDEBUG
  870. X    int debug;
  871. X# endif
  872. X    char *yylastch;
  873. X    /* start off machines */
  874. X# ifdef LEXDEBUG
  875. X    debug = 0;
  876. X# endif
  877. X    yyfirst=1;
  878. X    if (!yymorfg)
  879. X         yylastch = yytext;
  880. X    else {
  881. X         yymorfg=0;
  882. X         yylastch = yytext+yyleng;
  883. X         }
  884. X    for(;;){
  885. X         lsp = yylstate;
  886. X         yyestate = yystate = yybgin;
  887. X         if (yyprevious==YYNEWLINE) yystate++;
  888. X         for (;;){
  889. X# ifdef LEXDEBUG
  890. X              if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
  891. X# endif
  892. X              yyt = yystate->yystoff;
  893. X              if(yyt == yycrank && !yyfirst){  /* may not be any transitions */
  894. X                   yyz = yystate->yyother;
  895. X                   if(yyz == 0)break;
  896. X                   if(yyz->yystoff == yycrank)break;
  897. X                   }
  898. X              *yylastch++ = yych = input();
  899. X              yyfirst=0;
  900. X         tryagain:
  901. X# ifdef LEXDEBUG
  902. X              if(debug){
  903. X                   fprintf(yyout,"char ");
  904. X                   allprint(yych);
  905. X                   putchar('\n');
  906. X                   }
  907. X# endif
  908. X              yyr = yyt;
  909. X              if ( (int)yyt > (int)yycrank){
  910. X                   yyt = yyr + yych;
  911. X                   if (yyt <= yytop && yyt->verify+yysvec == yystate){
  912. X                        if(yyt->advance+yysvec == YYLERR)  /* error transitions */
  913. X                             {unput(*--yylastch);break;}
  914. X                        *lsp++ = yystate = yyt->advance+yysvec;
  915. X                        goto contin;
  916. X                        }
  917. X                   }
  918. X# ifdef YYOPTIM
  919. X              else if((int)yyt < (int)yycrank) {      /* r < yycrank */
  920. X                   yyt = yyr = yycrank+(yycrank-yyt);
  921. X# ifdef LEXDEBUG
  922. X                   if(debug)fprintf(yyout,"compressed state\n");
  923. X# endif
  924. X                   yyt = yyt + yych;
  925. X                   if(yyt <= yytop && yyt->verify+yysvec == yystate){
  926. X                        if(yyt->advance+yysvec == YYLERR)  /* error transitions */
  927. X                             {unput(*--yylastch);break;}
  928. X                        *lsp++ = yystate = yyt->advance+yysvec;
  929. X                        goto contin;
  930. X                        }
  931. X                   yyt = yyr + YYU(yymatch[yych]);
  932. X# ifdef LEXDEBUG
  933. X                   if(debug){
  934. X                        fprintf(yyout,"try fall back character ");
  935. X                        allprint(YYU(yymatch[yych]));
  936. X                        putchar('\n');
  937. X                        }
  938. X# endif
  939. X                   if(yyt <= yytop && yyt->verify+yysvec == yystate){
  940. X                        if(yyt->advance+yysvec == YYLERR)  /* error transition */
  941. X                             {unput(*--yylastch);break;}
  942. X                        *lsp++ = yystate = yyt->advance+yysvec;
  943. X                        goto contin;
  944. X                        }
  945. X                   }
  946. X              if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
  947. X# ifdef LEXDEBUG
  948. X                   if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
  949. X# endif
  950. X                   goto tryagain;
  951. X                   }
  952. X# endif
  953. X              else
  954. X                   {unput(*--yylastch);break;}
  955. X         contin:
  956. X# ifdef LEXDEBUG
  957. X              if(debug){
  958. X                   fprintf(yyout,"state %d char ",yystate-yysvec-1);
  959. X                   allprint(yych);
  960. X                   putchar('\n');
  961. X                   }
  962. X# endif
  963. X              ;
  964. X              }
  965. X# ifdef LEXDEBUG
  966. X         if(debug){
  967. X              fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
  968. X              allprint(yych);
  969. X              putchar('\n');
  970. X              }
  971. X# endif
  972. X         while (lsp-- > yylstate){
  973. X              *yylastch-- = 0;
  974. X              if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
  975. X                   yyolsp = lsp;
  976. X                   if(yyextra[*yyfnd]){          /* must backup */
  977. X                        while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
  978. X                             lsp--;
  979. X                             unput(*yylastch--);
  980. X                             }
  981. X                        }
  982. X                   yyprevious = YYU(*yylastch);
  983. X                   yylsp = lsp;
  984. X                   yyleng = yylastch-yytext+1;
  985. X                   yytext[yyleng] = 0;
  986. X# ifdef LEXDEBUG
  987. X                   if(debug){
  988. X                        fprintf(yyout,"\nmatch ");
  989. X                        sprint(yytext);
  990. X                        fprintf(yyout," action %d\n",*yyfnd);
  991. X                        }
  992. X# endif
  993. X                   return(*yyfnd++);
  994. X                   }
  995. X              unput(*yylastch);
  996. X              }
  997. X         if (yytext[0] == 0  /* && feof(yyin) */)
  998. X              {
  999. X              yysptr=yysbuf;
  1000. X              return(0);
  1001. X              }
  1002. X         yyprevious = yytext[0] = input();
  1003. X         if (yyprevious>0)
  1004. X              output(yyprevious);
  1005. X         yylastch=yytext;
  1006. X# ifdef LEXDEBUG
  1007. X         if(debug)putchar('\n');
  1008. X# endif
  1009. X         }
  1010. X    }
  1011. Xyyback(p, m)
  1012. X    int *p;
  1013. X{
  1014. Xif (p==0) return(0);
  1015. Xwhile (*p)
  1016. X    {
  1017. X    if (*p++ == m)
  1018. X         return(1);
  1019. X    }
  1020. Xreturn(0);
  1021. X}
  1022. X    /* the following are only used in the lex library */
  1023. Xyyinput(){
  1024. X    return(input());
  1025. X    }
  1026. Xyyoutput(c)
  1027. X  int c; {
  1028. X    output(c);
  1029. X    }
  1030. Xyyunput(c)
  1031. X   int c; {
  1032. X    unput(c);
  1033. X    }
  1034. *-*-END-of-lex.yy.c-*-*
  1035. echo x - repunsel.l
  1036. sed 's/^X//' >repunsel.l <<'*-*-END-of-repunsel.l-*-*'
  1037. X%e 2000
  1038. X%p 5000
  1039. X%n 1000
  1040. X%k 500
  1041. X%a 4000
  1042. X%o 2000
  1043. XBW [      ]
  1044. XEW [      .,;!?]
  1045. X
  1046. X%{
  1047. X     char buf[128];
  1048. X
  1049. X%}
  1050. X
  1051. X%%
  1052. X"&"            return("ANT");
  1053. X[Aa]nd              return("ANT");
  1054. X[Ww]"ouldn't"       return("WOODEN");
  1055. X[Ww]ould            return("WOOD");
  1056. X[Rr]oot             return("ROOT");
  1057. X[Ss]tump            return("STUMP");
  1058. X[Tr]rig             return("TWIG");
  1059. X[Tt]wig             return("TWIG");
  1060. X[Bb]ranch           return("BRANCH");
  1061. X[Bb]ark             return("BARK");
  1062. X[Ll]"et us"         return("LETTUCE");
  1063. X"Hear  "            return("'EAR ");
  1064. X" hear "             return(" 'EAR ");
  1065. X"Here  "            return("'EAR ");
  1066. X" here "             return(" 'EAR ");
  1067. X[Ll]og              return("LOG");
  1068. X[Ll]ong             return("LOG");
  1069. X[Ll]eave            return("LEAF");
  1070. X[Ll]eaf             return("LEAF");
  1071. X[Tt]ree             return("TREE");
  1072. X[Ss]ap              return("SAP");
  1073. X[Bb]ush             return("BUSH");
  1074. X[Hh]edge            return("HEDGE");
  1075. X[Ff]lour            return("FLOWER");
  1076. X[Ff]lower           return("FLOWER");
  1077. X[Pp]ardon           return("POD'n");
  1078. X[Pp]artner          return("POD'ner");
  1079. X[Pp]od              return("POD");
  1080. X[Ss]"o "            return("SOIL ");
  1081. X[Ss]oil             return("SOIL");
  1082. X[Cc]are             return("CARROT");
  1083. X[Cc]arrot           return("CARROT");
  1084. X[Pp]un              return("PUN");
  1085. X[Aa]fraid            return("A FRAYED");
  1086. X"fun guy"           return("FUNGI");
  1087. X"Fun guy"           return("FUNGI");
  1088. X"Fun Guy"           return("FUNGI");
  1089. X[Ww]ay              return("WHEY");
  1090. X[Pp]oor             return("SPORE");
  1091. X[Ll]iking           return("LICHEN");
  1092. X[Nn]ature           return("NATURE");
  1093. X[Mm]ust             return("MOSS");
  1094. X[Mm]old             return("MOLD");
  1095. X[Ff]un              return("PUN");
  1096. X[Ss]low             return("SLAW");
  1097. X[Nn]ot              return("KNOT");
  1098. X[Gg]rain            return("GRAIN");
  1099. X[Dd]o               return("DEW");
  1100. Xpin                 return("PINE");
  1101. X[Ww]"hy not"        return("WALNUT");
  1102. X[Hh]ey              return("HAY");
  1103. X[Aa]"ren't"         return("ORANGE");
  1104. X[Pp]eace            return("PEAS");
  1105. X[Pp]iece            return("PEAS");
  1106. X[Pp]lease           return("PEAS");
  1107. X[Bb]een             return("BEAN");
  1108. X" over "            return("CLOVER");
  1109. X[Pp]eal             return("PEEL");
  1110. X
  1111. X%%
  1112. X
  1113. X
  1114. *-*-END-of-repunsel.l-*-*
  1115. exit
  1116.  
  1117.  
  1118.