home *** CD-ROM | disk | FTP | other *** search
/ gdead.berkeley.edu / gdead.berkeley.edu.tar / gdead.berkeley.edu / pub / cad-tools / ciftomann.tar / cmd_dir / scan.c < prev    next >
C/C++ Source or Header  |  1988-01-28  |  20KB  |  987 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 200
  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.     /* the lexical scanner for the command parser */
  29.  
  30. #include "parse.h"
  31. int line_number = 1;
  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 (SCALE);}
  41. break;
  42. case 2:
  43. {return (INVERT);}
  44. break;
  45. case 3:
  46.     {return (GROW);}
  47. break;
  48. case 4:
  49. {return (SHRINK);}
  50. break;
  51. case 5:
  52. {return (APERTURE_MAX);}
  53. break;
  54. case 6:
  55. {return (APERTURE_MIN);}
  56. break;
  57. case 7:
  58.   {return (STAGE_MAX);}
  59. break;
  60. case 8:
  61.   {return (STAGE_MIN);}
  62. break;
  63. case 9:
  64. {return (GRID_SIZE);}
  65. break;
  66. case 10:
  67. {return (CONVERT_FACTOR);}
  68. break;
  69. case 11:
  70.     case 12:
  71.     case 13:
  72. case 14:
  73.     {
  74.                 yylval.strval = yytext;
  75.                 return(LAYER);
  76.             }
  77. break;
  78. case 15:
  79.     { error("bad layer name or keyword");}
  80. break;
  81. case 16:
  82.     { sscanf(yytext,"%d",&yylval.intval);
  83.           return(NUMBER);
  84.         }
  85. break;
  86. case 17:
  87. { sscanf(yytext,"%f",&yylval.floatval);
  88.           return(FLOAT);
  89.         }
  90. break;
  91. case 18:
  92.     { return ( MINUS ); }
  93. break;
  94. case 19:
  95.     { line_number++;
  96.             return (EOL); }
  97. break;
  98. case 20:
  99.     ;
  100. break;
  101. case 21:
  102.     { error("illegal character");}
  103. break;
  104. case -1:
  105. break;
  106. default:
  107. fprintf(yyout,"bad switch yylook %d",nstr);
  108. } return(0); }
  109. /* end of yylex */
  110. int yyvstop[] ={
  111. 0,
  112.  
  113. 21,
  114. 0,
  115.  
  116. 20,
  117. 21,
  118. 0,
  119.  
  120. 19,
  121. 0,
  122.  
  123. 18,
  124. 21,
  125. 0,
  126.  
  127. 16,
  128. 21,
  129. 0,
  130.  
  131. 11,
  132. 15,
  133. 21,
  134. 0,
  135.  
  136. 11,
  137. 15,
  138. 21,
  139. 0,
  140.  
  141. 11,
  142. 15,
  143. 21,
  144. 0,
  145.  
  146. 11,
  147. 15,
  148. 21,
  149. 0,
  150.  
  151. 11,
  152. 15,
  153. 21,
  154. 0,
  155.  
  156. 11,
  157. 15,
  158. 21,
  159. 0,
  160.  
  161. 17,
  162. 0,
  163.  
  164. 16,
  165. 0,
  166.  
  167. 12,
  168. 0,
  169.  
  170. 12,
  171. 15,
  172. 0,
  173.  
  174. 12,
  175. 15,
  176. 0,
  177.  
  178. 12,
  179. 15,
  180. 0,
  181.  
  182. 12,
  183. 15,
  184. 0,
  185.  
  186. 12,
  187. 15,
  188. 0,
  189.  
  190. 12,
  191. 15,
  192. 0,
  193.  
  194. 12,
  195. 15,
  196. 0,
  197.  
  198. 12,
  199. 15,
  200. 0,
  201.  
  202. 13,
  203. 0,
  204.  
  205. 13,
  206. 15,
  207. 0,
  208.  
  209. 13,
  210. 15,
  211. 0,
  212.  
  213. 13,
  214. 15,
  215. 0,
  216.  
  217. 13,
  218. 15,
  219. 0,
  220.  
  221. 13,
  222. 15,
  223. 0,
  224.  
  225. 13,
  226. 15,
  227. 0,
  228.  
  229. 13,
  230. 15,
  231. 0,
  232.  
  233. 13,
  234. 15,
  235. 0,
  236.  
  237. 13,
  238. 15,
  239. 0,
  240.  
  241. 14,
  242. 0,
  243.  
  244. 14,
  245. 15,
  246. 0,
  247.  
  248. 14,
  249. 15,
  250. 0,
  251.  
  252. 14,
  253. 15,
  254. 0,
  255.  
  256. 14,
  257. 15,
  258. 0,
  259.  
  260. 3,
  261. 14,
  262. 15,
  263. 0,
  264.  
  265. 14,
  266. 15,
  267. 0,
  268.  
  269. 14,
  270. 15,
  271. 0,
  272.  
  273. 14,
  274. 15,
  275. 0,
  276.  
  277. 14,
  278. 15,
  279. 0,
  280.  
  281. 15,
  282. 0,
  283.  
  284. 15,
  285. 0,
  286.  
  287. 15,
  288. 0,
  289.  
  290. 15,
  291. 0,
  292.  
  293. 1,
  294. 15,
  295. 0,
  296.  
  297. 15,
  298. 0,
  299.  
  300. 15,
  301. 0,
  302.  
  303. 15,
  304. 0,
  305.  
  306. 15,
  307. 0,
  308.  
  309. 2,
  310. 15,
  311. 0,
  312.  
  313. 4,
  314. 15,
  315. 0,
  316.  
  317. 15,
  318. 0,
  319.  
  320. 15,
  321. 0,
  322.  
  323. 15,
  324. 0,
  325.  
  326. 9,
  327. 0,
  328.  
  329. 7,
  330. 0,
  331.  
  332. 8,
  333. 0,
  334.  
  335. 5,
  336. 0,
  337.  
  338. 6,
  339. 0,
  340.  
  341. 10,
  342. 0,
  343. 0};
  344. # define YYTYPE char
  345. struct yywork { YYTYPE verify, advance; } yycrank[] ={
  346. 0,0,    0,0,    1,3,    0,0,    
  347. 0,0,    0,0,    0,0,    0,0,    
  348. 0,0,    0,0,    1,4,    1,5,    
  349. 0,0,    0,0,    0,0,    0,0,    
  350. 0,0,    0,0,    0,0,    0,0,    
  351. 0,0,    0,0,    0,0,    0,0,    
  352. 0,0,    0,0,    0,0,    0,0,    
  353. 0,0,    0,0,    0,0,    0,0,    
  354. 0,0,    0,0,    0,0,    0,0,    
  355. 0,0,    0,0,    0,0,    0,0,    
  356. 0,0,    0,0,    0,0,    0,0,    
  357. 0,0,    0,0,    1,6,    2,6,    
  358. 7,14,    1,7,    7,15,    7,15,    
  359. 7,15,    7,15,    7,15,    7,15,    
  360. 7,15,    7,15,    7,15,    7,15,    
  361. 0,0,    0,0,    0,0,    0,0,    
  362. 0,0,    0,0,    1,8,    1,9,    
  363. 1,10,    0,0,    0,0,    0,0,    
  364. 1,11,    0,0,    1,12,    0,0,    
  365. 0,0,    0,0,    0,0,    0,0,    
  366. 0,0,    0,0,    0,0,    0,0,    
  367. 1,13,    8,16,    8,16,    8,16,    
  368. 8,16,    8,16,    8,16,    8,16,    
  369. 8,16,    8,16,    8,16,    0,0,    
  370. 0,0,    0,0,    0,0,    0,0,    
  371. 0,0,    0,0,    8,17,    8,17,    
  372. 8,17,    8,17,    8,17,    8,17,    
  373. 8,17,    8,17,    8,17,    8,17,    
  374. 8,17,    8,17,    8,17,    8,17,    
  375. 8,17,    8,17,    8,17,    8,17,    
  376. 8,17,    8,17,    8,17,    8,17,    
  377. 8,17,    8,17,    8,17,    8,17,    
  378. 9,17,    10,19,    10,17,    11,17,    
  379. 37,46,    11,20,    8,17,    8,17,    
  380. 8,17,    8,17,    8,17,    8,17,    
  381. 8,17,    8,17,    8,17,    8,17,    
  382. 8,17,    8,17,    8,17,    8,17,    
  383. 8,17,    8,18,    8,17,    8,17,    
  384. 8,17,    8,17,    8,17,    8,17,    
  385. 8,17,    8,17,    8,17,    8,17,    
  386. 12,21,    13,22,    12,17,    38,47,    
  387. 39,48,    41,49,    13,23,    42,50,    
  388. 43,51,    44,52,    46,53,    47,54,    
  389. 48,55,    49,56,    13,17,    51,57,    
  390. 52,58,    53,59,    13,24,    14,14,    
  391. 14,14,    14,14,    14,14,    14,14,    
  392. 14,14,    14,14,    14,14,    14,14,    
  393. 14,14,    16,25,    16,25,    16,25,    
  394. 16,25,    16,25,    16,25,    16,25,    
  395. 16,25,    16,25,    16,25,    54,60,    
  396. 55,61,    58,62,    59,63,    60,64,    
  397. 61,65,    63,68,    16,25,    16,25,    
  398. 16,25,    16,25,    16,25,    16,25,    
  399. 16,25,    16,25,    16,25,    16,25,    
  400. 16,25,    16,25,    16,25,    16,25,    
  401. 16,25,    16,25,    16,25,    16,25,    
  402. 16,25,    16,25,    16,25,    16,25,    
  403. 16,25,    16,25,    16,25,    16,25,    
  404. 64,69,    65,70,    66,71,    67,72,    
  405. 68,73,    69,74,    16,25,    16,25,    
  406. 16,25,    16,25,    16,25,    16,25,    
  407. 16,25,    16,25,    16,25,    16,25,    
  408. 16,25,    16,25,    16,25,    16,25,    
  409. 16,25,    16,25,    16,25,    16,25,    
  410. 16,25,    16,25,    16,25,    16,25,    
  411. 16,25,    16,25,    16,25,    16,25,    
  412. 17,26,    17,26,    17,26,    17,26,    
  413. 17,26,    17,26,    17,26,    17,26,    
  414. 17,26,    17,26,    17,26,    17,26,    
  415. 17,26,    17,26,    17,26,    17,26,    
  416. 17,26,    17,26,    17,26,    17,26,    
  417. 17,26,    17,26,    17,26,    17,26,    
  418. 17,26,    17,26,    74,77,    75,78,    
  419. 76,79,    77,80,    80,81,    81,82,    
  420. 17,26,    17,26,    17,26,    17,26,    
  421. 17,26,    17,26,    17,26,    17,26,    
  422. 17,26,    17,26,    17,26,    17,26,    
  423. 17,26,    17,26,    17,26,    17,26,    
  424. 17,26,    17,26,    17,26,    17,26,    
  425. 17,26,    17,26,    17,26,    17,26,    
  426. 17,26,    17,26,    18,26,    18,26,    
  427. 18,26,    18,26,    18,26,    18,26,    
  428. 18,26,    18,26,    18,26,    18,26,    
  429. 18,26,    18,26,    18,26,    18,26,    
  430. 18,26,    18,26,    18,26,    18,26,    
  431. 18,26,    18,26,    18,26,    18,26,    
  432. 18,26,    18,26,    18,26,    18,26,    
  433. 0,0,    0,0,    0,0,    0,0,    
  434. 0,0,    0,0,    18,26,    18,26,    
  435. 18,26,    18,26,    18,27,    18,26,    
  436. 18,26,    18,26,    18,26,    18,26,    
  437. 18,26,    18,26,    18,26,    18,26,    
  438. 18,26,    18,26,    18,26,    18,26,    
  439. 18,26,    18,26,    18,26,    18,26,    
  440. 18,26,    18,26,    18,26,    18,26,    
  441. 19,26,    19,26,    19,26,    19,26,    
  442. 19,26,    19,26,    19,26,    19,26,    
  443. 19,26,    19,26,    19,26,    19,26,    
  444. 19,26,    19,26,    19,26,    19,26,    
  445. 19,26,    19,26,    19,26,    19,26,    
  446. 19,26,    19,26,    19,26,    19,26,    
  447. 19,26,    19,26,    0,0,    0,0,    
  448. 0,0,    0,0,    0,0,    0,0,    
  449. 19,26,    19,26,    19,26,    19,26,    
  450. 19,26,    19,26,    19,26,    19,26,    
  451. 19,26,    19,26,    19,26,    19,26,    
  452. 19,26,    19,28,    19,26,    19,26,    
  453. 19,26,    19,26,    19,26,    19,26,    
  454. 19,26,    19,26,    19,26,    19,26,    
  455. 19,26,    19,26,    20,26,    20,26,    
  456. 20,26,    20,26,    20,26,    20,26,    
  457. 20,26,    20,26,    20,26,    20,26,    
  458. 20,26,    20,26,    20,26,    20,26,    
  459. 20,26,    20,26,    20,26,    20,26,    
  460. 20,26,    20,26,    20,26,    20,26,    
  461. 20,26,    20,26,    20,26,    20,26,    
  462. 0,0,    0,0,    0,0,    0,0,    
  463. 0,0,    0,0,    20,26,    20,26,    
  464. 20,26,    20,26,    20,26,    20,26,    
  465. 20,26,    20,26,    20,29,    20,26,    
  466. 20,26,    20,26,    20,26,    20,26,    
  467. 20,30,    20,26,    20,26,    20,26,    
  468. 20,26,    20,26,    20,26,    20,26,    
  469. 20,26,    20,26,    20,26,    20,26,    
  470. 21,26,    21,26,    21,26,    21,26,    
  471. 21,26,    21,26,    21,26,    21,26,    
  472. 21,26,    21,26,    21,26,    21,26,    
  473. 21,26,    21,26,    21,26,    21,26,    
  474. 21,26,    21,26,    21,26,    21,26,    
  475. 21,26,    21,26,    21,26,    21,26,    
  476. 21,26,    21,26,    0,0,    0,0,    
  477. 0,0,    0,0,    0,0,    0,0,    
  478. 21,26,    21,26,    21,26,    21,26,    
  479. 21,26,    21,26,    21,26,    21,26,    
  480. 21,26,    21,26,    21,26,    21,26,    
  481. 21,26,    21,26,    21,26,    21,26,    
  482. 21,26,    21,26,    21,26,    21,26,    
  483. 21,26,    21,31,    21,26,    21,26,    
  484. 21,26,    21,26,    22,26,    22,26,    
  485. 22,26,    22,26,    22,26,    22,26,    
  486. 22,26,    22,26,    22,26,    22,26,    
  487. 22,26,    22,26,    22,26,    22,26,    
  488. 22,26,    22,26,    22,26,    22,26,    
  489. 22,26,    22,26,    22,26,    22,26,    
  490. 22,26,    22,26,    22,26,    22,26,    
  491. 0,0,    0,0,    0,0,    0,0,    
  492. 0,0,    0,0,    22,32,    22,26,    
  493. 22,26,    22,26,    22,26,    22,26,    
  494. 22,26,    22,26,    22,26,    22,26,    
  495. 22,26,    22,26,    22,26,    22,26,    
  496. 22,26,    22,26,    22,26,    22,26,    
  497. 22,26,    22,26,    22,26,    22,26,    
  498. 22,26,    22,26,    22,26,    22,26,    
  499. 23,26,    23,26,    23,26,    23,26,    
  500. 23,26,    23,26,    23,26,    23,26,    
  501. 23,26,    23,26,    23,26,    23,26,    
  502. 23,26,    23,26,    23,26,    23,26,    
  503. 23,26,    23,26,    23,26,    23,26,    
  504. 23,26,    23,26,    23,26,    23,26,    
  505. 23,26,    23,26,    0,0,    0,0,    
  506. 0,0,    0,0,    0,0,    0,0,    
  507. 23,26,    23,26,    23,26,    23,26,    
  508. 23,26,    23,26,    23,26,    23,26,    
  509. 23,26,    23,26,    23,26,    23,26,    
  510. 23,26,    23,26,    23,26,    23,26,    
  511. 23,26,    23,33,    23,26,    23,26,    
  512. 23,26,    23,26,    23,26,    23,26,    
  513. 23,26,    23,26,    24,26,    24,26,    
  514. 24,26,    24,26,    24,26,    24,26,    
  515. 24,26,    24,26,    24,26,    24,26,    
  516. 24,26,    24,26,    24,26,    24,26,    
  517. 24,26,    24,26,    24,26,    24,26,    
  518. 24,26,    24,26,    24,26,    24,26,    
  519. 24,26,    24,26,    24,26,    24,26,    
  520. 0,0,    0,0,    0,0,    0,0,    
  521. 0,0,    0,0,    24,34,    24,26,    
  522. 24,26,    24,26,    24,26,    24,26,    
  523. 24,26,    24,26,    24,26,    24,26,    
  524. 24,26,    24,26,    24,26,    24,26,    
  525. 24,26,    24,26,    24,26,    24,26,    
  526. 24,26,    24,26,    24,26,    24,26,    
  527. 24,26,    24,26,    24,26,    24,26,    
  528. 25,35,    25,35,    25,35,    25,35,    
  529. 25,35,    25,35,    25,35,    25,35,    
  530. 25,35,    25,35,    0,0,    0,0,    
  531. 0,0,    0,0,    0,0,    0,0,    
  532. 0,0,    25,35,    25,35,    25,35,    
  533. 25,35,    25,35,    25,35,    25,35,    
  534. 25,35,    25,35,    25,35,    25,35,    
  535. 25,35,    25,35,    25,35,    25,35,    
  536. 25,35,    25,35,    25,35,    25,35,    
  537. 25,35,    25,35,    25,35,    25,35,    
  538. 25,35,    25,35,    25,35,    0,0,    
  539. 0,0,    0,0,    0,0,    0,0,    
  540. 0,0,    25,35,    25,35,    25,35,    
  541. 25,35,    25,35,    25,35,    25,35,    
  542. 25,35,    25,35,    25,35,    25,35,    
  543. 25,35,    25,35,    25,35,    25,35,    
  544. 25,35,    25,35,    25,35,    25,35,    
  545. 25,35,    25,35,    25,35,    25,35,    
  546. 25,35,    25,35,    25,35,    26,36,    
  547. 26,36,    26,36,    26,36,    26,36,    
  548. 26,36,    26,36,    26,36,    26,36,    
  549. 26,36,    26,36,    26,36,    26,36,    
  550. 26,36,    26,36,    26,36,    26,36,    
  551. 26,36,    26,36,    26,36,    26,36,    
  552. 26,36,    26,36,    26,36,    26,36,    
  553. 26,36,    0,0,    0,0,    0,0,    
  554. 0,0,    0,0,    0,0,    26,36,    
  555. 26,36,    26,36,    26,36,    26,36,    
  556. 26,36,    26,36,    26,36,    26,36,    
  557. 26,36,    26,36,    26,36,    26,36,    
  558. 26,36,    26,36,    26,36,    26,36,    
  559. 26,36,    26,36,    26,36,    26,36,    
  560. 26,36,    26,36,    26,36,    26,36,    
  561. 26,36,    27,36,    27,36,    27,36,    
  562. 27,36,    27,36,    27,36,    27,36,    
  563. 27,36,    27,36,    27,36,    27,36,    
  564. 27,36,    27,36,    27,36,    27,36,    
  565. 27,36,    27,36,    27,36,    27,36,    
  566. 27,36,    27,36,    27,36,    27,36,    
  567. 27,36,    27,36,    27,36,    0,0,    
  568. 0,0,    0,0,    0,0,    0,0,    
  569. 0,0,    27,36,    27,36,    27,36,    
  570. 27,36,    27,36,    27,36,    27,36,    
  571. 27,36,    27,36,    27,36,    27,36,    
  572. 27,36,    27,36,    27,36,    27,36,    
  573. 27,36,    27,36,    27,37,    27,36,    
  574. 27,36,    27,36,    27,36,    27,36,    
  575. 27,36,    27,36,    27,36,    28,36,    
  576. 28,36,    28,36,    28,36,    28,36,    
  577. 28,36,    28,36,    28,36,    28,36,    
  578. 28,36,    28,36,    28,36,    28,36,    
  579. 28,36,    28,36,    28,36,    28,36,    
  580. 28,36,    28,36,    28,36,    28,36,    
  581. 28,36,    28,36,    28,36,    28,36,    
  582. 28,36,    0,0,    0,0,    0,0,    
  583. 0,0,    0,0,    0,0,    28,36,    
  584. 28,36,    28,36,    28,36,    28,36,    
  585. 28,36,    28,36,    28,36,    28,36,    
  586. 28,36,    28,36,    28,36,    28,36,    
  587. 28,36,    28,36,    28,36,    28,36,    
  588. 28,36,    28,36,    28,36,    28,36,    
  589. 28,38,    28,36,    28,36,    28,36,    
  590. 28,36,    29,36,    29,36,    29,36,    
  591. 29,36,    29,36,    29,36,    29,36,    
  592. 29,36,    29,36,    29,36,    29,36,    
  593. 29,36,    29,36,    29,36,    29,36,    
  594. 29,36,    29,36,    29,36,    29,36,    
  595. 29,36,    29,36,    29,36,    29,36,    
  596. 29,36,    29,36,    29,36,    0,0,    
  597. 0,0,    0,0,    0,0,    0,0,    
  598. 0,0,    29,36,    29,36,    29,36,    
  599. 29,39,    29,36,    29,36,    29,36,    
  600. 29,36,    29,36,    29,36,    29,36,    
  601. 29,36,    29,36,    29,36,    29,36,    
  602. 29,36,    29,36,    29,36,    29,36,    
  603. 29,36,    29,36,    29,36,    29,36,    
  604. 29,36,    29,36,    29,36,    30,36,    
  605. 30,36,    30,36,    30,36,    30,36,    
  606. 30,36,    30,36,    30,36,    30,36,    
  607. 30,36,    30,36,    30,36,    30,36,    
  608. 30,36,    30,36,    30,36,    30,36,    
  609. 30,36,    30,36,    30,36,    30,36,    
  610. 30,36,    30,36,    30,36,    30,36,    
  611. 30,36,    0,0,    0,0,    0,0,    
  612. 0,0,    0,0,    0,0,    30,36,    
  613. 30,36,    30,36,    30,36,    30,36,    
  614. 30,36,    30,36,    30,36,    30,36,    
  615. 30,36,    30,36,    30,36,    30,36,    
  616. 30,36,    30,36,    30,36,    30,36,    
  617. 30,36,    30,36,    30,36,    30,36,    
  618. 30,36,    30,40,    30,36,    30,36,    
  619. 30,36,    31,36,    31,36,    31,36,    
  620. 31,36,    31,36,    31,36,    31,36,    
  621. 31,36,    31,36,    31,36,    31,36,    
  622. 31,36,    31,36,    31,36,    31,36,    
  623. 31,36,    31,36,    31,36,    31,36,    
  624. 31,36,    31,36,    31,36,    31,36,    
  625. 31,36,    31,36,    31,36,    0,0,    
  626. 0,0,    0,0,    0,0,    0,0,    
  627. 0,0,    31,36,    31,36,    31,36,    
  628. 31,36,    31,41,    31,36,    31,36,    
  629. 31,36,    31,36,    31,36,    31,36,    
  630. 31,36,    31,36,    31,36,    31,36,    
  631. 31,36,    31,36,    31,36,    31,36,    
  632. 31,36,    31,36,    31,36,    31,36,    
  633. 31,36,    31,36,    31,36,    32,36,    
  634. 32,36,    32,36,    32,36,    32,36,    
  635. 32,36,    32,36,    32,36,    32,36,    
  636. 32,36,    32,36,    32,36,    32,36,    
  637. 32,36,    32,36,    32,36,    32,36,    
  638. 32,36,    32,36,    32,36,    32,36,    
  639. 32,36,    32,36,    32,36,    32,36,    
  640. 32,36,    0,0,    0,0,    0,0,    
  641. 0,0,    0,0,    0,0,    32,36,    
  642. 32,36,    32,36,    32,36,    32,36,    
  643. 32,36,    32,36,    32,36,    32,36,    
  644. 32,36,    32,36,    32,42,    32,36,    
  645. 32,36,    32,36,    32,36,    32,36,    
  646. 32,36,    32,36,    32,36,    32,36,    
  647. 32,36,    32,36,    32,36,    32,36,    
  648. 32,36,    33,36,    33,36,    33,36,    
  649. 33,36,    33,36,    33,36,    33,36,    
  650. 33,36,    33,36,    33,36,    33,36,    
  651. 33,36,    33,36,    33,36,    33,36,    
  652. 33,36,    33,36,    33,36,    33,36,    
  653. 33,36,    33,36,    33,36,    33,36,    
  654. 33,36,    33,36,    33,36,    0,0,    
  655. 0,0,    0,0,    0,0,    0,0,    
  656. 0,0,    33,36,    33,36,    33,36,    
  657. 33,36,    33,36,    33,36,    33,36,    
  658. 33,36,    33,43,    33,36,    33,36,    
  659. 33,36,    33,36,    33,36,    33,36,    
  660. 33,36,    33,36,    33,36,    33,36,    
  661. 33,36,    33,36,    33,36,    33,36,    
  662. 33,36,    33,36,    33,36,    34,36,    
  663. 34,36,    34,36,    34,36,    34,36,    
  664. 34,36,    34,36,    34,36,    34,36,    
  665. 34,36,    34,36,    34,36,    34,36,    
  666. 34,36,    34,36,    34,36,    34,36,    
  667. 34,36,    34,36,    34,36,    34,36,    
  668. 34,36,    34,36,    34,36,    34,36,    
  669. 34,36,    0,0,    0,0,    0,0,    
  670. 0,0,    0,0,    0,0,    34,36,    
  671. 34,36,    34,36,    34,36,    34,36,    
  672. 34,36,    34,44,    34,36,    34,36,    
  673. 34,36,    34,36,    34,36,    34,36,    
  674. 34,36,    34,36,    34,36,    34,36,    
  675. 34,36,    34,36,    34,36,    34,36,    
  676. 34,36,    34,36,    34,36,    34,36,    
  677. 34,36,    36,45,    36,45,    36,45,    
  678. 36,45,    36,45,    36,45,    36,45,    
  679. 36,45,    36,45,    36,45,    36,45,    
  680. 36,45,    36,45,    36,45,    36,45,    
  681. 36,45,    36,45,    36,45,    36,45,    
  682. 36,45,    36,45,    36,45,    36,45,    
  683. 36,45,    36,45,    36,45,    0,0,    
  684. 0,0,    0,0,    0,0,    0,0,    
  685. 0,0,    36,45,    36,45,    36,45,    
  686. 36,45,    36,45,    36,45,    36,45,    
  687. 36,45,    36,45,    36,45,    36,45,    
  688. 36,45,    36,45,    36,45,    36,45,    
  689. 36,45,    36,45,    36,45,    36,45,    
  690. 36,45,    36,45,    36,45,    36,45,    
  691. 36,45,    36,45,    36,45,    62,66,    
  692. 73,75,    0,0,    0,0,    0,0,    
  693. 0,0,    0,0,    0,0,    62,67,    
  694. 73,76,    0,0,    0,0,    0,0,    
  695. 0,0};
  696. struct yysvf yysvec[] ={
  697. 0,    0,    0,
  698. yycrank+-1,    0,        0,    
  699. yycrank+-2,    yysvec+1,    0,    
  700. yycrank+0,    0,        yyvstop+1,
  701. yycrank+0,    0,        yyvstop+3,
  702. yycrank+0,    0,        yyvstop+6,
  703. yycrank+0,    0,        yyvstop+8,
  704. yycrank+2,    0,        yyvstop+11,
  705. yycrank+37,    0,        yyvstop+14,
  706. yycrank+16,    yysvec+8,    yyvstop+18,
  707. yycrank+18,    yysvec+8,    yyvstop+22,
  708. yycrank+19,    yysvec+8,    yyvstop+26,
  709. yycrank+50,    yysvec+8,    yyvstop+30,
  710. yycrank+62,    yysvec+8,    yyvstop+34,
  711. yycrank+131,    0,        yyvstop+38,
  712. yycrank+0,    yysvec+7,    yyvstop+40,
  713. yycrank+141,    0,        yyvstop+42,
  714. yycrank+199,    yysvec+16,    yyvstop+44,
  715. yycrank+257,    yysvec+16,    yyvstop+47,
  716. yycrank+315,    yysvec+16,    yyvstop+50,
  717. yycrank+373,    yysvec+16,    yyvstop+53,
  718. yycrank+431,    yysvec+16,    yyvstop+56,
  719. yycrank+489,    yysvec+16,    yyvstop+59,
  720. yycrank+547,    yysvec+16,    yyvstop+62,
  721. yycrank+605,    yysvec+16,    yyvstop+65,
  722. yycrank+680,    0,        yyvstop+68,
  723. yycrank+738,    yysvec+25,    yyvstop+70,
  724. yycrank+796,    yysvec+25,    yyvstop+73,
  725. yycrank+854,    yysvec+25,    yyvstop+76,
  726. yycrank+912,    yysvec+25,    yyvstop+79,
  727. yycrank+970,    yysvec+25,    yyvstop+82,
  728. yycrank+1028,    yysvec+25,    yyvstop+85,
  729. yycrank+1086,    yysvec+25,    yyvstop+88,
  730. yycrank+1144,    yysvec+25,    yyvstop+91,
  731. yycrank+1202,    yysvec+25,    yyvstop+94,
  732. yycrank+0,    0,        yyvstop+97,
  733. yycrank+1260,    0,        yyvstop+99,
  734. yycrank+16,    yysvec+36,    yyvstop+102,
  735. yycrank+62,    yysvec+36,    yyvstop+105,
  736. yycrank+69,    yysvec+36,    yyvstop+108,
  737. yycrank+0,    yysvec+36,    yyvstop+111,
  738. yycrank+51,    yysvec+36,    yyvstop+115,
  739. yycrank+66,    yysvec+36,    yyvstop+118,
  740. yycrank+58,    yysvec+36,    yyvstop+121,
  741. yycrank+68,    yysvec+36,    yyvstop+124,
  742. yycrank+0,    yysvec+36,    yyvstop+127,
  743. yycrank+53,    yysvec+36,    yyvstop+129,
  744. yycrank+57,    yysvec+36,    yyvstop+131,
  745. yycrank+57,    0,        0,    
  746. yycrank+57,    yysvec+36,    yyvstop+133,
  747. yycrank+0,    yysvec+36,    yyvstop+135,
  748. yycrank+68,    yysvec+36,    yyvstop+138,
  749. yycrank+81,    yysvec+36,    yyvstop+140,
  750. yycrank+63,    yysvec+36,    yyvstop+142,
  751. yycrank+83,    yysvec+36,    yyvstop+144,
  752. yycrank+95,    0,        0,    
  753. yycrank+0,    yysvec+36,    yyvstop+146,
  754. yycrank+0,    yysvec+36,    yyvstop+149,
  755. yycrank+92,    0,        0,    
  756. yycrank+101,    yysvec+36,    yyvstop+152,
  757. yycrank+108,    yysvec+36,    yyvstop+154,
  758. yycrank+82,    0,        0,    
  759. yycrank+1286,    0,        0,    
  760. yycrank+110,    yysvec+36,    yyvstop+156,
  761. yycrank+130,    0,        0,    
  762. yycrank+132,    0,        0,    
  763. yycrank+114,    0,        0,    
  764. yycrank+125,    0,        0,    
  765. yycrank+127,    0,        0,    
  766. yycrank+140,    0,        0,    
  767. yycrank+0,    0,        yyvstop+158,
  768. yycrank+0,    0,        yyvstop+160,
  769. yycrank+0,    0,        yyvstop+162,
  770. yycrank+1287,    0,        0,    
  771. yycrank+191,    0,        0,    
  772. yycrank+171,    0,        0,    
  773. yycrank+182,    0,        0,    
  774. yycrank+177,    0,        0,    
  775. yycrank+0,    0,        yyvstop+164,
  776. yycrank+0,    0,        yyvstop+166,
  777. yycrank+183,    0,        0,    
  778. yycrank+181,    0,        0,    
  779. yycrank+0,    0,        yyvstop+168,
  780. 0,    0,    0};
  781. struct yywork *yytop = yycrank+1392;
  782. struct yysvf *yybgin = yysvec+1;
  783. char yymatch[] ={
  784. 00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  785. 01  ,011 ,012 ,01  ,01  ,01  ,01  ,01  ,
  786. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  787. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  788. 011 ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  789. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  790. '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
  791. '0' ,'0' ,01  ,01  ,01  ,01  ,01  ,01  ,
  792. 01  ,'A' ,'B' ,'C' ,'B' ,'B' ,'B' ,'G' ,
  793. 'B' ,'I' ,'B' ,'B' ,'B' ,'B' ,'B' ,'B' ,
  794. 'B' ,'B' ,'B' ,'S' ,'B' ,'B' ,'B' ,'B' ,
  795. 'B' ,'B' ,'B' ,01  ,01  ,01  ,01  ,01  ,
  796. 01  ,'A' ,'B' ,'C' ,'B' ,'B' ,'B' ,'G' ,
  797. 'B' ,'I' ,'B' ,'B' ,'B' ,'B' ,'B' ,'B' ,
  798. 'B' ,'B' ,'B' ,'S' ,'B' ,'B' ,'B' ,'B' ,
  799. 'B' ,'B' ,'B' ,01  ,01  ,01  ,01  ,01  ,
  800. 0};
  801. char yyextra[] ={
  802. 0,0,0,0,0,0,0,0,
  803. 0,0,0,0,0,0,0,0,
  804. 0,0,0,0,0,0,0,0,
  805. 0};
  806. /*    ncform    4.1    83/08/11    */
  807.  
  808. int yylineno =1;
  809. # define YYU(x) x
  810. # define NLSTATE yyprevious=YYNEWLINE
  811. char yytext[YYLMAX];
  812. struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
  813. char yysbuf[YYLMAX];
  814. char *yysptr = yysbuf;
  815. int *yyfnd;
  816. extern struct yysvf *yyestate;
  817. int yyprevious = YYNEWLINE;
  818. yylook(){
  819.     register struct yysvf *yystate, **lsp;
  820.     register struct yywork *yyt;
  821.     struct yysvf *yyz;
  822.     int yych;
  823.     struct yywork *yyr;
  824. # ifdef LEXDEBUG
  825.     int debug;
  826. # endif
  827.     char *yylastch;
  828.     /* start off machines */
  829. # ifdef LEXDEBUG
  830.     debug = 0;
  831. # endif
  832.     if (!yymorfg)
  833.         yylastch = yytext;
  834.     else {
  835.         yymorfg=0;
  836.         yylastch = yytext+yyleng;
  837.         }
  838.     for(;;){
  839.         lsp = yylstate;
  840.         yyestate = yystate = yybgin;
  841.         if (yyprevious==YYNEWLINE) yystate++;
  842.         for (;;){
  843. # ifdef LEXDEBUG
  844.             if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
  845. # endif
  846.             yyt = yystate->yystoff;
  847.             if(yyt == yycrank){        /* may not be any transitions */
  848.                 yyz = yystate->yyother;
  849.                 if(yyz == 0)break;
  850.                 if(yyz->yystoff == yycrank)break;
  851.                 }
  852.             *yylastch++ = yych = input();
  853.         tryagain:
  854. # ifdef LEXDEBUG
  855.             if(debug){
  856.                 fprintf(yyout,"char ");
  857.                 allprint(yych);
  858.                 putchar('\n');
  859.                 }
  860. # endif
  861.             yyr = yyt;
  862.             if ( (int)yyt > (int)yycrank){
  863.                 yyt = yyr + yych;
  864.                 if (yyt <= yytop && yyt->verify+yysvec == yystate){
  865.                     if(yyt->advance+yysvec == YYLERR)    /* error transitions */
  866.                         {unput(*--yylastch);break;}
  867.                     *lsp++ = yystate = yyt->advance+yysvec;
  868.                     goto contin;
  869.                     }
  870.                 }
  871. # ifdef YYOPTIM
  872.             else if((int)yyt < (int)yycrank) {        /* r < yycrank */
  873.                 yyt = yyr = yycrank+(yycrank-yyt);
  874. # ifdef LEXDEBUG
  875.                 if(debug)fprintf(yyout,"compressed state\n");
  876. # endif
  877.                 yyt = yyt + yych;
  878.                 if(yyt <= yytop && yyt->verify+yysvec == yystate){
  879.                     if(yyt->advance+yysvec == YYLERR)    /* error transitions */
  880.                         {unput(*--yylastch);break;}
  881.                     *lsp++ = yystate = yyt->advance+yysvec;
  882.                     goto contin;
  883.                     }
  884.                 yyt = yyr + YYU(yymatch[yych]);
  885. # ifdef LEXDEBUG
  886.                 if(debug){
  887.                     fprintf(yyout,"try fall back character ");
  888.                     allprint(YYU(yymatch[yych]));
  889.                     putchar('\n');
  890.                     }
  891. # endif
  892.                 if(yyt <= yytop && yyt->verify+yysvec == yystate){
  893.                     if(yyt->advance+yysvec == YYLERR)    /* error transition */
  894.                         {unput(*--yylastch);break;}
  895.                     *lsp++ = yystate = yyt->advance+yysvec;
  896.                     goto contin;
  897.                     }
  898.                 }
  899.             if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
  900. # ifdef LEXDEBUG
  901.                 if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
  902. # endif
  903.                 goto tryagain;
  904.                 }
  905. # endif
  906.             else
  907.                 {unput(*--yylastch);break;}
  908.         contin:
  909. # ifdef LEXDEBUG
  910.             if(debug){
  911.                 fprintf(yyout,"state %d char ",yystate-yysvec-1);
  912.                 allprint(yych);
  913.                 putchar('\n');
  914.                 }
  915. # endif
  916.             ;
  917.             }
  918. # ifdef LEXDEBUG
  919.         if(debug){
  920.             fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
  921.             allprint(yych);
  922.             putchar('\n');
  923.             }
  924. # endif
  925.         while (lsp-- > yylstate){
  926.             *yylastch-- = 0;
  927.             if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
  928.                 yyolsp = lsp;
  929.                 if(yyextra[*yyfnd]){        /* must backup */
  930.                     while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
  931.                         lsp--;
  932.                         unput(*yylastch--);
  933.                         }
  934.                     }
  935.                 yyprevious = YYU(*yylastch);
  936.                 yylsp = lsp;
  937.                 yyleng = yylastch-yytext+1;
  938.                 yytext[yyleng] = 0;
  939. # ifdef LEXDEBUG
  940.                 if(debug){
  941.                     fprintf(yyout,"\nmatch ");
  942.                     sprint(yytext);
  943.                     fprintf(yyout," action %d\n",*yyfnd);
  944.                     }
  945. # endif
  946.                 return(*yyfnd++);
  947.                 }
  948.             unput(*yylastch);
  949.             }
  950.         if (yytext[0] == 0  /* && feof(yyin) */)
  951.             {
  952.             yysptr=yysbuf;
  953.             return(0);
  954.             }
  955.         yyprevious = yytext[0] = input();
  956.         if (yyprevious>0)
  957.             output(yyprevious);
  958.         yylastch=yytext;
  959. # ifdef LEXDEBUG
  960.         if(debug)putchar('\n');
  961. # endif
  962.         }
  963.     }
  964. yyback(p, m)
  965.     int *p;
  966. {
  967. if (p==0) return(0);
  968. while (*p)
  969.     {
  970.     if (*p++ == m)
  971.         return(1);
  972.     }
  973. return(0);
  974. }
  975.     /* the following are only used in the lex library */
  976. yyinput(){
  977.     return(input());
  978.     }
  979. yyoutput(c)
  980.   int c; {
  981.     output(c);
  982.     }
  983. yyunput(c)
  984.    int c; {
  985.     unput(c);
  986.     }
  987.