home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / nethack-3.1 / sys / share / lev_lex.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-22  |  34.9 KB  |  1,979 lines

  1. # include "stdio.h"
  2. # define U(x) x
  3. # define NLSTATE yyprevious=YYNEWLINE
  4. # define BEGIN yybgin = yysvec + 1 +
  5. # define INITIAL 0
  6. # define YYLERR yysvec
  7. # define YYSTATE (yyestate-yysvec-1)
  8. # define YYOPTIM 1
  9. # define YYLMAX BUFSIZ
  10. # define output(c) putc(c,yyout)
  11. # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
  12. # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
  13. # define yymore() (yymorfg=1)
  14. # define ECHO fprintf(yyout, "%s",yytext)
  15. # define REJECT { nstr = yyreject(); goto yyfussy;}
  16. int yyleng; extern char yytext[];
  17. int yymorfg;
  18. extern char *yysptr, yysbuf[];
  19. int yytchar;
  20. FILE *yyin = {stdin}, *yyout = {stdout};
  21. extern int yylineno;
  22. struct yysvf { 
  23.     struct yywork *yystoff;
  24.     struct yysvf *yyother;
  25.     int *yystops;};
  26. struct yysvf *yyestate;
  27. extern struct yysvf yysvec[], *yybgin;
  28. /*    SCCS Id: @(#)lev_lex.c    3.1    92/07/12    */
  29. /*    Copyright (c) 1989 by Jean-Christophe Collet */
  30. /* NetHack may be freely redistributed.  See license for details. */
  31.  
  32. #define LEV_LEX_C
  33.  
  34. #include "hack.h"
  35. #include "lev_comp.h"
  36. #include "sp_lev.h"
  37.  
  38. /* Most of these don't exist in flex, yywrap is macro and
  39.  * yyunput is properly declared in flex.skel.
  40.  */
  41. #ifndef FLEX_SCANNER
  42. int FDECL (yyback, (int *, int));
  43. int NDECL (yylook);
  44. int NDECL (yyinput);
  45. int NDECL (yywrap);
  46. int NDECL (yylex);
  47.     /* Traditional lexes let yyunput() and yyoutput() default to int;
  48.      * newer ones may declare them as void since they don't return
  49.      * values.  For even more fun, the lex supplied as part of the
  50.      * newer unbundled compiler for SunOS 4.x adds the void declarations
  51.      * (under __STDC__ or _cplusplus ifdefs -- otherwise they remain
  52.      * int) while the bundled lex and the one with the older unbundled
  53.      * compiler do not.  To detect this, we need help from outside --
  54.      * sys/unix/Makefile.utl.
  55.      */
  56. # if defined(NeXT) || defined(SVR4)
  57. #  define VOIDYYPUT
  58. # endif
  59. # if !defined(VOIDYYPUT)
  60. #  if defined(POSIX_TYPES) && !defined(BOS) && !defined(HISX)
  61. #   define VOIDYYPUT
  62. #  endif
  63. # endif
  64. # if !defined(VOIDYYPUT) && defined(WEIRD_LEX)
  65. #  if defined(SUNOS4) && defined(__STDC__) && (WEIRD_LEX != 0) 
  66. #   define VOIDYYPUT
  67. #  endif
  68. # endif
  69. # ifdef VOIDYYPUT
  70. void FDECL (yyunput, (int));
  71. void FDECL (yyoutput, (int));
  72. # else
  73. int FDECL (yyunput, (int));
  74. int FDECL (yyoutput, (int));
  75. # endif
  76. #endif    /* FLEX_SCANNER */
  77.  
  78. void FDECL (init_yyin, (FILE *));
  79. void FDECL (init_yyout, (FILE *));
  80.  
  81. #ifdef MICRO
  82. #undef exit
  83. extern void FDECL(exit, (int));
  84. #endif
  85.  
  86. /* this doesn't always get put in lev_comp.h
  87.  * (esp. when using older versions of bison)
  88.  */
  89.  
  90. extern YYSTYPE yylval;
  91.  
  92. int line_number = 1, colon_line_number = 1;
  93.  
  94. /* This is *** UGLY *** but I can't think a better way to do it
  95.  * I really need a huge buffer to scan maps...
  96.  */
  97.  
  98. #undef YYLMAX
  99. #define YYLMAX    2048
  100.  
  101. /*
  102.  *    This is a hack required by Michael Hamel to get things
  103.  *    working on the Mac.
  104.  */
  105. #if defined(applec) && !defined(FLEX_SCANNER)
  106. #undef input
  107. #undef unput
  108. #define unput(c) { yytchar = (c); if (yytchar == 10) yylineno--; *yysptr++ = yytchar; }
  109. # ifndef YYNEWLINE
  110. # define YYNEWLINE 10
  111. # endif
  112.  
  113. char
  114. input() {    /* Under MPW \n is chr(13)! Compensate for this. */
  115.  
  116.     if (yysptr > yysbuf) return(*--yysptr);
  117.     else {
  118.         yytchar = getc(yyin);
  119.         if (yytchar == '\n') {
  120.             yylineno++;
  121.             return(YYNEWLINE);
  122.         }
  123.         if (yytchar == EOF) return(0);
  124.         else            return(yytchar);
  125.     }
  126. }
  127. #endif    /* applec && !FLEX_SCANNER */
  128.  
  129. # define MAPC 2
  130. # define YYNEWLINE 10
  131. yylex(){
  132. int nstr; extern int yyprevious;
  133. while((nstr = yylook()) >= 0)
  134. yyfussy: switch(nstr){
  135. case 0:
  136. if(yywrap()) return(0); break;
  137. case 1:
  138. {
  139. #ifdef FLEX_SCANNER
  140.           /*
  141.            * There is a bug in Flex 2.3 patch level < 6
  142.            * (absent in previous versions)
  143.            * that results in the following behaviour :
  144.            * Once you enter an yymore(), you never exit from it.
  145.            * This should do the trick!
  146.            */
  147.           extern int yy_more_len;
  148.  
  149.           yy_more_len = 0;
  150. #endif
  151.           BEGIN(INITIAL);
  152.           yylval.map = (char *) alloc(yyleng-5);
  153.           strncpy(yylval.map, yytext,yyleng-6);
  154.           yylval.map[yyleng-6] = 0;
  155.           return MAP_ID;
  156.         }
  157. break;
  158. case 2:
  159. { line_number++; yymore(); }
  160. break;
  161. case 3:
  162.     { line_number++; }
  163. break;
  164. case 4:
  165.     { colon_line_number = line_number; return ':'; }
  166. break;
  167. case 5:
  168.     return MESSAGE_ID;
  169. break;
  170. case 6:
  171.     return MAZE_ID;
  172. break;
  173. case 7:
  174.     return NOMAP_ID;
  175. break;
  176. case 8:
  177.     return LEVEL_ID;
  178. break;
  179. case 9:
  180. return LEV_INIT_ID;
  181. break;
  182. case 10:
  183.     return FLAGS_ID;
  184. break;
  185. case 11:
  186. return GEOMETRY_ID;
  187. break;
  188. case 12:
  189.     { BEGIN(MAPC); line_number++; }
  190. break;
  191. case 13:
  192.     return OBJECT_ID;
  193. break;
  194. case 14:
  195.     return MONSTER_ID;
  196. break;
  197. case 15:
  198.     return TRAP_ID;
  199. break;
  200. case 16:
  201.     return DOOR_ID;
  202. break;
  203. case 17:
  204. return DRAWBRIDGE_ID;
  205. break;
  206. case 18:
  207. return MAZEWALK_ID;
  208. break;
  209. case 19:
  210.     return WALLIFY_ID;
  211. break;
  212. case 20:
  213.     return REGION_ID;
  214. break;
  215. case 21:
  216. return RANDOM_OBJECTS_ID;
  217. break;
  218. case 22:
  219. return RANDOM_MONSTERS_ID;
  220. break;
  221. case 23:
  222. return RANDOM_PLACES_ID;
  223. break;
  224. case 24:
  225.     return ALTAR_ID;
  226. break;
  227. case 25:
  228.     return LADDER_ID;
  229. break;
  230. case 26:
  231.     return STAIR_ID;
  232. break;
  233. case 27:
  234.     return PORTAL_ID;
  235. break;
  236. case 28:
  237. return TELEPRT_ID;
  238. break;
  239. case 29:
  240.     return BRANCH_ID;
  241. break;
  242. case 30:
  243. return FOUNTAIN_ID;
  244. break;
  245. case 31:
  246.     return SINK_ID;
  247. break;
  248. case 32:
  249.     return POOL_ID;
  250. break;
  251. case 33:
  252. return NON_DIGGABLE_ID;
  253. break;
  254. case 34:
  255.     return ROOM_ID;
  256. break;
  257. case 35:
  258.     return SUBROOM_ID;
  259. break;
  260. case 36:
  261. return RAND_CORRIDOR_ID;
  262. break;
  263. case 37:
  264. return CORRIDOR_ID;
  265. break;
  266. case 38:
  267.     return GOLD_ID;
  268. break;
  269. case 39:
  270. return ENGRAVING_ID;
  271. break;
  272. case 40:
  273.     return NAME_ID;
  274. break;
  275. case 41:
  276.     return CHANCE_ID;
  277. break;
  278. case 42:
  279. return LEV;
  280. break;
  281. case 43:
  282.     { yylval.i=D_ISOPEN; return DOOR_STATE; }
  283. break;
  284. case 44:
  285.     { yylval.i=D_CLOSED; return DOOR_STATE; }
  286. break;
  287. case 45:
  288.     { yylval.i=D_LOCKED; return DOOR_STATE; }
  289. break;
  290. case 46:
  291.     { yylval.i=D_NODOOR; return DOOR_STATE; }
  292. break;
  293. case 47:
  294.     { yylval.i=D_BROKEN; return DOOR_STATE; }
  295. break;
  296. case 48:
  297.     { yylval.i=W_NORTH; return DIRECTION; }
  298. break;
  299. case 49:
  300.     { yylval.i=W_EAST; return DIRECTION; }
  301. break;
  302. case 50:
  303.     { yylval.i=W_SOUTH; return DIRECTION; }
  304. break;
  305. case 51:
  306.     { yylval.i=W_WEST; return DIRECTION; }
  307. break;
  308. case 52:
  309.     { yylval.i = -1; return RANDOM_TYPE; }
  310. break;
  311. case 53:
  312.     { yylval.i = -2; return NONE; }
  313. break;
  314. case 54:
  315.     return O_REGISTER;
  316. break;
  317. case 55:
  318.     return M_REGISTER;
  319. break;
  320. case 56:
  321.     return P_REGISTER;
  322. break;
  323. case 57:
  324.     return A_REGISTER;
  325. break;
  326. case 58:
  327.     { yylval.i=1; return LEFT_OR_RIGHT; }
  328. break;
  329. case 59:
  330. { yylval.i=2; return LEFT_OR_RIGHT; }
  331. break;
  332. case 60:
  333.     { yylval.i=3; return CENTER; }
  334. break;
  335. case 61:
  336. { yylval.i=4; return LEFT_OR_RIGHT; }
  337. break;
  338. case 62:
  339.     { yylval.i=5; return LEFT_OR_RIGHT; }
  340. break;
  341. case 63:
  342.     { yylval.i=1; return TOP_OR_BOT; }
  343. break;
  344. case 64:
  345.     { yylval.i=5; return TOP_OR_BOT; }
  346. break;
  347. case 65:
  348.     { yylval.i=1; return LIGHT_STATE; }
  349. break;
  350. case 66:
  351.     { yylval.i=0; return LIGHT_STATE; }
  352. break;
  353. case 67:
  354.     { yylval.i=0; return FILLING; }
  355. break;
  356. case 68:
  357. { yylval.i=1; return FILLING; }
  358. break;
  359. case 69:
  360.     { yylval.i= AM_NONE; return ALIGNMENT; }
  361. break;
  362. case 70:
  363.     { yylval.i= AM_LAWFUL; return ALIGNMENT; }
  364. break;
  365. case 71:
  366.     { yylval.i= AM_NEUTRAL; return ALIGNMENT; }
  367. break;
  368. case 72:
  369.     { yylval.i= AM_CHAOTIC; return ALIGNMENT; }
  370. break;
  371. case 73:
  372. { yylval.i=1; return MON_ATTITUDE; }
  373. break;
  374. case 74:
  375.     { yylval.i=0; return MON_ATTITUDE; }
  376. break;
  377. case 75:
  378.     { yylval.i=1; return MON_ALERTNESS; }
  379. break;
  380. case 76:
  381.     { yylval.i=0; return MON_ALERTNESS; }
  382. break;
  383. case 77:
  384. { yylval.i= M_AP_FURNITURE; return MON_APPEARANCE; }
  385. break;
  386. case 78:
  387. { yylval.i= M_AP_MONSTER;   return MON_APPEARANCE; }
  388. break;
  389. case 79:
  390. { yylval.i= M_AP_OBJECT;    return MON_APPEARANCE; }
  391. break;
  392. case 80:
  393.     { yylval.i=2; return ALTAR_TYPE; }
  394. break;
  395. case 81:
  396.     { yylval.i=1; return ALTAR_TYPE; }
  397. break;
  398. case 82:
  399.     { yylval.i=0; return ALTAR_TYPE; }
  400. break;
  401. case 83:
  402.     { yylval.i=1; return UP_OR_DOWN; }
  403. break;
  404. case 84:
  405.     { yylval.i=0; return UP_OR_DOWN; }
  406. break;
  407. case 85:
  408.     { yylval.i=0; return BOOLEAN; }
  409. break;
  410. case 86:
  411.     { yylval.i=1; return BOOLEAN; }
  412. break;
  413. case 87:
  414.     { yylval.i=DUST; return ENGRAVING_TYPE; }
  415. break;
  416. case 88:
  417.     { yylval.i=ENGRAVE; return ENGRAVING_TYPE; }
  418. break;
  419. case 89:
  420.     { yylval.i=BURN; return ENGRAVING_TYPE; }
  421. break;
  422. case 90:
  423.     { yylval.i=MARK; return ENGRAVING_TYPE; }
  424. break;
  425. case 91:
  426.     { yylval.i=1; return CURSE_TYPE; }
  427. break;
  428. case 92:
  429. { yylval.i=2; return CURSE_TYPE; }
  430. break;
  431. case 93:
  432.     { yylval.i=3; return CURSE_TYPE; }
  433. break;
  434. case 94:
  435. { yylval.i=NOTELEPORT; return FLAG_TYPE; }
  436. break;
  437. case 95:
  438. { yylval.i=HARDFLOOR; return FLAG_TYPE; }
  439. break;
  440. case 96:
  441.     { yylval.i=NOMMAP; return FLAG_TYPE; }
  442. break;
  443. case 97:
  444. { yylval.i=SHORTSIGHTED; return FLAG_TYPE; }
  445. break;
  446. case 98:
  447. { yylval.i=atoi(yytext); return INTEGER; }
  448. break;
  449. case 99:
  450. { yytext[yyleng-1] = 0; /* Discard the trailing \" */
  451.           yylval.map = (char *) alloc(strlen(yytext+1)+1);
  452.           strcpy(yylval.map, yytext+1); /* Discard the first \" */
  453.           return STRING; }
  454. break;
  455. case 100:
  456.     { line_number++; }
  457. break;
  458. case 101:
  459.     ;
  460. break;
  461. case 102:
  462.     { yylval.i = yytext[1]; return CHAR; }
  463. break;
  464. case 103:
  465.     { return yytext[0]; }
  466. break;
  467. case -1:
  468. break;
  469. default:
  470. fprintf(yyout,"bad switch yylook %d",nstr);
  471. } return(0); }
  472. /* end of yylex */
  473. #ifdef    AMIGA
  474. long *alloc(n)
  475.     unsigned n;
  476. {
  477.     return ((long *)malloc (n));
  478. }
  479. #endif
  480.  
  481. /* routine to switch to another input file; needed for flex */
  482. void init_yyin( input_f )
  483. FILE *input_f;
  484. {
  485. #ifdef FLEX_SCANNER
  486.     if (yyin)
  487.         yyrestart(input_f);
  488.     else
  489. #endif
  490.         yyin = input_f;
  491. }
  492. /* analogous routine (for completeness) */
  493. void init_yyout( output_f )
  494. FILE *output_f;
  495. {
  496.     yyout = output_f;
  497. }
  498.  
  499. int yyvstop[] = {
  500. 0,
  501.  
  502. 103,
  503. 0,
  504.  
  505. 101,
  506. 103,
  507. 0,
  508.  
  509. 100,
  510. 0,
  511.  
  512. 103,
  513. 0,
  514.  
  515. 103,
  516. 0,
  517.  
  518. 103,
  519. 0,
  520.  
  521. 98,
  522. 103,
  523. 0,
  524.  
  525. 4,
  526. 103,
  527. 0,
  528.  
  529. 103,
  530. 0,
  531.  
  532. 103,
  533. 0,
  534.  
  535. 103,
  536. 0,
  537.  
  538. 103,
  539. 0,
  540.  
  541. 103,
  542. 0,
  543.  
  544. 103,
  545. 0,
  546.  
  547. 103,
  548. 0,
  549.  
  550. 103,
  551. 0,
  552.  
  553. 103,
  554. 0,
  555.  
  556. 103,
  557. 0,
  558.  
  559. 103,
  560. 0,
  561.  
  562. 103,
  563. 0,
  564.  
  565. 103,
  566. 0,
  567.  
  568. 103,
  569. 0,
  570.  
  571. 103,
  572. 0,
  573.  
  574. 103,
  575. 0,
  576.  
  577. 103,
  578. 0,
  579.  
  580. 103,
  581. 0,
  582.  
  583. 103,
  584. 0,
  585.  
  586. 103,
  587. 0,
  588.  
  589. 103,
  590. 0,
  591.  
  592. 103,
  593. 0,
  594.  
  595. 103,
  596. 0,
  597.  
  598. 103,
  599. 0,
  600.  
  601. 103,
  602. 0,
  603.  
  604. 103,
  605. 0,
  606.  
  607. 103,
  608. 0,
  609.  
  610. 103,
  611. 0,
  612.  
  613. 103,
  614. 0,
  615.  
  616. 103,
  617. 0,
  618.  
  619. 103,
  620. 0,
  621.  
  622. 103,
  623. 0,
  624.  
  625. 103,
  626. 0,
  627.  
  628. 103,
  629. 0,
  630.  
  631. 103,
  632. 0,
  633.  
  634. 103,
  635. 0,
  636.  
  637. 2,
  638. 100,
  639. 0,
  640.  
  641. 101,
  642. 103,
  643. 0,
  644.  
  645. 103,
  646. 0,
  647.  
  648. 103,
  649. 0,
  650.  
  651. 103,
  652. 0,
  653.  
  654. 103,
  655. 0,
  656.  
  657. 103,
  658. 0,
  659.  
  660. 103,
  661. 0,
  662.  
  663. 103,
  664. 0,
  665.  
  666. 103,
  667. 0,
  668.  
  669. 103,
  670. 0,
  671.  
  672. 103,
  673. 0,
  674.  
  675. 103,
  676. 0,
  677.  
  678. 103,
  679. 0,
  680.  
  681. 101,
  682. 0,
  683.  
  684. 99,
  685. 0,
  686.  
  687. 98,
  688. 0,
  689.  
  690. 83,
  691. 0,
  692.  
  693. 3,
  694. 0,
  695.  
  696. 2,
  697. 0,
  698.  
  699. 101,
  700. 0,
  701.  
  702. 2,
  703. 3,
  704. 0,
  705.  
  706. 102,
  707. 0,
  708.  
  709. 70,
  710. 0,
  711.  
  712. 65,
  713. 0,
  714.  
  715. 63,
  716. 0,
  717.  
  718. 16,
  719. 0,
  720.  
  721. 38,
  722. 0,
  723.  
  724. 6,
  725. 0,
  726.  
  727. 40,
  728. 0,
  729.  
  730. 32,
  731. 0,
  732.  
  733. 34,
  734. 0,
  735.  
  736. 31,
  737. 0,
  738.  
  739. 15,
  740. 0,
  741.  
  742. 89,
  743. 0,
  744.  
  745. 84,
  746. 0,
  747.  
  748. 87,
  749. 0,
  750.  
  751. 49,
  752. 0,
  753.  
  754. 58,
  755. 0,
  756.  
  757. 90,
  758. 0,
  759.  
  760. 53,
  761. 0,
  762.  
  763. 43,
  764. 0,
  765.  
  766. 86,
  767. 0,
  768.  
  769. 51,
  770. 0,
  771.  
  772. 12,
  773. 0,
  774.  
  775. 24,
  776. 0,
  777.  
  778. 10,
  779. 0,
  780.  
  781. 8,
  782. 0,
  783.  
  784. 7,
  785. 0,
  786.  
  787. 26,
  788. 0,
  789.  
  790. 57,
  791. 0,
  792.  
  793. 82,
  794. 0,
  795.  
  796. 76,
  797. 0,
  798.  
  799. 72,
  800. 0,
  801.  
  802. 85,
  803. 0,
  804.  
  805. 48,
  806. 0,
  807.  
  808. 56,
  809. 0,
  810.  
  811. 62,
  812. 0,
  813.  
  814. 50,
  815. 0,
  816.  
  817. 66,
  818. 0,
  819.  
  820. 29,
  821. 0,
  822.  
  823. 41,
  824. 0,
  825.  
  826. 25,
  827. 0,
  828.  
  829. 13,
  830. 0,
  831.  
  832. 27,
  833. 0,
  834.  
  835. 20,
  836. 0,
  837.  
  838. 75,
  839. 0,
  840.  
  841. 64,
  842. 0,
  843.  
  844. 47,
  845. 0,
  846.  
  847. 60,
  848. 0,
  849.  
  850. 44,
  851. 0,
  852.  
  853. 93,
  854. 0,
  855.  
  856. 67,
  857. 0,
  858.  
  859. 45,
  860. 0,
  861.  
  862. 46,
  863. 0,
  864.  
  865. 96,
  866. 0,
  867.  
  868. 54,
  869. 0,
  870.  
  871. 52,
  872. 0,
  873.  
  874. 81,
  875. 0,
  876.  
  877. 1,
  878. 0,
  879.  
  880. 5,
  881. 0,
  882.  
  883. 14,
  884. 0,
  885.  
  886. 35,
  887. 0,
  888.  
  889. 19,
  890. 0,
  891.  
  892. 91,
  893. 0,
  894.  
  895. 88,
  896. 0,
  897.  
  898. 74,
  899. 0,
  900.  
  901. 55,
  902. 0,
  903.  
  904. 71,
  905. 0,
  906.  
  907. 69,
  908. 0,
  909.  
  910. 80,
  911. 0,
  912.  
  913. 37,
  914. 0,
  915.  
  916. 30,
  917. 0,
  918.  
  919. 11,
  920. 0,
  921.  
  922. 9,
  923. 0,
  924.  
  925. 18,
  926. 0,
  927.  
  928. 79,
  929. 0,
  930.  
  931. 73,
  932. 0,
  933.  
  934. 92,
  935. 0,
  936.  
  937. 68,
  938. 0,
  939.  
  940. 39,
  941. 0,
  942.  
  943. 59,
  944. 0,
  945.  
  946. 95,
  947. 0,
  948.  
  949. 42,
  950. 0,
  951.  
  952. 77,
  953. 0,
  954.  
  955. 78,
  956. 0,
  957.  
  958. 17,
  959. 0,
  960.  
  961. 61,
  962. 0,
  963.  
  964. 94,
  965. 0,
  966.  
  967. 33,
  968. 0,
  969.  
  970. 97,
  971. 0,
  972.  
  973. 23,
  974. 0,
  975.  
  976. 21,
  977. 0,
  978.  
  979. 22,
  980. 0,
  981.  
  982. 28,
  983. 0,
  984.  
  985. 36,
  986. 0,
  987. 0};
  988. # define YYTYPE int
  989. struct yywork { YYTYPE verify, advance; } yycrank[] = {
  990. 0,0,    0,0,    1,5,    0,0,    
  991. 0,0,    0,0,    0,0,    0,0,    
  992. 8,64,    0,0,    1,6,    1,7,    
  993. 0,0,    0,0,    6,63,    0,0,    
  994. 8,64,    8,64,    0,0,    0,0,    
  995. 0,0,    0,0,    0,0,    0,0,    
  996. 0,0,    0,0,    0,0,    0,0,    
  997. 0,0,    0,0,    0,0,    0,0,    
  998. 0,0,    1,6,    0,0,    1,8,    
  999. 1,5,    6,63,    0,0,    8,64,    
  1000. 1,9,    8,65,    8,64,    0,0,    
  1001. 1,10,    0,0,    0,0,    0,0,    
  1002. 0,0,    1,11,    8,64,    0,0,    
  1003. 0,0,    0,0,    0,0,    8,64,    
  1004. 0,0,    0,0,    0,0,    1,12,    
  1005. 0,0,    0,0,    0,0,    0,0,    
  1006. 0,0,    0,0,    1,13,    1,14,    
  1007. 1,15,    1,16,    1,17,    1,18,    
  1008. 1,19,    24,87,    1,20,    29,97,    
  1009. 0,0,    1,21,    1,22,    1,23,    
  1010. 1,24,    1,25,    13,68,    1,26,    
  1011. 1,27,    1,28,    14,69,    15,70,    
  1012. 1,29,    16,72,    17,74,    20,79,    
  1013. 16,73,    18,75,    15,71,    25,88,    
  1014. 18,76,    19,77,    1,30,    1,31,    
  1015. 1,32,    1,33,    1,34,    1,35,    
  1016. 21,80,    1,36,    48,142,    19,78,    
  1017. 21,81,    1,37,    1,38,    1,39,    
  1018. 1,40,    1,41,    23,85,    1,42,    
  1019. 1,43,    1,44,    1,45,    2,47,    
  1020. 1,46,    33,109,    41,128,    2,9,    
  1021. 45,137,    46,139,    45,138,    33,110,    
  1022. 23,86,    41,129,    2,5,    10,67,    
  1023. 10,67,    10,67,    10,67,    10,67,    
  1024. 10,67,    10,67,    10,67,    10,67,    
  1025. 10,67,    53,146,    2,12,    28,95,    
  1026. 22,82,    54,69,    56,147,    57,79,    
  1027. 22,83,    2,13,    2,14,    2,15,    
  1028. 2,16,    2,17,    2,18,    2,19,    
  1029. 28,96,    2,20,    22,84,    2,5,    
  1030. 2,21,    2,48,    2,23,    2,24,    
  1031. 2,25,    26,89,    2,26,    2,27,    
  1032. 2,28,    26,90,    35,113,    2,29,    
  1033. 44,135,    59,88,    61,150,    44,136,    
  1034. 2,5,    34,111,    35,114,    26,91,    
  1035. 30,98,    2,30,    2,31,    2,32,    
  1036. 2,33,    2,34,    2,35,    30,99,    
  1037. 2,36,    3,49,    34,112,    30,100,    
  1038. 2,37,    2,38,    2,39,    2,40,    
  1039. 2,41,    66,153,    2,42,    2,43,    
  1040. 2,44,    2,45,    39,124,    2,46,    
  1041. 27,92,    36,115,    55,70,    2,5,    
  1042. 2,5,    2,5,    68,154,    3,50,    
  1043. 39,125,    55,71,    3,51,    27,93,    
  1044. 27,94,    31,101,    3,9,    36,116,    
  1045. 31,102,    37,117,    3,52,    31,103,    
  1046. 32,105,    37,118,    31,104,    32,106,    
  1047. 40,126,    37,119,    42,130,    32,107,    
  1048. 58,148,    69,155,    70,156,    37,120,    
  1049. 58,81,    3,12,    42,131,    71,157,    
  1050. 32,108,    72,158,    40,127,    73,159,    
  1051. 3,53,    3,54,    3,55,    3,16,    
  1052. 3,56,    3,18,    3,19,    38,121,    
  1053. 3,57,    38,122,    74,160,    3,58,    
  1054. 3,22,    3,23,    3,24,    3,59,    
  1055. 60,149,    3,26,    3,60,    3,28,    
  1056. 75,161,    76,162,    3,61,    38,123,    
  1057. 43,132,    77,163,    78,164,    60,93,    
  1058. 60,94,    79,165,    80,166,    43,133,    
  1059. 3,30,    3,31,    3,32,    3,33,    
  1060. 3,34,    3,35,    43,134,    3,36,    
  1061. 81,167,    82,168,    83,169,    3,37,    
  1062. 3,38,    3,39,    3,40,    3,41,    
  1063. 4,5,    3,42,    3,43,    3,44,    
  1064. 3,45,    84,170,    3,46,    62,151,    
  1065. 4,6,    4,49,    52,67,    52,67,    
  1066. 52,67,    52,67,    52,67,    52,67,    
  1067. 52,67,    52,67,    52,67,    52,67,    
  1068. 85,171,    86,172,    86,173,    87,174,    
  1069. 88,175,    89,177,    90,178,    88,176,    
  1070. 91,179,    62,152,    92,180,    4,50,    
  1071. 62,152,    4,8,    4,62,    93,181,    
  1072. 94,182,    95,183,    4,9,    96,184,    
  1073. 62,152,    97,185,    4,52,    98,186,    
  1074. 99,188,    4,51,    100,189,    4,11,    
  1075. 101,190,    102,191,    103,192,    104,193,    
  1076. 105,194,    106,195,    98,187,    107,196,    
  1077. 108,197,    4,12,    109,198,    110,199,    
  1078. 111,200,    112,201,    113,202,    114,203,    
  1079. 4,53,    4,54,    4,55,    4,16,    
  1080. 4,56,    4,18,    4,19,    116,206,    
  1081. 4,57,    117,207,    4,51,    4,58,    
  1082. 4,48,    4,23,    4,24,    4,59,    
  1083. 119,210,    4,26,    4,60,    4,28,    
  1084. 115,204,    120,211,    4,61,    122,215,    
  1085. 118,208,    123,216,    115,205,    4,51,    
  1086. 124,217,    126,224,    127,225,    128,226,    
  1087. 4,30,    4,31,    4,32,    4,33,    
  1088. 4,34,    4,35,    129,227,    4,36,    
  1089. 118,209,    130,228,    131,229,    4,37,    
  1090. 4,38,    4,39,    4,40,    4,41,    
  1091. 9,66,    4,42,    4,43,    4,44,    
  1092. 4,45,    132,230,    4,46,    47,140,    
  1093. 9,66,    9,0,    4,51,    4,51,    
  1094. 4,51,    134,233,    135,234,    47,140,    
  1095. 47,141,    121,212,    133,231,    136,235,    
  1096. 139,239,    133,232,    50,63,    50,143,    
  1097. 121,213,    142,240,    121,214,    137,236,    
  1098. 146,154,    147,241,    137,237,    9,66,    
  1099. 147,160,    9,66,    9,66,    142,168,    
  1100. 137,238,    148,166,    47,140,    149,180,    
  1101. 47,140,    47,140,    9,66,    150,242,    
  1102. 154,243,    50,144,    155,244,    9,66,    
  1103. 50,145,    47,140,    152,151,    156,245,    
  1104. 125,218,    157,246,    47,140,    125,219,    
  1105. 50,145,    158,247,    50,145,    50,145,    
  1106. 159,248,    160,249,    51,143,    161,250,    
  1107. 125,220,    125,221,    162,251,    163,252,    
  1108. 164,253,    125,222,    165,254,    125,223,    
  1109. 152,152,    166,255,    167,256,    152,152,    
  1110. 168,257,    169,258,    50,145,    50,145,    
  1111. 50,145,    170,259,    171,260,    152,152,    
  1112. 51,145,    172,261,    50,145,    51,145,    
  1113. 50,145,    50,145,    173,262,    174,263,    
  1114. 175,264,    50,145,    176,265,    51,145,    
  1115. 50,145,    51,145,    51,145,    177,266,    
  1116. 50,145,    178,267,    179,268,    180,269,    
  1117. 181,270,    50,145,    182,271,    183,272,    
  1118. 184,273,    185,274,    186,275,    187,276,    
  1119. 188,277,    189,278,    190,279,    191,280,    
  1120. 192,281,    51,145,    51,145,    51,145,    
  1121. 193,282,    194,283,    195,284,    196,285,    
  1122. 197,286,    51,145,    198,287,    51,145,    
  1123. 51,145,    199,288,    200,289,    201,290,    
  1124. 51,145,    202,291,    203,292,    51,145,    
  1125. 50,145,    50,145,    50,145,    51,145,    
  1126. 204,293,    205,294,    206,295,    208,296,    
  1127. 51,145,    209,297,    211,298,    212,299,    
  1128. 213,300,    214,301,    215,302,    216,303,    
  1129. 217,304,    218,305,    219,306,    220,307,    
  1130. 221,308,    222,309,    223,310,    224,311,    
  1131. 225,312,    226,313,    227,314,    228,315,    
  1132. 229,316,    230,317,    231,318,    232,319,    
  1133. 233,320,    235,321,    236,322,    237,323,    
  1134. 238,324,    239,325,    240,326,    51,145,    
  1135. 51,145,    51,145,    241,327,    242,328,    
  1136. 243,329,    244,330,    245,331,    246,332,    
  1137. 248,333,    249,334,    250,335,    251,336,    
  1138. 252,337,    254,338,    255,339,    256,340,    
  1139. 257,341,    258,342,    259,343,    261,344,    
  1140. 262,345,    263,346,    265,347,    266,348,    
  1141. 267,349,    270,350,    271,351,    272,352,    
  1142. 274,353,    275,354,    276,355,    277,356,    
  1143. 278,357,    279,358,    280,359,    281,360,    
  1144. 283,361,    284,362,    285,363,    286,364,    
  1145. 290,365,    291,366,    292,367,    293,368,    
  1146. 294,369,    295,370,    297,371,    298,372,    
  1147. 299,373,    300,374,    301,375,    303,376,    
  1148. 304,377,    305,378,    306,379,    307,380,    
  1149. 309,381,    310,382,    311,383,    313,384,    
  1150. 314,385,    315,386,    316,387,    317,388,    
  1151. 318,389,    319,390,    320,391,    322,392,    
  1152. 323,393,    324,394,    327,395,    328,396,    
  1153. 330,397,    331,398,    332,399,    333,400,    
  1154. 334,401,    336,402,    337,403,    338,404,    
  1155. 339,405,    341,406,    342,407,    343,408,    
  1156. 345,409,    346,410,    347,411,    348,412,    
  1157. 349,413,    351,414,    352,415,    353,416,    
  1158. 356,417,    358,418,    359,419,    360,420,    
  1159. 361,421,    363,422,    364,423,    365,424,    
  1160. 367,425,    368,426,    369,428,    370,429,    
  1161. 371,430,    372,431,    373,432,    368,427,    
  1162. 374,433,    375,434,    376,435,    377,436,    
  1163. 378,437,    379,438,    380,439,    382,440,    
  1164. 383,441,    384,442,    386,443,    388,444,    
  1165. 389,445,    390,446,    392,447,    393,448,    
  1166. 395,449,    396,416,    399,450,    400,451,    
  1167. 401,452,    402,453,    403,454,    404,455,    
  1168. 406,456,    407,457,    408,458,    409,459,    
  1169. 412,460,    414,461,    415,462,    416,463,    
  1170. 418,464,    424,465,    426,466,    427,467,    
  1171. 428,468,    429,469,    430,470,    432,471,    
  1172. 433,472,    434,473,    435,474,    436,475,    
  1173. 437,476,    440,477,    442,478,    444,479,    
  1174. 445,480,    447,481,    448,482,    450,483,    
  1175. 451,484,    452,485,    453,486,    454,487,    
  1176. 455,488,    456,489,    459,490,    460,491,    
  1177. 462,495,    466,496,    467,497,    468,498,    
  1178. 470,499,    471,500,    472,501,    473,502,    
  1179. 477,503,    460,492,    478,504,    460,493,    
  1180. 460,494,    480,505,    481,506,    482,507,    
  1181. 484,508,    485,509,    490,510,    491,511,    
  1182. 492,512,    493,513,    494,514,    495,515,    
  1183. 496,516,    497,517,    498,518,    499,519,    
  1184. 500,520,    501,521,    503,522,    505,523,    
  1185. 508,524,    510,525,    511,526,    512,527,    
  1186. 513,528,    514,529,    515,530,    517,531,    
  1187. 522,532,    523,533,    525,534,    526,535,    
  1188. 527,536,    528,537,    529,538,    530,539,    
  1189. 533,540,    534,541,    535,542,    536,543,    
  1190. 537,544,    538,545,    539,546,    540,547,    
  1191. 542,548,    543,549,    544,550,    545,551,    
  1192. 546,552,    548,553,    549,554,    550,555,    
  1193. 552,556,    553,557,    554,558,    556,559,    
  1194. 557,560,    0,0,    0,0,    0,0,    
  1195. 0,0};
  1196. struct yysvf yysvec[] = {
  1197. 0,    0,    0,
  1198. yycrank+-1,    0,        0,    
  1199. yycrank+-84,    yysvec+1,    0,    
  1200. yycrank+-179,    yysvec+1,    0,    
  1201. yycrank+-291,    0,        0,    
  1202. yycrank+0,    0,        yyvstop+1,
  1203. yycrank+5,    0,        yyvstop+3,
  1204. yycrank+0,    0,        yyvstop+6,
  1205. yycrank+-7,    0,        yyvstop+8,
  1206. yycrank+-403,    0,        yyvstop+10,
  1207. yycrank+83,    0,        yyvstop+12,
  1208. yycrank+0,    yysvec+10,    yyvstop+14,
  1209. yycrank+0,    0,        yyvstop+17,
  1210. yycrank+6,    0,        yyvstop+20,
  1211. yycrank+4,    0,        yyvstop+22,
  1212. yycrank+15,    0,        yyvstop+24,
  1213. yycrank+10,    0,        yyvstop+26,
  1214. yycrank+12,    0,        yyvstop+28,
  1215. yycrank+17,    0,        yyvstop+30,
  1216. yycrank+28,    0,        yyvstop+32,
  1217. yycrank+13,    0,        yyvstop+34,
  1218. yycrank+39,    0,        yyvstop+36,
  1219. yycrank+79,    0,        yyvstop+38,
  1220. yycrank+49,    0,        yyvstop+40,
  1221. yycrank+7,    0,        yyvstop+42,
  1222. yycrank+16,    0,        yyvstop+44,
  1223. yycrank+100,    0,        yyvstop+46,
  1224. yycrank+131,    0,        yyvstop+48,
  1225. yycrank+74,    0,        yyvstop+50,
  1226. yycrank+10,    0,        yyvstop+52,
  1227. yycrank+72,    0,        yyvstop+54,
  1228. yycrank+109,    0,        yyvstop+56,
  1229. yycrank+123,    0,        yyvstop+58,
  1230. yycrank+10,    0,        yyvstop+60,
  1231. yycrank+80,    0,        yyvstop+62,
  1232. yycrank+73,    0,        yyvstop+64,
  1233. yycrank+108,    0,        yyvstop+66,
  1234. yycrank+124,    0,        yyvstop+68,
  1235. yycrank+156,    0,        yyvstop+70,
  1236. yycrank+101,    0,        yyvstop+72,
  1237. yycrank+130,    0,        yyvstop+74,
  1238. yycrank+21,    0,        yyvstop+76,
  1239. yycrank+133,    0,        yyvstop+78,
  1240. yycrank+171,    0,        yyvstop+80,
  1241. yycrank+61,    0,        yyvstop+82,
  1242. yycrank+14,    0,        yyvstop+84,
  1243. yycrank+24,    0,        yyvstop+86,
  1244. yycrank+-410,    0,        yyvstop+88,
  1245. yycrank+41,    yysvec+22,    yyvstop+90,
  1246. yycrank+0,    0,        yyvstop+92,
  1247. yycrank+417,    0,        yyvstop+95,
  1248. yycrank+456,    0,        yyvstop+98,
  1249. yycrank+254,    yysvec+51,    yyvstop+100,
  1250. yycrank+65,    yysvec+51,    yyvstop+102,
  1251. yycrank+63,    yysvec+51,    yyvstop+104,
  1252. yycrank+134,    yysvec+51,    yyvstop+106,
  1253. yycrank+68,    0,        yyvstop+108,
  1254. yycrank+69,    yysvec+51,    yyvstop+110,
  1255. yycrank+167,    yysvec+51,    yyvstop+112,
  1256. yycrank+94,    yysvec+51,    yyvstop+114,
  1257. yycrank+187,    yysvec+51,    yyvstop+116,
  1258. yycrank+109,    yysvec+51,    yyvstop+118,
  1259. yycrank+-289,    yysvec+47,    yyvstop+120,
  1260. yycrank+0,    yysvec+6,    yyvstop+122,
  1261. yycrank+0,    yysvec+8,    0,    
  1262. yycrank+0,    0,        yyvstop+124,
  1263. yycrank+158,    0,        0,    
  1264. yycrank+0,    yysvec+10,    yyvstop+126,
  1265. yycrank+126,    0,        0,    
  1266. yycrank+168,    0,        0,    
  1267. yycrank+169,    0,        0,    
  1268. yycrank+157,    0,        0,    
  1269. yycrank+162,    0,        0,    
  1270. yycrank+178,    0,        0,    
  1271. yycrank+183,    0,        0,    
  1272. yycrank+199,    0,        0,    
  1273. yycrank+180,    0,        0,    
  1274. yycrank+190,    0,        0,    
  1275. yycrank+194,    0,        0,    
  1276. yycrank+200,    0,        0,    
  1277. yycrank+206,    0,        0,    
  1278. yycrank+198,    0,        0,    
  1279. yycrank+195,    0,        0,    
  1280. yycrank+203,    0,        0,    
  1281. yycrank+219,    0,        0,    
  1282. yycrank+235,    0,        0,    
  1283. yycrank+236,    0,        0,    
  1284. yycrank+241,    0,        0,    
  1285. yycrank+237,    0,        0,    
  1286. yycrank+239,    0,        0,    
  1287. yycrank+247,    0,        0,    
  1288. yycrank+241,    0,        0,    
  1289. yycrank+244,    0,        0,    
  1290. yycrank+262,    0,        0,    
  1291. yycrank+262,    0,        0,    
  1292. yycrank+253,    0,        0,    
  1293. yycrank+266,    0,        0,    
  1294. yycrank+257,    0,        0,    
  1295. yycrank+230,    0,        0,    
  1296. yycrank+228,    0,        0,    
  1297. yycrank+241,    0,        0,    
  1298. yycrank+239,    0,        0,    
  1299. yycrank+225,    0,        0,    
  1300. yycrank+231,    0,        0,    
  1301. yycrank+229,    0,        0,    
  1302. yycrank+234,    0,        0,    
  1303. yycrank+248,    0,        0,    
  1304. yycrank+236,    0,        0,    
  1305. yycrank+234,    0,        0,    
  1306. yycrank+231,    0,        0,    
  1307. yycrank+236,    0,        0,    
  1308. yycrank+237,    0,        0,    
  1309. yycrank+250,    0,        0,    
  1310. yycrank+246,    0,        0,    
  1311. yycrank+247,    0,        0,    
  1312. yycrank+268,    0,        0,    
  1313. yycrank+248,    0,        0,    
  1314. yycrank+246,    0,        0,    
  1315. yycrank+278,    0,        0,    
  1316. yycrank+256,    0,        0,    
  1317. yycrank+278,    0,        0,    
  1318. yycrank+319,    0,        0,    
  1319. yycrank+265,    0,        0,    
  1320. yycrank+271,    0,        0,    
  1321. yycrank+267,    0,        0,    
  1322. yycrank+359,    0,        0,    
  1323. yycrank+279,    0,        0,    
  1324. yycrank+285,    0,        0,    
  1325. yycrank+290,    0,        0,    
  1326. yycrank+297,    0,        0,    
  1327. yycrank+287,    0,        0,    
  1328. yycrank+295,    0,        0,    
  1329. yycrank+299,    0,        0,    
  1330. yycrank+311,    0,        0,    
  1331. yycrank+300,    0,        0,    
  1332. yycrank+306,    0,        0,    
  1333. yycrank+306,    0,        0,    
  1334. yycrank+332,    0,        0,    
  1335. yycrank+0,    0,        yyvstop+128,
  1336. yycrank+309,    0,        0,    
  1337. yycrank+0,    yysvec+47,    0,    
  1338. yycrank+0,    0,        yyvstop+130,
  1339. yycrank+349,    0,        0,    
  1340. yycrank+0,    0,        yyvstop+132,
  1341. yycrank+0,    yysvec+50,    yyvstop+134,
  1342. yycrank+0,    yysvec+51,    0,    
  1343. yycrank+348,    yysvec+51,    0,    
  1344. yycrank+365,    0,        0,    
  1345. yycrank+373,    yysvec+51,    0,    
  1346. yycrank+365,    yysvec+51,    0,    
  1347. yycrank+371,    yysvec+51,    0,    
  1348. yycrank+0,    0,        yyvstop+136,
  1349. yycrank+-444,    yysvec+47,    0,    
  1350. yycrank+0,    0,        yyvstop+139,
  1351. yycrank+383,    0,        0,    
  1352. yycrank+372,    0,        0,    
  1353. yycrank+377,    0,        0,    
  1354. yycrank+375,    0,        0,    
  1355. yycrank+379,    0,        0,    
  1356. yycrank+377,    0,        0,    
  1357. yycrank+383,    0,        0,    
  1358. yycrank+396,    0,        0,    
  1359. yycrank+392,    0,        0,    
  1360. yycrank+394,    0,        0,    
  1361. yycrank+404,    0,        0,    
  1362. yycrank+390,    0,        0,    
  1363. yycrank+409,    0,        0,    
  1364. yycrank+409,    0,        0,    
  1365. yycrank+411,    0,        0,    
  1366. yycrank+398,    0,        0,    
  1367. yycrank+402,    0,        0,    
  1368. yycrank+417,    0,        0,    
  1369. yycrank+424,    0,        0,    
  1370. yycrank+399,    0,        0,    
  1371. yycrank+426,    0,        0,    
  1372. yycrank+420,    0,        0,    
  1373. yycrank+414,    0,        0,    
  1374. yycrank+435,    0,        0,    
  1375. yycrank+432,    0,        0,    
  1376. yycrank+429,    0,        0,    
  1377. yycrank+432,    0,        0,    
  1378. yycrank+435,    0,        0,    
  1379. yycrank+428,    0,        0,    
  1380. yycrank+442,    0,        0,    
  1381. yycrank+432,    0,        0,    
  1382. yycrank+437,    0,        0,    
  1383. yycrank+411,    0,        0,    
  1384. yycrank+418,    0,        0,    
  1385. yycrank+415,    0,        0,    
  1386. yycrank+410,    0,        0,    
  1387. yycrank+403,    0,        0,    
  1388. yycrank+403,    0,        0,    
  1389. yycrank+413,    0,        0,    
  1390. yycrank+414,    0,        0,    
  1391. yycrank+409,    0,        0,    
  1392. yycrank+415,    0,        0,    
  1393. yycrank+412,    0,        0,    
  1394. yycrank+413,    0,        0,    
  1395. yycrank+420,    0,        0,    
  1396. yycrank+417,    0,        0,    
  1397. yycrank+418,    0,        0,    
  1398. yycrank+421,    0,        0,    
  1399. yycrank+422,    0,        0,    
  1400. yycrank+430,    0,        0,    
  1401. yycrank+442,    0,        0,    
  1402. yycrank+445,    0,        0,    
  1403. yycrank+430,    0,        0,    
  1404. yycrank+0,    0,        yyvstop+141,
  1405. yycrank+431,    0,        0,    
  1406. yycrank+435,    0,        0,    
  1407. yycrank+0,    0,        yyvstop+143,
  1408. yycrank+443,    0,        0,    
  1409. yycrank+450,    0,        0,    
  1410. yycrank+441,    0,        0,    
  1411. yycrank+455,    0,        0,    
  1412. yycrank+447,    0,        0,    
  1413. yycrank+440,    0,        0,    
  1414. yycrank+440,    0,        0,    
  1415. yycrank+449,    0,        0,    
  1416. yycrank+447,    0,        0,    
  1417. yycrank+450,    0,        0,    
  1418. yycrank+459,    0,        0,    
  1419. yycrank+445,    0,        0,    
  1420. yycrank+461,    0,        0,    
  1421. yycrank+462,    0,        0,    
  1422. yycrank+454,    0,        0,    
  1423. yycrank+466,    0,        0,    
  1424. yycrank+467,    0,        0,    
  1425. yycrank+467,    0,        0,    
  1426. yycrank+464,    0,        0,    
  1427. yycrank+470,    0,        0,    
  1428. yycrank+456,    0,        0,    
  1429. yycrank+466,    0,        0,    
  1430. yycrank+456,    0,        0,    
  1431. yycrank+0,    0,        yyvstop+145,
  1432. yycrank+472,    0,        0,    
  1433. yycrank+457,    0,        0,    
  1434. yycrank+470,    0,        0,    
  1435. yycrank+471,    0,        0,    
  1436. yycrank+461,    0,        0,    
  1437. yycrank+568,    0,        0,    
  1438. yycrank+505,    0,        0,    
  1439. yycrank+507,    yysvec+51,    0,    
  1440. yycrank+502,    0,        0,    
  1441. yycrank+518,    0,        0,    
  1442. yycrank+519,    0,        0,    
  1443. yycrank+514,    0,        0,    
  1444. yycrank+0,    0,        yyvstop+147,
  1445. yycrank+522,    0,        0,    
  1446. yycrank+524,    0,        0,    
  1447. yycrank+507,    0,        0,    
  1448. yycrank+507,    0,        0,    
  1449. yycrank+523,    0,        0,    
  1450. yycrank+0,    0,        yyvstop+149,
  1451. yycrank+498,    0,        0,    
  1452. yycrank+525,    0,        0,    
  1453. yycrank+519,    0,        0,    
  1454. yycrank+509,    0,        yyvstop+151,
  1455. yycrank+532,    0,        0,    
  1456. yycrank+514,    0,        0,    
  1457. yycrank+0,    0,        yyvstop+153,
  1458. yycrank+519,    0,        0,    
  1459. yycrank+532,    0,        0,    
  1460. yycrank+534,    0,        0,    
  1461. yycrank+0,    0,        yyvstop+155,
  1462. yycrank+537,    0,        0,    
  1463. yycrank+524,    0,        0,    
  1464. yycrank+525,    0,        0,    
  1465. yycrank+0,    0,        yyvstop+157,
  1466. yycrank+0,    0,        yyvstop+159,
  1467. yycrank+523,    0,        0,    
  1468. yycrank+527,    0,        0,    
  1469. yycrank+527,    0,        0,    
  1470. yycrank+0,    0,        yyvstop+161,
  1471. yycrank+535,    0,        0,    
  1472. yycrank+499,    0,        0,    
  1473. yycrank+496,    0,        0,    
  1474. yycrank+510,    0,        0,    
  1475. yycrank+511,    0,        0,    
  1476. yycrank+498,    0,        0,    
  1477. yycrank+503,    0,        0,    
  1478. yycrank+514,    0,        0,    
  1479. yycrank+0,    0,        yyvstop+163,
  1480. yycrank+515,    0,        0,    
  1481. yycrank+502,    0,        0,    
  1482. yycrank+517,    0,        0,    
  1483. yycrank+518,    0,        0,    
  1484. yycrank+0,    0,        yyvstop+165,
  1485. yycrank+0,    0,        yyvstop+167,
  1486. yycrank+0,    0,        yyvstop+169,
  1487. yycrank+523,    0,        0,    
  1488. yycrank+520,    0,        0,    
  1489. yycrank+521,    0,        0,    
  1490. yycrank+578,    0,        0,    
  1491. yycrank+522,    0,        0,    
  1492. yycrank+520,    0,        0,    
  1493. yycrank+0,    0,        yyvstop+171,
  1494. yycrank+525,    0,        0,    
  1495. yycrank+526,    0,        0,    
  1496. yycrank+531,    0,        0,    
  1497. yycrank+519,    0,        0,    
  1498. yycrank+524,    0,        0,    
  1499. yycrank+0,    0,        yyvstop+173,
  1500. yycrank+515,    0,        0,    
  1501. yycrank+518,    0,        0,    
  1502. yycrank+528,    0,        0,    
  1503. yycrank+523,    0,        0,    
  1504. yycrank+538,    0,        0,    
  1505. yycrank+0,    0,        yyvstop+175,
  1506. yycrank+532,    0,        0,    
  1507. yycrank+529,    0,        0,    
  1508. yycrank+539,    0,        0,    
  1509. yycrank+0,    0,        yyvstop+177,
  1510. yycrank+538,    0,        0,    
  1511. yycrank+539,    0,        0,    
  1512. yycrank+530,    0,        0,    
  1513. yycrank+526,    0,        0,    
  1514. yycrank+527,    0,        0,    
  1515. yycrank+528,    0,        0,    
  1516. yycrank+535,    0,        0,    
  1517. yycrank+542,    0,        0,    
  1518. yycrank+0,    0,        yyvstop+179,
  1519. yycrank+533,    0,        0,    
  1520. yycrank+540,    0,        0,    
  1521. yycrank+533,    0,        0,    
  1522. yycrank+0,    0,        yyvstop+181,
  1523. yycrank+0,    0,        yyvstop+183,
  1524. yycrank+585,    0,        0,    
  1525. yycrank+578,    yysvec+51,    0,    
  1526. yycrank+0,    0,        yyvstop+185,
  1527. yycrank+580,    0,        0,    
  1528. yycrank+584,    0,        0,    
  1529. yycrank+586,    0,        0,    
  1530. yycrank+573,    0,        0,    
  1531. yycrank+570,    0,        0,    
  1532. yycrank+0,    0,        yyvstop+187,
  1533. yycrank+592,    0,        0,    
  1534. yycrank+574,    0,        0,    
  1535. yycrank+582,    0,        0,    
  1536. yycrank+578,    0,        0,    
  1537. yycrank+0,    0,        yyvstop+189,
  1538. yycrank+596,    0,        0,    
  1539. yycrank+591,    0,        0,    
  1540. yycrank+594,    0,        0,    
  1541. yycrank+0,    0,        yyvstop+191,
  1542. yycrank+591,    0,        0,    
  1543. yycrank+581,    0,        0,    
  1544. yycrank+590,    0,        0,    
  1545. yycrank+590,    0,        0,    
  1546. yycrank+590,    0,        0,    
  1547. yycrank+0,    0,        yyvstop+193,
  1548. yycrank+590,    0,        0,    
  1549. yycrank+591,    0,        0,    
  1550. yycrank+601,    0,        0,    
  1551. yycrank+0,    0,        yyvstop+195,
  1552. yycrank+0,    0,        yyvstop+197,
  1553. yycrank+560,    0,        0,    
  1554. yycrank+0,    0,        yyvstop+199,
  1555. yycrank+572,    0,        0,    
  1556. yycrank+565,    0,        0,    
  1557. yycrank+565,    0,        0,    
  1558. yycrank+562,    0,        0,    
  1559. yycrank+0,    0,        yyvstop+201,
  1560. yycrank+577,    0,        0,    
  1561. yycrank+578,    0,        0,    
  1562. yycrank+561,    0,        0,    
  1563. yycrank+0,    0,        yyvstop+203,
  1564. yycrank+580,    0,        0,    
  1565. yycrank+573,    0,        0,    
  1566. yycrank+574,    0,        0,    
  1567. yycrank+575,    0,        0,    
  1568. yycrank+581,    0,        0,    
  1569. yycrank+585,    0,        0,    
  1570. yycrank+570,    0,        0,    
  1571. yycrank+573,    0,        0,    
  1572. yycrank+588,    0,        0,    
  1573. yycrank+589,    0,        0,    
  1574. yycrank+594,    0,        0,    
  1575. yycrank+589,    0,        0,    
  1576. yycrank+579,    0,        0,    
  1577. yycrank+582,    0,        0,    
  1578. yycrank+0,    0,        yyvstop+205,
  1579. yycrank+594,    0,        0,    
  1580. yycrank+580,    0,        0,    
  1581. yycrank+595,    0,        0,    
  1582. yycrank+0,    0,        yyvstop+207,
  1583. yycrank+589,    0,        0,    
  1584. yycrank+0,    0,        yyvstop+209,
  1585. yycrank+582,    0,        0,    
  1586. yycrank+585,    0,        0,    
  1587. yycrank+600,    0,        0,    
  1588. yycrank+0,    0,        yyvstop+211,
  1589. yycrank+587,    0,        0,    
  1590. yycrank+595,    0,        0,    
  1591. yycrank+0,    0,        yyvstop+213,
  1592. yycrank+624,    0,        0,    
  1593. yycrank+635,    yysvec+51,    0,    
  1594. yycrank+0,    0,        yyvstop+215,
  1595. yycrank+0,    0,        yyvstop+217,
  1596. yycrank+627,    0,        0,    
  1597. yycrank+634,    0,        0,    
  1598. yycrank+635,    0,        0,    
  1599. yycrank+636,    0,        0,    
  1600. yycrank+628,    0,        0,    
  1601. yycrank+646,    0,        0,    
  1602. yycrank+0,    0,        yyvstop+219,
  1603. yycrank+636,    0,        0,    
  1604. yycrank+644,    0,        0,    
  1605. yycrank+632,    0,        0,    
  1606. yycrank+644,    0,        0,    
  1607. yycrank+0,    0,        yyvstop+221,
  1608. yycrank+0,    0,        yyvstop+223,
  1609. yycrank+621,    0,        0,    
  1610. yycrank+0,    0,        yyvstop+225,
  1611. yycrank+640,    0,        0,    
  1612. yycrank+636,    0,        0,    
  1613. yycrank+630,    0,        0,    
  1614. yycrank+0,    0,        yyvstop+227,
  1615. yycrank+620,    0,        0,    
  1616. yycrank+0,    0,        yyvstop+229,
  1617. yycrank+0,    0,        yyvstop+231,
  1618. yycrank+0,    0,        yyvstop+233,
  1619. yycrank+0,    0,        yyvstop+235,
  1620. yycrank+0,    0,        yyvstop+237,
  1621. yycrank+620,    0,        0,    
  1622. yycrank+0,    0,        yyvstop+239,
  1623. yycrank+621,    0,        0,    
  1624. yycrank+618,    0,        0,    
  1625. yycrank+613,    0,        0,    
  1626. yycrank+624,    0,        0,    
  1627. yycrank+621,    0,        0,    
  1628. yycrank+0,    0,        yyvstop+241,
  1629. yycrank+610,    0,        0,    
  1630. yycrank+612,    0,        0,    
  1631. yycrank+630,    0,        0,    
  1632. yycrank+616,    0,        0,    
  1633. yycrank+623,    0,        0,    
  1634. yycrank+622,    0,        0,    
  1635. yycrank+0,    0,        yyvstop+243,
  1636. yycrank+0,    0,        yyvstop+245,
  1637. yycrank+621,    0,        0,    
  1638. yycrank+0,    0,        yyvstop+247,
  1639. yycrank+617,    0,        0,    
  1640. yycrank+0,    0,        yyvstop+249,
  1641. yycrank+626,    0,        0,    
  1642. yycrank+631,    0,        0,    
  1643. yycrank+0,    0,        yyvstop+251,
  1644. yycrank+636,    0,        0,    
  1645. yycrank+637,    0,        0,    
  1646. yycrank+0,    0,        yyvstop+253,
  1647. yycrank+657,    0,        0,    
  1648. yycrank+672,    0,        0,    
  1649. yycrank+663,    0,        0,    
  1650. yycrank+664,    0,        0,    
  1651. yycrank+654,    0,        0,    
  1652. yycrank+664,    0,        0,    
  1653. yycrank+670,    0,        0,    
  1654. yycrank+0,    0,        yyvstop+255,
  1655. yycrank+0,    0,        yyvstop+257,
  1656. yycrank+675,    0,        0,    
  1657. yycrank+680,    0,        0,    
  1658. yycrank+0,    0,        yyvstop+259,
  1659. yycrank+664,    0,        0,    
  1660. yycrank+0,    0,        yyvstop+261,
  1661. yycrank+0,    0,        yyvstop+263,
  1662. yycrank+0,    0,        yyvstop+265,
  1663. yycrank+647,    0,        0,    
  1664. yycrank+647,    0,        0,    
  1665. yycrank+640,    0,        0,    
  1666. yycrank+0,    0,        yyvstop+267,
  1667. yycrank+641,    0,        0,    
  1668. yycrank+639,    0,        0,    
  1669. yycrank+653,    0,        0,    
  1670. yycrank+639,    0,        0,    
  1671. yycrank+0,    0,        yyvstop+269,
  1672. yycrank+0,    0,        yyvstop+271,
  1673. yycrank+0,    0,        yyvstop+273,
  1674. yycrank+645,    0,        0,    
  1675. yycrank+650,    0,        0,    
  1676. yycrank+0,    0,        yyvstop+275,
  1677. yycrank+658,    0,        0,    
  1678. yycrank+662,    0,        0,    
  1679. yycrank+663,    0,        0,    
  1680. yycrank+0,    0,        yyvstop+277,
  1681. yycrank+693,    0,        0,    
  1682. yycrank+694,    0,        0,    
  1683. yycrank+0,    0,        yyvstop+279,
  1684. yycrank+0,    0,        yyvstop+281,
  1685. yycrank+0,    0,        yyvstop+283,
  1686. yycrank+0,    0,        yyvstop+285,
  1687. yycrank+701,    0,        0,    
  1688. yycrank+688,    0,        0,    
  1689. yycrank+689,    0,        0,    
  1690. yycrank+703,    0,        0,    
  1691. yycrank+694,    0,        0,    
  1692. yycrank+676,    0,        0,    
  1693. yycrank+656,    0,        0,    
  1694. yycrank+669,    0,        0,    
  1695. yycrank+660,    0,        0,    
  1696. yycrank+665,    0,        0,    
  1697. yycrank+675,    0,        0,    
  1698. yycrank+663,    0,        0,    
  1699. yycrank+0,    0,        yyvstop+287,
  1700. yycrank+664,    0,        0,    
  1701. yycrank+0,    0,        yyvstop+289,
  1702. yycrank+675,    0,        0,    
  1703. yycrank+0,    0,        yyvstop+291,
  1704. yycrank+0,    0,        yyvstop+293,
  1705. yycrank+711,    0,        0,    
  1706. yycrank+0,    0,        yyvstop+295,
  1707. yycrank+715,    0,        0,    
  1708. yycrank+700,    0,        0,    
  1709. yycrank+705,    0,        0,    
  1710. yycrank+710,    0,        0,    
  1711. yycrank+720,    0,        0,    
  1712. yycrank+704,    0,        0,    
  1713. yycrank+0,    0,        yyvstop+297,
  1714. yycrank+671,    0,        0,    
  1715. yycrank+0,    0,        yyvstop+299,
  1716. yycrank+0,    0,        yyvstop+301,
  1717. yycrank+0,    0,        yyvstop+303,
  1718. yycrank+0,    0,        yyvstop+305,
  1719. yycrank+672,    0,        0,    
  1720. yycrank+673,    0,        0,    
  1721. yycrank+0,    0,        yyvstop+307,
  1722. yycrank+714,    0,        0,    
  1723. yycrank+709,    0,        0,    
  1724. yycrank+709,    0,        0,    
  1725. yycrank+724,    0,        0,    
  1726. yycrank+727,    0,        0,    
  1727. yycrank+726,    0,        0,    
  1728. yycrank+0,    0,        yyvstop+309,
  1729. yycrank+0,    0,        yyvstop+311,
  1730. yycrank+695,    0,        0,    
  1731. yycrank+728,    0,        0,    
  1732. yycrank+725,    0,        0,    
  1733. yycrank+715,    0,        0,    
  1734. yycrank+733,    0,        0,    
  1735. yycrank+732,    0,        0,    
  1736. yycrank+731,    0,        0,    
  1737. yycrank+703,    0,        0,    
  1738. yycrank+0,    0,        yyvstop+313,
  1739. yycrank+736,    0,        0,    
  1740. yycrank+736,    0,        0,    
  1741. yycrank+722,    0,        0,    
  1742. yycrank+724,    0,        0,    
  1743. yycrank+735,    0,        0,    
  1744. yycrank+0,    0,        yyvstop+315,
  1745. yycrank+730,    0,        0,    
  1746. yycrank+728,    0,        0,    
  1747. yycrank+728,    0,        0,    
  1748. yycrank+0,    0,        yyvstop+317,
  1749. yycrank+733,    0,        0,    
  1750. yycrank+731,    0,        0,    
  1751. yycrank+731,    0,        0,    
  1752. yycrank+0,    0,        yyvstop+319,
  1753. yycrank+737,    0,        0,    
  1754. yycrank+733,    0,        0,    
  1755. yycrank+0,    0,        yyvstop+321,
  1756. yycrank+0,    0,        yyvstop+323,
  1757. yycrank+0,    0,        yyvstop+325,
  1758. 0,    0,    0};
  1759. struct yywork *yytop = yycrank+816;
  1760. struct yysvf *yybgin = yysvec+1;
  1761. char yymatch[] = {
  1762. 00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  1763. 01  ,011 ,012 ,01  ,01  ,01  ,01  ,01  ,
  1764. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  1765. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  1766. 040 ,01  ,'"' ,'#' ,01  ,01  ,01  ,01  ,
  1767. 01  ,01  ,01  ,'+' ,01  ,'+' ,'#' ,01  ,
  1768. '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
  1769. '0' ,'0' ,01  ,01  ,01  ,01  ,01  ,01  ,
  1770. 01  ,'#' ,'#' ,'#' ,01  ,01  ,01  ,01  ,
  1771. 01  ,'#' ,01  ,'#' ,'#' ,01  ,01  ,01  ,
  1772. '#' ,01  ,01  ,'#' ,01  ,01  ,01  ,'#' ,
  1773. 01  ,01  ,01  ,01  ,'#' ,01  ,01  ,01  ,
  1774. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  1775. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  1776. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  1777. 01  ,01  ,01  ,'#' ,'#' ,'#' ,01  ,01  ,
  1778. 0};
  1779. char yyextra[] = {
  1780. 0,0,0,0,0,0,0,0,
  1781. 0,0,0,0,0,0,0,0,
  1782. 0,0,0,0,0,0,0,0,
  1783. 0,0,0,0,0,0,0,0,
  1784. 0,0,0,0,0,0,0,0,
  1785. 0,0,0,0,0,0,0,0,
  1786. 0,0,0,0,0,0,0,0,
  1787. 0,0,0,0,0,0,0,0,
  1788. 0,0,0,0,0,0,0,0,
  1789. 0,0,0,0,0,0,0,0,
  1790. 0,0,0,0,0,0,0,0,
  1791. 0,0,0,0,0,0,0,0,
  1792. 0,0,0,0,0,0,0,0,
  1793. 0};
  1794. #ifndef lint
  1795. static    char ncform_sccsid[] = "@(#)ncform 1.6 88/02/08 SMI"; /* from S5R2 1.2 */
  1796. #endif
  1797.  
  1798. int yylineno =1;
  1799. # define YYU(x) x
  1800. # define NLSTATE yyprevious=YYNEWLINE
  1801. char yytext[YYLMAX];
  1802. struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
  1803. char yysbuf[YYLMAX];
  1804. char *yysptr = yysbuf;
  1805. int *yyfnd;
  1806. extern struct yysvf *yyestate;
  1807. int yyprevious = YYNEWLINE;
  1808. yylook(){
  1809.     register struct yysvf *yystate, **lsp;
  1810.     register struct yywork *yyt;
  1811.     struct yysvf *yyz;
  1812.     int yych, yyfirst;
  1813.     struct yywork *yyr;
  1814. # ifdef LEXDEBUG
  1815.     int debug;
  1816. # endif
  1817.     char *yylastch;
  1818.     /* start off machines */
  1819. # ifdef LEXDEBUG
  1820.     debug = 0;
  1821. # endif
  1822.     yyfirst=1;
  1823.     if (!yymorfg)
  1824.         yylastch = yytext;
  1825.     else {
  1826.         yymorfg=0;
  1827.         yylastch = yytext+yyleng;
  1828.         }
  1829.     for(;;){
  1830.         lsp = yylstate;
  1831.         yyestate = yystate = yybgin;
  1832.         if (yyprevious==YYNEWLINE) yystate++;
  1833.         for (;;){
  1834. # ifdef LEXDEBUG
  1835.             if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
  1836. # endif
  1837.             yyt = yystate->yystoff;
  1838.             if(yyt == yycrank && !yyfirst){  /* may not be any transitions */
  1839.                 yyz = yystate->yyother;
  1840.                 if(yyz == 0)break;
  1841.                 if(yyz->yystoff == yycrank)break;
  1842.                 }
  1843.             *yylastch++ = yych = input();
  1844.             yyfirst=0;
  1845.         tryagain:
  1846. # ifdef LEXDEBUG
  1847.             if(debug){
  1848.                 fprintf(yyout,"char ");
  1849.                 allprint(yych);
  1850.                 putchar('\n');
  1851.                 }
  1852. # endif
  1853.             yyr = yyt;
  1854.             if ( (int)yyt > (int)yycrank){
  1855.                 yyt = yyr + yych;
  1856.                 if (yyt <= yytop && yyt->verify+yysvec == yystate){
  1857.                     if(yyt->advance+yysvec == YYLERR)    /* error transitions */
  1858.                         {unput(*--yylastch);break;}
  1859.                     *lsp++ = yystate = yyt->advance+yysvec;
  1860.                     goto contin;
  1861.                     }
  1862.                 }
  1863. # ifdef YYOPTIM
  1864.             else if((int)yyt < (int)yycrank) {        /* r < yycrank */
  1865.                 yyt = yyr = yycrank+(yycrank-yyt);
  1866. # ifdef LEXDEBUG
  1867.                 if(debug)fprintf(yyout,"compressed state\n");
  1868. # endif
  1869.                 yyt = yyt + yych;
  1870.                 if(yyt <= yytop && yyt->verify+yysvec == yystate){
  1871.                     if(yyt->advance+yysvec == YYLERR)    /* error transitions */
  1872.                         {unput(*--yylastch);break;}
  1873.                     *lsp++ = yystate = yyt->advance+yysvec;
  1874.                     goto contin;
  1875.                     }
  1876.                 yyt = yyr + YYU(yymatch[yych]);
  1877. # ifdef LEXDEBUG
  1878.                 if(debug){
  1879.                     fprintf(yyout,"try fall back character ");
  1880.                     allprint(YYU(yymatch[yych]));
  1881.                     putchar('\n');
  1882.                     }
  1883. # endif
  1884.                 if(yyt <= yytop && yyt->verify+yysvec == yystate){
  1885.                     if(yyt->advance+yysvec == YYLERR)    /* error transition */
  1886.                         {unput(*--yylastch);break;}
  1887.                     *lsp++ = yystate = yyt->advance+yysvec;
  1888.                     goto contin;
  1889.                     }
  1890.                 }
  1891.             if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
  1892. # ifdef LEXDEBUG
  1893.                 if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
  1894. # endif
  1895.                 goto tryagain;
  1896.                 }
  1897. # endif
  1898.             else
  1899.                 {unput(*--yylastch);break;}
  1900.         contin:
  1901. # ifdef LEXDEBUG
  1902.             if(debug){
  1903.                 fprintf(yyout,"state %d char ",yystate-yysvec-1);
  1904.                 allprint(yych);
  1905.                 putchar('\n');
  1906.                 }
  1907. # endif
  1908.             ;
  1909.             }
  1910. # ifdef LEXDEBUG
  1911.         if(debug){
  1912.             fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
  1913.             allprint(yych);
  1914.             putchar('\n');
  1915.             }
  1916. # endif
  1917.         while (lsp-- > yylstate){
  1918.             *yylastch-- = 0;
  1919.             if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
  1920.                 yyolsp = lsp;
  1921.                 if(yyextra[*yyfnd]){        /* must backup */
  1922.                     while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
  1923.                         lsp--;
  1924.                         unput(*yylastch--);
  1925.                         }
  1926.                     }
  1927.                 yyprevious = YYU(*yylastch);
  1928.                 yylsp = lsp;
  1929.                 yyleng = yylastch-yytext+1;
  1930.                 yytext[yyleng] = 0;
  1931. # ifdef LEXDEBUG
  1932.                 if(debug){
  1933.                     fprintf(yyout,"\nmatch ");
  1934.                     sprint(yytext);
  1935.                     fprintf(yyout," action %d\n",*yyfnd);
  1936.                     }
  1937. # endif
  1938.                 return(*yyfnd++);
  1939.                 }
  1940.             unput(*yylastch);
  1941.             }
  1942.         if (yytext[0] == 0  /* && feof(yyin) */)
  1943.             {
  1944.             yysptr=yysbuf;
  1945.             return(0);
  1946.             }
  1947.         yyprevious = yytext[0] = input();
  1948.         if (yyprevious>0)
  1949.             output(yyprevious);
  1950.         yylastch=yytext;
  1951. # ifdef LEXDEBUG
  1952.         if(debug)putchar('\n');
  1953. # endif
  1954.         }
  1955.     }
  1956. yyback(p, m)
  1957.     int *p;
  1958. {
  1959. if (p==0) return(0);
  1960. while (*p)
  1961.     {
  1962.     if (*p++ == m)
  1963.         return(1);
  1964.     }
  1965. return(0);
  1966. }
  1967.     /* the following are only used in the lex library */
  1968. yyinput(){
  1969.     return(input());
  1970.     }
  1971. yyoutput(c)
  1972.   int c; {
  1973.     output(c);
  1974.     }
  1975. yyunput(c)
  1976.    int c; {
  1977.     unput(c);
  1978.     }
  1979.