home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d1xx / d167 / cdecl.lha / CDecl / cdlex.c < prev    next >
Text File  |  1988-11-22  |  21KB  |  1,453 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. /* Lexical analyzer description for ANSI and C++ cdecl. */
  29. /* The output of this file is included */
  30. /* into the C file cdecl.c. */
  31. char cdlexsccsid[] = "@(#)cdlex.l    2.2 3/30/88";
  32. # define YYNEWLINE 10
  33. yylex(){
  34. int nstr; extern int yyprevious;
  35. while((nstr = yylook()) >= 0)
  36. yyfussy: switch(nstr){
  37. case 0:
  38. if(yywrap()) return(0); break;
  39. case 1:
  40.     return ARRAY;
  41. break;
  42. case 2:
  43.     return AS;
  44. break;
  45. case 3:
  46.     return CAST;
  47. break;
  48. case 4:
  49.     return DECLARE;
  50. break;
  51. case 5:
  52.     return 0;
  53. break;
  54. case 6:
  55.     return EXPLAIN;
  56. break;
  57. case 7:
  58. return FUNCTION;
  59. break;
  60. case 8:
  61.     return FUNCTION;
  62. break;
  63. case 9:
  64.     return HELP;
  65. break;
  66. case 10:
  67.     return INTO;
  68. break;
  69. case 11:
  70.     return MEMBER;
  71. break;
  72. case 12:
  73.     return OF;
  74. break;
  75. case 13:
  76.     return POINTER;
  77. break;
  78. case 14:
  79.     return POINTER;
  80. break;
  81. case 15:
  82.     return 0;
  83. break;
  84. case 16:
  85. return REFERENCE;
  86. break;
  87. case 17:
  88.     return REFERENCE;
  89. break;
  90. case 18:
  91. return RETURNING;
  92. break;
  93. case 19:
  94.     return RETURNING;
  95. break;
  96. case 20:
  97.     return SET;
  98. break;
  99. case 21:
  100.     return TO;
  101. break;
  102. case 22:
  103.     return ARRAY;
  104. break;
  105. case 23:
  106.     return DOUBLECOLON;
  107. break;
  108. case 24:
  109.     return HELP;
  110. break;
  111. case 25:
  112.     return COMMA;
  113. break;
  114. case 26:
  115.     { yylval.dynstr = ds(yytext);    return AUTO; }
  116. break;
  117. case 27:
  118. { yylval.dynstr = ds("char");    return CHAR; }
  119. break;
  120. case 28:
  121.     { yylval.dynstr = ds(yytext);    return CHAR; }
  122. break;
  123. case 29:
  124.     { yylval.dynstr = ds(yytext);    return CLASS; }
  125. break;
  126. case 30:
  127. { yylval.dynstr = ds("const");    return CONSTVOLATILE; }
  128. break;
  129. case 31:
  130.     { yylval.dynstr = ds(yytext);    return CONSTVOLATILE; }
  131. break;
  132. case 32:
  133.     { yylval.dynstr = ds(yytext);    return DOUBLE; }
  134. break;
  135. case 33:
  136. { yylval.dynstr = ds("enum");    return ENUM; }
  137. break;
  138. case 34:
  139.     { yylval.dynstr = ds(yytext);    return ENUM; }
  140. break;
  141. case 35:
  142.     { yylval.dynstr = ds(yytext);    return EXTERN; }
  143. break;
  144. case 36:
  145.     { yylval.dynstr = ds(yytext);    return FLOAT; }
  146. break;
  147. case 37:
  148.     { yylval.dynstr = ds("int");    return INT; }
  149. break;
  150. case 38:
  151.     { yylval.dynstr = ds(yytext);    return INT; }
  152. break;
  153. case 39:
  154.     { yylval.dynstr = ds(yytext);    return LONG; }
  155. break;
  156. case 40:
  157.     { yylval.dynstr = ds(yytext);    return CONSTVOLATILE; }
  158. break;
  159. case 41:
  160. { yylval.dynstr = ds(yytext);    return REGISTER; }
  161. break;
  162. case 42:
  163.     { yylval.dynstr = ds(yytext);    return SHORT; }
  164. break;
  165. case 43:
  166.     { yylval.dynstr = ds(yytext);    return SIGNED; }
  167. break;
  168. case 44:
  169.     { yylval.dynstr = ds(yytext);    return STATIC; }
  170. break;
  171. case 45:
  172. { yylval.dynstr = ds("struct");    return STRUCT; }
  173. break;
  174. case 46:
  175.     { yylval.dynstr = ds(yytext);    return STRUCT; }
  176. break;
  177. case 47:
  178.     { yylval.dynstr = ds(yytext);    return UNION; }
  179. break;
  180. case 48:
  181. { yylval.dynstr = ds(yytext);    return UNSIGNED; }
  182. break;
  183. case 49:
  184.     { yylval.dynstr = ds(yytext);    return VOID; }
  185. break;
  186. case 50:
  187. { yylval.dynstr = ds(yytext);    return CONSTVOLATILE; }
  188. break;
  189. case 51:
  190. { yylval.dynstr = ds(yytext);    return NAME; }
  191. break;
  192. case 52:
  193.     { yylval.dynstr = ds(yytext);    return NUMBER; }
  194. break;
  195. case 53:
  196.     ;
  197. break;
  198. case 54:
  199.     ;
  200. break;
  201. case 55:
  202. return *yytext;
  203. break;
  204. case 56:
  205.     {
  206.             (void) printf("bad character '%s'\n",visible(*yytext));
  207.             return *yytext;
  208.         }
  209. break;
  210. case -1:
  211. break;
  212. default:
  213. fprintf(yyout,"bad switch yylook %d",nstr);
  214. } return(0); }
  215. /* end of yylex */
  216. int yyvstop[] = {
  217. 0,
  218.  
  219. 56,
  220. 0,
  221.  
  222. 54,
  223. 56,
  224. 0,
  225.  
  226. 55,
  227. 0,
  228.  
  229. 53,
  230. 56,
  231. 0,
  232.  
  233. 55,
  234. 56,
  235. 0,
  236.  
  237. 25,
  238. 56,
  239. 0,
  240.  
  241. 52,
  242. 56,
  243. 0,
  244.  
  245. 56,
  246. 0,
  247.  
  248. 24,
  249. 56,
  250. 0,
  251.  
  252. 51,
  253. 56,
  254. 0,
  255.  
  256. 51,
  257. 56,
  258. 0,
  259.  
  260. 51,
  261. 56,
  262. 0,
  263.  
  264. 51,
  265. 56,
  266. 0,
  267.  
  268. 51,
  269. 56,
  270. 0,
  271.  
  272. 51,
  273. 56,
  274. 0,
  275.  
  276. 51,
  277. 56,
  278. 0,
  279.  
  280. 51,
  281. 56,
  282. 0,
  283.  
  284. 51,
  285. 56,
  286. 0,
  287.  
  288. 51,
  289. 56,
  290. 0,
  291.  
  292. 51,
  293. 56,
  294. 0,
  295.  
  296. 51,
  297. 56,
  298. 0,
  299.  
  300. 51,
  301. 56,
  302. 0,
  303.  
  304. 51,
  305. 56,
  306. 0,
  307.  
  308. 51,
  309. 56,
  310. 0,
  311.  
  312. 51,
  313. 56,
  314. 0,
  315.  
  316. 51,
  317. 56,
  318. 0,
  319.  
  320. 51,
  321. 56,
  322. 0,
  323.  
  324. 51,
  325. 56,
  326. 0,
  327.  
  328. 53,
  329. 0,
  330.  
  331. 52,
  332. 0,
  333.  
  334. 23,
  335. 0,
  336.  
  337. 51,
  338. 0,
  339.  
  340. 51,
  341. 0,
  342.  
  343. 2,
  344. 51,
  345. 0,
  346.  
  347. 51,
  348. 0,
  349.  
  350. 51,
  351. 0,
  352.  
  353. 51,
  354. 0,
  355.  
  356. 51,
  357. 0,
  358.  
  359. 51,
  360. 0,
  361.  
  362. 51,
  363. 0,
  364.  
  365. 51,
  366. 0,
  367.  
  368. 51,
  369. 0,
  370.  
  371. 51,
  372. 0,
  373.  
  374. 51,
  375. 0,
  376.  
  377. 51,
  378. 0,
  379.  
  380. 51,
  381. 0,
  382.  
  383. 51,
  384. 0,
  385.  
  386. 51,
  387. 0,
  388.  
  389. 51,
  390. 0,
  391.  
  392. 51,
  393. 0,
  394.  
  395. 12,
  396. 51,
  397. 0,
  398.  
  399. 51,
  400. 0,
  401.  
  402. 51,
  403. 0,
  404.  
  405. 51,
  406. 0,
  407.  
  408. 51,
  409. 0,
  410.  
  411. 51,
  412. 0,
  413.  
  414. 51,
  415. 0,
  416.  
  417. 51,
  418. 0,
  419.  
  420. 51,
  421. 0,
  422.  
  423. 21,
  424. 51,
  425. 0,
  426.  
  427. 51,
  428. 0,
  429.  
  430. 51,
  431. 0,
  432.  
  433. 51,
  434. 0,
  435.  
  436. 51,
  437. 0,
  438.  
  439. 51,
  440. 0,
  441.  
  442. 51,
  443. 0,
  444.  
  445. 51,
  446. 0,
  447.  
  448. 51,
  449. 0,
  450.  
  451. 51,
  452. 0,
  453.  
  454. 51,
  455. 0,
  456.  
  457. 51,
  458. 0,
  459.  
  460. 51,
  461. 0,
  462.  
  463. 51,
  464. 0,
  465.  
  466. 51,
  467. 0,
  468.  
  469. 51,
  470. 0,
  471.  
  472. 51,
  473. 0,
  474.  
  475. 51,
  476. 0,
  477.  
  478. 51,
  479. 0,
  480.  
  481. 38,
  482. 51,
  483. 0,
  484.  
  485. 51,
  486. 0,
  487.  
  488. 51,
  489. 0,
  490.  
  491. 51,
  492. 0,
  493.  
  494. 51,
  495. 0,
  496.  
  497. 14,
  498. 51,
  499. 0,
  500.  
  501. 51,
  502. 0,
  503.  
  504. 17,
  505. 51,
  506. 0,
  507.  
  508. 51,
  509. 0,
  510.  
  511. 19,
  512. 51,
  513. 0,
  514.  
  515. 20,
  516. 51,
  517. 0,
  518.  
  519. 51,
  520. 0,
  521.  
  522. 51,
  523. 0,
  524.  
  525. 51,
  526. 0,
  527.  
  528. 51,
  529. 0,
  530.  
  531. 51,
  532. 0,
  533.  
  534. 51,
  535. 0,
  536.  
  537. 51,
  538. 0,
  539.  
  540. 51,
  541. 0,
  542.  
  543. 51,
  544. 0,
  545.  
  546. 51,
  547. 0,
  548.  
  549. 26,
  550. 51,
  551. 0,
  552.  
  553. 3,
  554. 51,
  555. 0,
  556.  
  557. 28,
  558. 51,
  559. 0,
  560.  
  561. 51,
  562. 0,
  563.  
  564. 51,
  565. 0,
  566.  
  567. 51,
  568. 0,
  569.  
  570. 51,
  571. 0,
  572.  
  573. 34,
  574. 51,
  575. 0,
  576.  
  577. 5,
  578. 51,
  579. 0,
  580.  
  581. 51,
  582. 0,
  583.  
  584. 51,
  585. 0,
  586.  
  587. 51,
  588. 0,
  589.  
  590. 8,
  591. 51,
  592. 0,
  593.  
  594. 9,
  595. 51,
  596. 0,
  597.  
  598. 51,
  599. 0,
  600.  
  601. 10,
  602. 51,
  603. 0,
  604.  
  605. 39,
  606. 51,
  607. 0,
  608.  
  609. 51,
  610. 0,
  611.  
  612. 51,
  613. 0,
  614.  
  615. 51,
  616. 0,
  617.  
  618. 15,
  619. 51,
  620. 0,
  621.  
  622. 51,
  623. 0,
  624.  
  625. 51,
  626. 0,
  627.  
  628. 51,
  629. 0,
  630.  
  631. 51,
  632. 0,
  633.  
  634. 51,
  635. 0,
  636.  
  637. 51,
  638. 0,
  639.  
  640. 51,
  641. 0,
  642.  
  643. 51,
  644. 0,
  645.  
  646. 51,
  647. 0,
  648.  
  649. 51,
  650. 0,
  651.  
  652. 49,
  653. 51,
  654. 0,
  655.  
  656. 51,
  657. 0,
  658.  
  659. 1,
  660. 51,
  661. 0,
  662.  
  663. 51,
  664. 0,
  665.  
  666. 29,
  667. 51,
  668. 0,
  669.  
  670. 31,
  671. 51,
  672. 0,
  673.  
  674. 51,
  675. 0,
  676.  
  677. 51,
  678. 0,
  679.  
  680. 51,
  681. 0,
  682.  
  683. 51,
  684. 0,
  685.  
  686. 51,
  687. 0,
  688.  
  689. 36,
  690. 51,
  691. 0,
  692.  
  693. 51,
  694. 0,
  695.  
  696. 51,
  697. 0,
  698.  
  699. 51,
  700. 0,
  701.  
  702. 51,
  703. 0,
  704.  
  705. 51,
  706. 0,
  707.  
  708. 51,
  709. 0,
  710.  
  711. 51,
  712. 0,
  713.  
  714. 51,
  715. 0,
  716.  
  717. 42,
  718. 51,
  719. 0,
  720.  
  721. 51,
  722. 0,
  723.  
  724. 51,
  725. 0,
  726.  
  727. 51,
  728. 0,
  729.  
  730. 47,
  731. 51,
  732. 0,
  733.  
  734. 51,
  735. 0,
  736.  
  737. 51,
  738. 0,
  739.  
  740. 51,
  741. 0,
  742.  
  743. 51,
  744. 0,
  745.  
  746. 51,
  747. 0,
  748.  
  749. 51,
  750. 0,
  751.  
  752. 32,
  753. 51,
  754. 0,
  755.  
  756. 51,
  757. 0,
  758.  
  759. 51,
  760. 0,
  761.  
  762. 35,
  763. 51,
  764. 0,
  765.  
  766. 51,
  767. 0,
  768.  
  769. 51,
  770. 0,
  771.  
  772. 11,
  773. 51,
  774. 0,
  775.  
  776. 51,
  777. 0,
  778.  
  779. 51,
  780. 0,
  781.  
  782. 51,
  783. 0,
  784.  
  785. 51,
  786. 0,
  787.  
  788. 51,
  789. 0,
  790.  
  791. 43,
  792. 51,
  793. 0,
  794.  
  795. 44,
  796. 51,
  797. 0,
  798.  
  799. 46,
  800. 51,
  801. 0,
  802.  
  803. 51,
  804. 0,
  805.  
  806. 22,
  807. 51,
  808. 0,
  809.  
  810. 51,
  811. 0,
  812.  
  813. 51,
  814. 0,
  815.  
  816. 51,
  817. 0,
  818.  
  819. 4,
  820. 51,
  821. 0,
  822.  
  823. 51,
  824. 0,
  825.  
  826. 6,
  827. 51,
  828. 0,
  829.  
  830. 51,
  831. 0,
  832.  
  833. 37,
  834. 51,
  835. 0,
  836.  
  837. 40,
  838. 51,
  839. 0,
  840.  
  841. 13,
  842. 51,
  843. 0,
  844.  
  845. 51,
  846. 0,
  847.  
  848. 51,
  849. 0,
  850.  
  851. 51,
  852. 0,
  853.  
  854. 51,
  855. 0,
  856.  
  857. 51,
  858. 0,
  859.  
  860. 51,
  861. 0,
  862.  
  863. 51,
  864. 0,
  865.  
  866. 30,
  867. 51,
  868. 0,
  869.  
  870. 51,
  871. 0,
  872.  
  873. 7,
  874. 51,
  875. 0,
  876.  
  877. 51,
  878. 0,
  879.  
  880. 41,
  881. 51,
  882. 0,
  883.  
  884. 51,
  885. 0,
  886.  
  887. 51,
  888. 0,
  889.  
  890. 48,
  891. 51,
  892. 0,
  893.  
  894. 50,
  895. 51,
  896. 0,
  897.  
  898. 27,
  899. 51,
  900. 0,
  901.  
  902. 51,
  903. 0,
  904.  
  905. 16,
  906. 51,
  907. 0,
  908.  
  909. 18,
  910. 51,
  911. 0,
  912.  
  913. 45,
  914. 51,
  915. 0,
  916.  
  917. 51,
  918. 0,
  919.  
  920. 33,
  921. 51,
  922. 0,
  923. 0};
  924. # define YYTYPE int
  925. struct yywork { YYTYPE verify, advance; } yycrank[] = {
  926. 0,0,    0,0,    1,3,    0,0,    
  927. 0,0,    0,0,    0,0,    6,31,    
  928. 0,0,    0,0,    1,4,    1,5,    
  929. 0,0,    0,0,    0,0,    6,31,    
  930. 6,0,    0,0,    0,0,    0,0,    
  931. 0,0,    0,0,    0,0,    0,0,    
  932. 0,0,    0,0,    0,0,    0,0,    
  933. 0,0,    0,0,    0,0,    0,0,    
  934. 0,0,    0,0,    0,0,    0,0,    
  935. 1,6,    0,0,    0,0,    1,7,    
  936. 0,0,    6,31,    0,0,    0,0,    
  937. 6,31,    1,8,    0,0,    0,0,    
  938. 0,0,    1,9,    6,31,    0,0,    
  939. 0,0,    0,0,    6,31,    0,0,    
  940. 0,0,    0,0,    0,0,    1,10,    
  941. 10,33,    0,0,    0,0,    0,0,    
  942. 1,11,    0,0,    1,12,    0,0,    
  943. 0,0,    6,31,    0,0,    6,31,    
  944. 0,0,    0,0,    0,0,    0,0,    
  945. 0,0,    0,0,    0,0,    0,0,    
  946. 0,0,    2,10,    9,32,    9,32,    
  947. 9,32,    9,32,    9,32,    9,32,    
  948. 9,32,    9,32,    9,32,    9,32,    
  949. 0,0,    0,0,    0,0,    0,0,    
  950. 0,0,    0,0,    1,13,    0,0,    
  951. 1,14,    1,15,    1,16,    1,17,    
  952. 18,48,    1,18,    1,19,    31,0,    
  953. 0,0,    1,20,    1,21,    1,22,    
  954. 1,23,    1,24,    1,25,    1,26,    
  955. 1,27,    1,28,    1,29,    1,30,    
  956. 2,13,    17,46,    2,14,    2,15,    
  957. 2,16,    2,17,    19,49,    2,18,    
  958. 2,19,    20,50,    17,47,    2,20,    
  959. 2,21,    2,22,    2,23,    2,24,    
  960. 2,25,    2,26,    2,27,    2,28,    
  961. 2,29,    2,30,    12,34,    12,34,    
  962. 12,34,    12,34,    12,34,    12,34,    
  963. 12,34,    12,34,    12,34,    12,34,    
  964. 13,35,    13,36,    21,51,    13,37,    
  965. 22,52,    23,53,    25,56,    12,34,    
  966. 12,34,    12,34,    12,34,    12,34,    
  967. 12,34,    12,34,    12,34,    12,34,    
  968. 12,34,    12,34,    12,34,    12,34,    
  969. 12,34,    12,34,    12,34,    12,34,    
  970. 12,34,    12,34,    12,34,    12,34,    
  971. 12,34,    12,34,    12,34,    12,34,    
  972. 12,34,    24,54,    26,57,    28,62,    
  973. 29,63,    12,34,    24,55,    12,34,    
  974. 12,34,    12,34,    12,34,    12,34,    
  975. 12,34,    12,34,    12,34,    12,34,    
  976. 12,34,    12,34,    12,34,    12,34,    
  977. 12,34,    12,34,    12,34,    12,34,    
  978. 12,34,    12,34,    12,34,    12,34,    
  979. 12,34,    12,34,    12,34,    12,34,    
  980. 12,34,    14,38,    27,58,    15,42,    
  981. 16,44,    27,59,    27,60,    35,66,    
  982. 14,39,    30,64,    37,67,    38,68,    
  983. 14,40,    15,43,    16,45,    14,41,    
  984. 39,69,    27,61,    40,70,    30,65,    
  985. 41,71,    42,72,    43,73,    44,74,    
  986. 45,75,    46,78,    47,79,    48,80,    
  987. 49,81,    50,82,    51,83,    45,76,    
  988. 52,84,    54,85,    55,86,    45,77,    
  989. 56,87,    57,88,    57,89,    58,91,    
  990. 59,92,    60,93,    61,94,    63,96,    
  991. 64,98,    65,99,    66,101,    67,102,    
  992. 65,100,    68,103,    69,104,    57,90,    
  993. 70,105,    63,97,    71,106,    72,107,    
  994. 73,108,    74,109,    75,110,    61,95,    
  995. 76,111,    77,112,    78,113,    79,114,    
  996. 80,115,    81,116,    82,118,    83,119,    
  997. 84,120,    85,121,    87,122,    88,123,    
  998. 89,124,    90,125,    92,126,    81,117,    
  999. 93,127,    94,128,    95,129,    96,130,    
  1000. 97,131,    98,132,    99,133,    100,134,    
  1001. 101,135,    104,136,    105,137,    106,138,    
  1002. 107,139,    108,140,    109,141,    111,142,    
  1003. 112,143,    113,144,    114,145,    116,146,    
  1004. 119,147,    120,148,    121,149,    123,150,    
  1005. 124,151,    125,152,    126,153,    127,154,    
  1006. 128,155,    129,156,    130,157,    131,158,    
  1007. 132,159,    134,160,    136,161,    138,162,    
  1008. 139,163,    140,164,    141,165,    142,166,    
  1009. 143,167,    145,168,    146,169,    147,170,    
  1010. 148,171,    149,172,    150,173,    151,174,    
  1011. 152,175,    154,176,    155,177,    156,178,    
  1012. 158,179,    159,180,    160,181,    161,182,    
  1013. 162,183,    163,184,    165,185,    166,186,    
  1014. 168,187,    169,188,    171,189,    172,190,    
  1015. 173,191,    174,192,    175,193,    178,194,    
  1016. 179,195,    181,196,    182,197,    183,198,    
  1017. 185,199,    187,200,    191,201,    192,202,    
  1018. 193,203,    194,204,    195,205,    196,206,    
  1019. 197,207,    199,208,    201,209,    203,210,    
  1020. 204,211,    208,212,    212,213,    0,0,    
  1021. 0,0};
  1022. struct yysvf yysvec[] = {
  1023. 0,    0,    0,
  1024. yycrank+-1,    0,        0,    
  1025. yycrank+-23,    yysvec+1,    0,    
  1026. yycrank+0,    0,        yyvstop+1,
  1027. yycrank+0,    0,        yyvstop+3,
  1028. yycrank+0,    0,        yyvstop+6,
  1029. yycrank+-6,    0,        yyvstop+8,
  1030. yycrank+0,    0,        yyvstop+11,
  1031. yycrank+0,    0,        yyvstop+14,
  1032. yycrank+34,    0,        yyvstop+17,
  1033. yycrank+2,    0,        yyvstop+20,
  1034. yycrank+0,    0,        yyvstop+22,
  1035. yycrank+94,    0,        yyvstop+25,
  1036. yycrank+38,    yysvec+12,    yyvstop+28,
  1037. yycrank+120,    yysvec+12,    yyvstop+31,
  1038. yycrank+118,    yysvec+12,    yyvstop+34,
  1039. yycrank+110,    yysvec+12,    yyvstop+37,
  1040. yycrank+13,    yysvec+12,    yyvstop+40,
  1041. yycrank+3,    yysvec+12,    yyvstop+43,
  1042. yycrank+16,    yysvec+12,    yyvstop+46,
  1043. yycrank+18,    yysvec+12,    yyvstop+49,
  1044. yycrank+53,    yysvec+12,    yyvstop+52,
  1045. yycrank+45,    yysvec+12,    yyvstop+55,
  1046. yycrank+55,    yysvec+12,    yyvstop+58,
  1047. yycrank+74,    yysvec+12,    yyvstop+61,
  1048. yycrank+41,    yysvec+12,    yyvstop+64,
  1049. yycrank+85,    yysvec+12,    yyvstop+67,
  1050. yycrank+117,    yysvec+12,    yyvstop+70,
  1051. yycrank+76,    yysvec+12,    yyvstop+73,
  1052. yycrank+78,    yysvec+12,    yyvstop+76,
  1053. yycrank+124,    yysvec+12,    yyvstop+79,
  1054. yycrank+-97,    yysvec+6,    yyvstop+82,
  1055. yycrank+0,    yysvec+9,    yyvstop+84,
  1056. yycrank+0,    0,        yyvstop+86,
  1057. yycrank+0,    yysvec+12,    yyvstop+88,
  1058. yycrank+109,    yysvec+12,    yyvstop+90,
  1059. yycrank+0,    yysvec+12,    yyvstop+92,
  1060. yycrank+110,    yysvec+12,    yyvstop+95,
  1061. yycrank+112,    yysvec+12,    yyvstop+97,
  1062. yycrank+135,    yysvec+12,    yyvstop+99,
  1063. yycrank+137,    yysvec+12,    yyvstop+101,
  1064. yycrank+126,    yysvec+12,    yyvstop+103,
  1065. yycrank+138,    yysvec+12,    yyvstop+105,
  1066. yycrank+121,    yysvec+12,    yyvstop+107,
  1067. yycrank+122,    yysvec+12,    yyvstop+109,
  1068. yycrank+135,    yysvec+12,    yyvstop+111,
  1069. yycrank+130,    yysvec+12,    yyvstop+113,
  1070. yycrank+132,    yysvec+12,    yyvstop+115,
  1071. yycrank+135,    yysvec+12,    yyvstop+117,
  1072. yycrank+128,    yysvec+12,    yyvstop+119,
  1073. yycrank+135,    yysvec+12,    yyvstop+121,
  1074. yycrank+137,    yysvec+12,    yyvstop+123,
  1075. yycrank+151,    yysvec+12,    yyvstop+125,
  1076. yycrank+0,    yysvec+12,    yyvstop+127,
  1077. yycrank+144,    yysvec+12,    yyvstop+130,
  1078. yycrank+136,    yysvec+12,    yyvstop+132,
  1079. yycrank+147,    yysvec+12,    yyvstop+134,
  1080. yycrank+151,    yysvec+12,    yyvstop+136,
  1081. yycrank+139,    yysvec+12,    yyvstop+138,
  1082. yycrank+145,    yysvec+12,    yyvstop+140,
  1083. yycrank+154,    yysvec+12,    yyvstop+142,
  1084. yycrank+161,    yysvec+12,    yyvstop+144,
  1085. yycrank+0,    yysvec+12,    yyvstop+146,
  1086. yycrank+154,    yysvec+12,    yyvstop+149,
  1087. yycrank+161,    yysvec+12,    yyvstop+151,
  1088. yycrank+156,    yysvec+12,    yyvstop+153,
  1089. yycrank+165,    yysvec+12,    yyvstop+155,
  1090. yycrank+152,    yysvec+12,    yyvstop+157,
  1091. yycrank+149,    yysvec+12,    yyvstop+159,
  1092. yycrank+152,    yysvec+12,    yyvstop+161,
  1093. yycrank+153,    yysvec+12,    yyvstop+163,
  1094. yycrank+155,    yysvec+12,    yyvstop+165,
  1095. yycrank+163,    yysvec+12,    yyvstop+167,
  1096. yycrank+174,    yysvec+12,    yyvstop+169,
  1097. yycrank+164,    yysvec+12,    yyvstop+171,
  1098. yycrank+158,    yysvec+12,    yyvstop+173,
  1099. yycrank+168,    yysvec+12,    yyvstop+175,
  1100. yycrank+176,    yysvec+12,    yyvstop+177,
  1101. yycrank+181,    yysvec+12,    yyvstop+179,
  1102. yycrank+180,    yysvec+12,    yyvstop+181,
  1103. yycrank+168,    yysvec+12,    yyvstop+183,
  1104. yycrank+180,    yysvec+12,    yyvstop+185,
  1105. yycrank+179,    yysvec+12,    yyvstop+188,
  1106. yycrank+185,    yysvec+12,    yyvstop+190,
  1107. yycrank+176,    yysvec+12,    yyvstop+192,
  1108. yycrank+175,    yysvec+12,    yyvstop+194,
  1109. yycrank+0,    yysvec+12,    yyvstop+196,
  1110. yycrank+170,    yysvec+12,    yyvstop+199,
  1111. yycrank+186,    yysvec+12,    yyvstop+201,
  1112. yycrank+183,    yysvec+12,    yyvstop+204,
  1113. yycrank+172,    yysvec+12,    yyvstop+206,
  1114. yycrank+0,    yysvec+12,    yyvstop+209,
  1115. yycrank+176,    yysvec+12,    yyvstop+212,
  1116. yycrank+182,    yysvec+12,    yyvstop+214,
  1117. yycrank+177,    yysvec+12,    yyvstop+216,
  1118. yycrank+177,    yysvec+12,    yyvstop+218,
  1119. yycrank+184,    yysvec+12,    yyvstop+220,
  1120. yycrank+191,    yysvec+12,    yyvstop+222,
  1121. yycrank+181,    yysvec+12,    yyvstop+224,
  1122. yycrank+198,    yysvec+12,    yyvstop+226,
  1123. yycrank+202,    yysvec+12,    yyvstop+228,
  1124. yycrank+179,    yysvec+12,    yyvstop+230,
  1125. yycrank+0,    yysvec+12,    yyvstop+232,
  1126. yycrank+0,    yysvec+12,    yyvstop+235,
  1127. yycrank+204,    yysvec+12,    yyvstop+238,
  1128. yycrank+187,    yysvec+12,    yyvstop+241,
  1129. yycrank+187,    yysvec+12,    yyvstop+243,
  1130. yycrank+207,    yysvec+12,    yyvstop+245,
  1131. yycrank+197,    yysvec+12,    yyvstop+247,
  1132. yycrank+205,    yysvec+12,    yyvstop+249,
  1133. yycrank+0,    yysvec+12,    yyvstop+252,
  1134. yycrank+210,    yysvec+12,    yyvstop+255,
  1135. yycrank+194,    yysvec+12,    yyvstop+257,
  1136. yycrank+193,    yysvec+12,    yyvstop+259,
  1137. yycrank+194,    yysvec+12,    yyvstop+261,
  1138. yycrank+0,    yysvec+12,    yyvstop+264,
  1139. yycrank+208,    yysvec+12,    yyvstop+267,
  1140. yycrank+0,    yysvec+12,    yyvstop+269,
  1141. yycrank+0,    yysvec+12,    yyvstop+272,
  1142. yycrank+211,    yysvec+12,    yyvstop+275,
  1143. yycrank+208,    yysvec+12,    yyvstop+277,
  1144. yycrank+198,    yysvec+12,    yyvstop+279,
  1145. yycrank+0,    yysvec+12,    yyvstop+281,
  1146. yycrank+201,    yysvec+12,    yyvstop+284,
  1147. yycrank+201,    yysvec+12,    yyvstop+286,
  1148. yycrank+203,    yysvec+12,    yyvstop+288,
  1149. yycrank+202,    yysvec+12,    yyvstop+290,
  1150. yycrank+218,    yysvec+12,    yyvstop+292,
  1151. yycrank+215,    yysvec+12,    yyvstop+294,
  1152. yycrank+222,    yysvec+12,    yyvstop+296,
  1153. yycrank+212,    yysvec+12,    yyvstop+298,
  1154. yycrank+220,    yysvec+12,    yyvstop+300,
  1155. yycrank+213,    yysvec+12,    yyvstop+302,
  1156. yycrank+0,    yysvec+12,    yyvstop+304,
  1157. yycrank+209,    yysvec+12,    yyvstop+307,
  1158. yycrank+0,    yysvec+12,    yyvstop+309,
  1159. yycrank+227,    yysvec+12,    yyvstop+312,
  1160. yycrank+0,    yysvec+12,    yyvstop+314,
  1161. yycrank+230,    yysvec+12,    yyvstop+317,
  1162. yycrank+214,    yysvec+12,    yyvstop+320,
  1163. yycrank+228,    yysvec+12,    yyvstop+322,
  1164. yycrank+216,    yysvec+12,    yyvstop+324,
  1165. yycrank+226,    yysvec+12,    yyvstop+326,
  1166. yycrank+222,    yysvec+12,    yyvstop+328,
  1167. yycrank+0,    yysvec+12,    yyvstop+330,
  1168. yycrank+228,    yysvec+12,    yyvstop+333,
  1169. yycrank+233,    yysvec+12,    yyvstop+335,
  1170. yycrank+221,    yysvec+12,    yyvstop+337,
  1171. yycrank+239,    yysvec+12,    yyvstop+339,
  1172. yycrank+236,    yysvec+12,    yyvstop+341,
  1173. yycrank+237,    yysvec+12,    yyvstop+343,
  1174. yycrank+223,    yysvec+12,    yyvstop+345,
  1175. yycrank+230,    yysvec+12,    yyvstop+347,
  1176. yycrank+0,    yysvec+12,    yyvstop+349,
  1177. yycrank+241,    yysvec+12,    yyvstop+352,
  1178. yycrank+243,    yysvec+12,    yyvstop+354,
  1179. yycrank+227,    yysvec+12,    yyvstop+356,
  1180. yycrank+0,    yysvec+12,    yyvstop+358,
  1181. yycrank+234,    yysvec+12,    yyvstop+361,
  1182. yycrank+231,    yysvec+12,    yyvstop+363,
  1183. yycrank+241,    yysvec+12,    yyvstop+365,
  1184. yycrank+231,    yysvec+12,    yyvstop+367,
  1185. yycrank+238,    yysvec+12,    yyvstop+369,
  1186. yycrank+248,    yysvec+12,    yyvstop+371,
  1187. yycrank+0,    yysvec+12,    yyvstop+373,
  1188. yycrank+253,    yysvec+12,    yyvstop+376,
  1189. yycrank+241,    yysvec+12,    yyvstop+378,
  1190. yycrank+0,    yysvec+12,    yyvstop+380,
  1191. yycrank+241,    yysvec+12,    yyvstop+383,
  1192. yycrank+239,    yysvec+12,    yyvstop+385,
  1193. yycrank+0,    yysvec+12,    yyvstop+387,
  1194. yycrank+239,    yysvec+12,    yyvstop+390,
  1195. yycrank+241,    yysvec+12,    yyvstop+392,
  1196. yycrank+246,    yysvec+12,    yyvstop+394,
  1197. yycrank+256,    yysvec+12,    yyvstop+396,
  1198. yycrank+253,    yysvec+12,    yyvstop+398,
  1199. yycrank+0,    yysvec+12,    yyvstop+400,
  1200. yycrank+0,    yysvec+12,    yyvstop+403,
  1201. yycrank+242,    yysvec+12,    yyvstop+406,
  1202. yycrank+259,    yysvec+12,    yyvstop+409,
  1203. yycrank+0,    yysvec+12,    yyvstop+411,
  1204. yycrank+253,    yysvec+12,    yyvstop+414,
  1205. yycrank+261,    yysvec+12,    yyvstop+416,
  1206. yycrank+247,    yysvec+12,    yyvstop+418,
  1207. yycrank+0,    yysvec+12,    yyvstop+420,
  1208. yycrank+248,    yysvec+12,    yyvstop+423,
  1209. yycrank+0,    yysvec+12,    yyvstop+425,
  1210. yycrank+255,    yysvec+12,    yyvstop+428,
  1211. yycrank+0,    yysvec+12,    yyvstop+430,
  1212. yycrank+0,    yysvec+12,    yyvstop+433,
  1213. yycrank+0,    yysvec+12,    yyvstop+436,
  1214. yycrank+267,    yysvec+12,    yyvstop+439,
  1215. yycrank+253,    yysvec+12,    yyvstop+441,
  1216. yycrank+258,    yysvec+12,    yyvstop+443,
  1217. yycrank+255,    yysvec+12,    yyvstop+445,
  1218. yycrank+270,    yysvec+12,    yyvstop+447,
  1219. yycrank+270,    yysvec+12,    yyvstop+449,
  1220. yycrank+258,    yysvec+12,    yyvstop+451,
  1221. yycrank+0,    yysvec+12,    yyvstop+453,
  1222. yycrank+268,    yysvec+12,    yyvstop+456,
  1223. yycrank+0,    yysvec+12,    yyvstop+458,
  1224. yycrank+273,    yysvec+12,    yyvstop+461,
  1225. yycrank+0,    yysvec+12,    yyvstop+463,
  1226. yycrank+272,    yysvec+12,    yyvstop+466,
  1227. yycrank+275,    yysvec+12,    yyvstop+468,
  1228. yycrank+0,    yysvec+12,    yyvstop+470,
  1229. yycrank+0,    yysvec+12,    yyvstop+473,
  1230. yycrank+0,    yysvec+12,    yyvstop+476,
  1231. yycrank+266,    yysvec+12,    yyvstop+479,
  1232. yycrank+0,    yysvec+12,    yyvstop+481,
  1233. yycrank+0,    yysvec+12,    yyvstop+484,
  1234. yycrank+0,    yysvec+12,    yyvstop+487,
  1235. yycrank+268,    yysvec+12,    yyvstop+490,
  1236. yycrank+0,    yysvec+12,    yyvstop+492,
  1237. 0,    0,    0};
  1238. struct yywork *yytop = yycrank+378;
  1239. struct yysvf *yybgin = yysvec+1;
  1240. char yymatch[] = {
  1241. 00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  1242. 01  ,011 ,012 ,01  ,01  ,01  ,01  ,01  ,
  1243. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  1244. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  1245. 011 ,01  ,01  ,'#' ,01  ,01  ,'&' ,01  ,
  1246. '&' ,'&' ,'&' ,01  ,',' ,01  ,01  ,01  ,
  1247. '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
  1248. '0' ,'0' ,01  ,'&' ,01  ,01  ,01  ,'?' ,
  1249. 01  ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  1250. 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  1251. 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  1252. 'A' ,'A' ,'A' ,'&' ,01  ,'&' ,01  ,'A' ,
  1253. 01  ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  1254. 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  1255. 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  1256. 'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,01  ,
  1257. 0};
  1258. char yyextra[] = {
  1259. 0,0,0,0,0,0,0,0,
  1260. 0,0,0,0,0,0,0,0,
  1261. 0,0,0,0,0,0,0,0,
  1262. 0,0,0,0,0,0,0,0,
  1263. 0,0,0,0,0,0,0,0,
  1264. 0,0,0,0,0,0,0,0,
  1265. 0,0,0,0,0,0,0,0,
  1266. 0,0,0,0,0,0,0,0,
  1267. 0};
  1268. #ifndef lint
  1269. static    char ncform_sccsid[] = "@(#)ncform 1.1 86/07/08 SMI"; /* from S5R2 1.2 */
  1270. #endif
  1271.  
  1272. int yylineno =1;
  1273. # define YYU(x) x
  1274. # define NLSTATE yyprevious=YYNEWLINE
  1275. char yytext[YYLMAX];
  1276. struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
  1277. char yysbuf[YYLMAX];
  1278. char *yysptr = yysbuf;
  1279. int *yyfnd;
  1280. extern struct yysvf *yyestate;
  1281. int yyprevious = YYNEWLINE;
  1282. yylook(){
  1283.     register struct yysvf *yystate, **lsp;
  1284.     register struct yywork *yyt;
  1285.     struct yysvf *yyz;
  1286.     int yych, yyfirst;
  1287.     struct yywork *yyr;
  1288. # ifdef LEXDEBUG
  1289.     int debug;
  1290. # endif
  1291.     char *yylastch;
  1292.     /* start off machines */
  1293. # ifdef LEXDEBUG
  1294.     debug = 0;
  1295. # endif
  1296.     yyfirst=1;
  1297.     if (!yymorfg)
  1298.         yylastch = yytext;
  1299.     else {
  1300.         yymorfg=0;
  1301.         yylastch = yytext+yyleng;
  1302.         }
  1303.     for(;;){
  1304.         lsp = yylstate;
  1305.         yyestate = yystate = yybgin;
  1306.         if (yyprevious==YYNEWLINE) yystate++;
  1307.         for (;;){
  1308. # ifdef LEXDEBUG
  1309.             if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
  1310. # endif
  1311.             yyt = yystate->yystoff;
  1312.             if(yyt == yycrank && !yyfirst){  /* may not be any transitions */
  1313.                 yyz = yystate->yyother;
  1314.                 if(yyz == 0)break;
  1315.                 if(yyz->yystoff == yycrank)break;
  1316.                 }
  1317.             *yylastch++ = yych = input();
  1318.             yyfirst=0;
  1319.         tryagain:
  1320. # ifdef LEXDEBUG
  1321.             if(debug){
  1322.                 fprintf(yyout,"char ");
  1323.                 allprint(yych);
  1324.                 putchar('\n');
  1325.                 }
  1326. # endif
  1327.             yyr = yyt;
  1328.             if ( (int)yyt > (int)yycrank){
  1329.                 yyt = yyr + yych;
  1330.                 if (yyt <= yytop && yyt->verify+yysvec == yystate){
  1331.                     if(yyt->advance+yysvec == YYLERR)    /* error transitions */
  1332.                         {unput(*--yylastch);break;}
  1333.                     *lsp++ = yystate = yyt->advance+yysvec;
  1334.                     goto contin;
  1335.                     }
  1336.                 }
  1337. # ifdef YYOPTIM
  1338.             else if((int)yyt < (int)yycrank) {        /* r < yycrank */
  1339.                 yyt = yyr = yycrank+(yycrank-yyt);
  1340. # ifdef LEXDEBUG
  1341.                 if(debug)fprintf(yyout,"compressed state\n");
  1342. # endif
  1343.                 yyt = yyt + yych;
  1344.                 if(yyt <= yytop && yyt->verify+yysvec == yystate){
  1345.                     if(yyt->advance+yysvec == YYLERR)    /* error transitions */
  1346.                         {unput(*--yylastch);break;}
  1347.                     *lsp++ = yystate = yyt->advance+yysvec;
  1348.                     goto contin;
  1349.                     }
  1350.                 yyt = yyr + YYU(yymatch[yych]);
  1351. # ifdef LEXDEBUG
  1352.                 if(debug){
  1353.                     fprintf(yyout,"try fall back character ");
  1354.                     allprint(YYU(yymatch[yych]));
  1355.                     putchar('\n');
  1356.                     }
  1357. # endif
  1358.                 if(yyt <= yytop && yyt->verify+yysvec == yystate){
  1359.                     if(yyt->advance+yysvec == YYLERR)    /* error transition */
  1360.                         {unput(*--yylastch);break;}
  1361.                     *lsp++ = yystate = yyt->advance+yysvec;
  1362.                     goto contin;
  1363.                     }
  1364.                 }
  1365.             if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
  1366. # ifdef LEXDEBUG
  1367.                 if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
  1368. # endif
  1369.                 goto tryagain;
  1370.                 }
  1371. # endif
  1372.             else
  1373.                 {unput(*--yylastch);break;}
  1374.         contin:
  1375. # ifdef LEXDEBUG
  1376.             if(debug){
  1377.                 fprintf(yyout,"state %d char ",yystate-yysvec-1);
  1378.                 allprint(yych);
  1379.                 putchar('\n');
  1380.                 }
  1381. # endif
  1382.             ;
  1383.             }
  1384. # ifdef LEXDEBUG
  1385.         if(debug){
  1386.             fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
  1387.             allprint(yych);
  1388.             putchar('\n');
  1389.             }
  1390. # endif
  1391.         while (lsp-- > yylstate){
  1392.             *yylastch-- = 0;
  1393.             if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
  1394.                 yyolsp = lsp;
  1395.                 if(yyextra[*yyfnd]){        /* must backup */
  1396.                     while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
  1397.                         lsp--;
  1398.                         unput(*yylastch--);
  1399.                         }
  1400.                     }
  1401.                 yyprevious = YYU(*yylastch);
  1402.                 yylsp = lsp;
  1403.                 yyleng = yylastch-yytext+1;
  1404.                 yytext[yyleng] = 0;
  1405. # ifdef LEXDEBUG
  1406.                 if(debug){
  1407.                     fprintf(yyout,"\nmatch ");
  1408.                     sprint(yytext);
  1409.                     fprintf(yyout," action %d\n",*yyfnd);
  1410.                     }
  1411. # endif
  1412.                 return(*yyfnd++);
  1413.                 }
  1414.             unput(*yylastch);
  1415.             }
  1416.         if (yytext[0] == 0  /* && feof(yyin) */)
  1417.             {
  1418.             yysptr=yysbuf;
  1419.             return(0);
  1420.             }
  1421.         yyprevious = yytext[0] = input();
  1422.         if (yyprevious>0)
  1423.             output(yyprevious);
  1424.         yylastch=yytext;
  1425. # ifdef LEXDEBUG
  1426.         if(debug)putchar('\n');
  1427. # endif
  1428.         }
  1429.     }
  1430. yyback(p, m)
  1431.     int *p;
  1432. {
  1433. if (p==0) return(0);
  1434. while (*p)
  1435.     {
  1436.     if (*p++ == m)
  1437.         return(1);
  1438.     }
  1439. return(0);
  1440. }
  1441.     /* the following are only used in the lex library */
  1442. yyinput(){
  1443.     return(input());
  1444.     }
  1445. yyoutput(c)
  1446.   int c; {
  1447.     output(c);
  1448.     }
  1449. yyunput(c)
  1450.    int c; {
  1451.     unput(c);
  1452.     }
  1453.