lex_yy.c 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923
  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 = {NULL}, *yyout = {NULL};
  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. #include <stdlib.h>
  29. #include <string.h>
  30. #include "opcode.h"
  31. #include "hash.h"
  32. #include "inout.h"
  33. #include "table.h"
  34. #include "y_tab.h"
  35. #undef input
  36. #undef unput
  37. static Input input;
  38. static Unput unput;
  39. void lua_setinput (Input fn)
  40. {
  41. input = fn;
  42. }
  43. void lua_setunput (Unput fn)
  44. {
  45. unput = fn;
  46. }
  47. char *lua_lasttext (void)
  48. {
  49. return yytext;
  50. }
  51. # define YYNEWLINE 10
  52. yylex(){
  53. int nstr; extern int yyprevious;
  54. while((nstr = yylook()) >= 0)
  55. yyfussy: switch(nstr){
  56. case 0:
  57. if(yywrap()) return(0); break;
  58. case 1:
  59. ;
  60. break;
  61. case 2:
  62. {yylval.vInt = 1; return DEBUG;}
  63. break;
  64. case 3:
  65. {yylval.vInt = 0; return DEBUG;}
  66. break;
  67. case 4:
  68. lua_linenumber++;
  69. break;
  70. case 5:
  71. ;
  72. break;
  73. case 6:
  74. return LOCAL;
  75. break;
  76. case 7:
  77. return IF;
  78. break;
  79. case 8:
  80. return THEN;
  81. break;
  82. case 9:
  83. return ELSE;
  84. break;
  85. case 10:
  86. return ELSEIF;
  87. break;
  88. case 11:
  89. return WHILE;
  90. break;
  91. case 12:
  92. return DO;
  93. break;
  94. case 13:
  95. return REPEAT;
  96. break;
  97. case 14:
  98. return UNTIL;
  99. break;
  100. case 15:
  101. {
  102. yylval.vWord = lua_nfile-1;
  103. return FUNCTION;
  104. }
  105. break;
  106. case 16:
  107. return END;
  108. break;
  109. case 17:
  110. return RETURN;
  111. break;
  112. case 18:
  113. return LOCAL;
  114. break;
  115. case 19:
  116. return NIL;
  117. break;
  118. case 20:
  119. return AND;
  120. break;
  121. case 21:
  122. return OR;
  123. break;
  124. case 22:
  125. return NOT;
  126. break;
  127. case 23:
  128. return NE;
  129. break;
  130. case 24:
  131. return LE;
  132. break;
  133. case 25:
  134. return GE;
  135. break;
  136. case 26:
  137. return CONC;
  138. break;
  139. case 27:
  140. case 28:
  141. {
  142. yylval.vWord = lua_findenclosedconstant (yytext);
  143. return STRING;
  144. }
  145. break;
  146. case 29:
  147. case 30:
  148. case 31:
  149. case 32:
  150. {
  151. yylval.vFloat = atof(yytext);
  152. return NUMBER;
  153. }
  154. break;
  155. case 33:
  156. {
  157. yylval.vWord = lua_findsymbol (yytext);
  158. return NAME;
  159. }
  160. break;
  161. case 34:
  162. return *yytext;
  163. break;
  164. case -1:
  165. break;
  166. default:
  167. fprintf(yyout,"bad switch yylook %d",nstr);
  168. } return(0); }
  169. /* end of yylex */
  170. int yyvstop[] = {
  171. 0,
  172. 1,
  173. 0,
  174. 1,
  175. 0,
  176. 34,
  177. 0,
  178. 1,
  179. 34,
  180. 0,
  181. 4,
  182. 0,
  183. 34,
  184. 0,
  185. 34,
  186. 0,
  187. 34,
  188. 0,
  189. 34,
  190. 0,
  191. 29,
  192. 34,
  193. 0,
  194. 34,
  195. 0,
  196. 34,
  197. 0,
  198. 33,
  199. 34,
  200. 0,
  201. 33,
  202. 34,
  203. 0,
  204. 33,
  205. 34,
  206. 0,
  207. 33,
  208. 34,
  209. 0,
  210. 33,
  211. 34,
  212. 0,
  213. 33,
  214. 34,
  215. 0,
  216. 33,
  217. 34,
  218. 0,
  219. 33,
  220. 34,
  221. 0,
  222. 33,
  223. 34,
  224. 0,
  225. 33,
  226. 34,
  227. 0,
  228. 33,
  229. 34,
  230. 0,
  231. 33,
  232. 34,
  233. 0,
  234. 33,
  235. 34,
  236. 0,
  237. 34,
  238. 0,
  239. 34,
  240. 0,
  241. 1,
  242. 0,
  243. 27,
  244. 0,
  245. 28,
  246. 0,
  247. 5,
  248. 0,
  249. 26,
  250. 0,
  251. 30,
  252. 0,
  253. 29,
  254. 0,
  255. 29,
  256. 0,
  257. 24,
  258. 0,
  259. 25,
  260. 0,
  261. 33,
  262. 0,
  263. 33,
  264. 0,
  265. 12,
  266. 33,
  267. 0,
  268. 33,
  269. 0,
  270. 33,
  271. 0,
  272. 33,
  273. 0,
  274. 7,
  275. 33,
  276. 0,
  277. 33,
  278. 0,
  279. 33,
  280. 0,
  281. 33,
  282. 0,
  283. 21,
  284. 33,
  285. 0,
  286. 33,
  287. 0,
  288. 33,
  289. 0,
  290. 33,
  291. 0,
  292. 33,
  293. 0,
  294. 23,
  295. 0,
  296. 29,
  297. 30,
  298. 0,
  299. 31,
  300. 0,
  301. 20,
  302. 33,
  303. 0,
  304. 33,
  305. 0,
  306. 16,
  307. 33,
  308. 0,
  309. 33,
  310. 0,
  311. 33,
  312. 0,
  313. 19,
  314. 33,
  315. 0,
  316. 22,
  317. 33,
  318. 0,
  319. 33,
  320. 0,
  321. 33,
  322. 0,
  323. 33,
  324. 0,
  325. 33,
  326. 0,
  327. 33,
  328. 0,
  329. 32,
  330. 0,
  331. 9,
  332. 33,
  333. 0,
  334. 33,
  335. 0,
  336. 33,
  337. 0,
  338. 33,
  339. 0,
  340. 33,
  341. 0,
  342. 8,
  343. 33,
  344. 0,
  345. 33,
  346. 0,
  347. 33,
  348. 0,
  349. 31,
  350. 32,
  351. 0,
  352. 33,
  353. 0,
  354. 33,
  355. 0,
  356. 6,
  357. 18,
  358. 33,
  359. 0,
  360. 33,
  361. 0,
  362. 33,
  363. 0,
  364. 14,
  365. 33,
  366. 0,
  367. 11,
  368. 33,
  369. 0,
  370. 10,
  371. 33,
  372. 0,
  373. 33,
  374. 0,
  375. 13,
  376. 33,
  377. 0,
  378. 17,
  379. 33,
  380. 0,
  381. 2,
  382. 0,
  383. 33,
  384. 0,
  385. 15,
  386. 33,
  387. 0,
  388. 3,
  389. 0,
  390. 0};
  391. # define YYTYPE char
  392. struct yywork { YYTYPE verify, advance; } yycrank[] = {
  393. 0,0, 0,0, 1,3, 0,0,
  394. 0,0, 0,0, 0,0, 0,0,
  395. 0,0, 0,0, 1,4, 1,5,
  396. 6,29, 4,28, 0,0, 0,0,
  397. 0,0, 0,0, 7,31, 0,0,
  398. 6,29, 6,29, 0,0, 0,0,
  399. 0,0, 0,0, 7,31, 7,31,
  400. 0,0, 0,0, 0,0, 0,0,
  401. 0,0, 0,0, 0,0, 1,6,
  402. 4,28, 0,0, 0,0, 0,0,
  403. 1,7, 0,0, 0,0, 0,0,
  404. 1,3, 6,30, 1,8, 1,9,
  405. 0,0, 1,10, 6,29, 7,31,
  406. 8,33, 0,0, 6,29, 0,0,
  407. 7,32, 0,0, 0,0, 6,29,
  408. 7,31, 1,11, 0,0, 1,12,
  409. 2,27, 7,31, 1,13, 11,39,
  410. 12,40, 1,13, 26,56, 0,0,
  411. 0,0, 2,8, 2,9, 0,0,
  412. 6,29, 0,0, 0,0, 6,29,
  413. 0,0, 0,0, 7,31, 0,0,
  414. 0,0, 7,31, 0,0, 0,0,
  415. 2,11, 0,0, 2,12, 0,0,
  416. 0,0, 0,0, 0,0, 0,0,
  417. 0,0, 0,0, 1,14, 0,0,
  418. 0,0, 1,15, 1,16, 1,17,
  419. 0,0, 22,52, 1,18, 18,47,
  420. 23,53, 1,19, 42,63, 1,20,
  421. 1,21, 25,55, 14,42, 1,22,
  422. 15,43, 1,23, 1,24, 16,44,
  423. 1,25, 16,45, 17,46, 19,48,
  424. 21,51, 2,14, 20,49, 1,26,
  425. 2,15, 2,16, 2,17, 24,54,
  426. 20,50, 2,18, 44,64, 45,65,
  427. 2,19, 46,66, 2,20, 2,21,
  428. 27,57, 48,67, 2,22, 49,68,
  429. 2,23, 2,24, 50,69, 2,25,
  430. 52,70, 53,72, 27,58, 54,73,
  431. 52,71, 9,34, 2,26, 9,35,
  432. 9,35, 9,35, 9,35, 9,35,
  433. 9,35, 9,35, 9,35, 9,35,
  434. 9,35, 10,36, 55,74, 10,37,
  435. 10,37, 10,37, 10,37, 10,37,
  436. 10,37, 10,37, 10,37, 10,37,
  437. 10,37, 57,75, 58,76, 64,80,
  438. 66,81, 67,82, 70,83, 71,84,
  439. 72,85, 73,86, 74,87, 10,38,
  440. 10,38, 38,61, 10,38, 38,61,
  441. 75,88, 76,89, 38,62, 38,62,
  442. 38,62, 38,62, 38,62, 38,62,
  443. 38,62, 38,62, 38,62, 38,62,
  444. 80,92, 81,93, 13,41, 13,41,
  445. 13,41, 13,41, 13,41, 13,41,
  446. 13,41, 13,41, 13,41, 13,41,
  447. 82,94, 83,95, 84,96, 10,38,
  448. 10,38, 86,97, 10,38, 13,41,
  449. 13,41, 13,41, 13,41, 13,41,
  450. 13,41, 13,41, 13,41, 13,41,
  451. 13,41, 13,41, 13,41, 13,41,
  452. 13,41, 13,41, 13,41, 13,41,
  453. 13,41, 13,41, 13,41, 13,41,
  454. 13,41, 13,41, 13,41, 13,41,
  455. 13,41, 87,98, 88,99, 60,79,
  456. 60,79, 13,41, 60,79, 13,41,
  457. 13,41, 13,41, 13,41, 13,41,
  458. 13,41, 13,41, 13,41, 13,41,
  459. 13,41, 13,41, 13,41, 13,41,
  460. 13,41, 13,41, 13,41, 13,41,
  461. 13,41, 13,41, 13,41, 13,41,
  462. 13,41, 13,41, 13,41, 13,41,
  463. 13,41, 33,33, 89,100, 60,79,
  464. 60,79, 92,101, 60,79, 93,102,
  465. 95,103, 33,33, 33,0, 96,104,
  466. 99,105, 100,106, 102,107, 106,108,
  467. 107,109, 35,35, 35,35, 35,35,
  468. 35,35, 35,35, 35,35, 35,35,
  469. 35,35, 35,35, 35,35, 108,110,
  470. 0,0, 0,0, 0,0, 0,0,
  471. 0,0, 0,0, 33,33, 0,0,
  472. 0,0, 35,59, 35,59, 33,33,
  473. 35,59, 0,0, 0,0, 33,33,
  474. 0,0, 0,0, 0,0, 0,0,
  475. 33,33, 0,0, 0,0, 0,0,
  476. 0,0, 36,60, 36,60, 36,60,
  477. 36,60, 36,60, 36,60, 36,60,
  478. 36,60, 36,60, 36,60, 0,0,
  479. 0,0, 33,33, 0,0, 0,0,
  480. 33,33, 35,59, 35,59, 0,0,
  481. 35,59, 36,38, 36,38, 59,77,
  482. 36,38, 59,77, 0,0, 0,0,
  483. 59,78, 59,78, 59,78, 59,78,
  484. 59,78, 59,78, 59,78, 59,78,
  485. 59,78, 59,78, 61,62, 61,62,
  486. 61,62, 61,62, 61,62, 61,62,
  487. 61,62, 61,62, 61,62, 61,62,
  488. 0,0, 0,0, 0,0, 0,0,
  489. 0,0, 36,38, 36,38, 0,0,
  490. 36,38, 77,78, 77,78, 77,78,
  491. 77,78, 77,78, 77,78, 77,78,
  492. 77,78, 77,78, 77,78, 79,90,
  493. 0,0, 79,90, 0,0, 0,0,
  494. 79,91, 79,91, 79,91, 79,91,
  495. 79,91, 79,91, 79,91, 79,91,
  496. 79,91, 79,91, 90,91, 90,91,
  497. 90,91, 90,91, 90,91, 90,91,
  498. 90,91, 90,91, 90,91, 90,91,
  499. 0,0};
  500. struct yysvf yysvec[] = {
  501. 0, 0, 0,
  502. yycrank+-1, 0, yyvstop+1,
  503. yycrank+-28, yysvec+1, yyvstop+3,
  504. yycrank+0, 0, yyvstop+5,
  505. yycrank+4, 0, yyvstop+7,
  506. yycrank+0, 0, yyvstop+10,
  507. yycrank+-11, 0, yyvstop+12,
  508. yycrank+-17, 0, yyvstop+14,
  509. yycrank+7, 0, yyvstop+16,
  510. yycrank+107, 0, yyvstop+18,
  511. yycrank+119, 0, yyvstop+20,
  512. yycrank+6, 0, yyvstop+23,
  513. yycrank+7, 0, yyvstop+25,
  514. yycrank+158, 0, yyvstop+27,
  515. yycrank+4, yysvec+13, yyvstop+30,
  516. yycrank+5, yysvec+13, yyvstop+33,
  517. yycrank+11, yysvec+13, yyvstop+36,
  518. yycrank+5, yysvec+13, yyvstop+39,
  519. yycrank+5, yysvec+13, yyvstop+42,
  520. yycrank+12, yysvec+13, yyvstop+45,
  521. yycrank+21, yysvec+13, yyvstop+48,
  522. yycrank+10, yysvec+13, yyvstop+51,
  523. yycrank+4, yysvec+13, yyvstop+54,
  524. yycrank+4, yysvec+13, yyvstop+57,
  525. yycrank+21, yysvec+13, yyvstop+60,
  526. yycrank+9, yysvec+13, yyvstop+63,
  527. yycrank+9, 0, yyvstop+66,
  528. yycrank+40, 0, yyvstop+68,
  529. yycrank+0, yysvec+4, yyvstop+70,
  530. yycrank+0, yysvec+6, 0,
  531. yycrank+0, 0, yyvstop+72,
  532. yycrank+0, yysvec+7, 0,
  533. yycrank+0, 0, yyvstop+74,
  534. yycrank+-280, 0, yyvstop+76,
  535. yycrank+0, 0, yyvstop+78,
  536. yycrank+249, 0, yyvstop+80,
  537. yycrank+285, 0, yyvstop+82,
  538. yycrank+0, yysvec+10, yyvstop+84,
  539. yycrank+146, 0, 0,
  540. yycrank+0, 0, yyvstop+86,
  541. yycrank+0, 0, yyvstop+88,
  542. yycrank+0, yysvec+13, yyvstop+90,
  543. yycrank+10, yysvec+13, yyvstop+92,
  544. yycrank+0, yysvec+13, yyvstop+94,
  545. yycrank+19, yysvec+13, yyvstop+97,
  546. yycrank+35, yysvec+13, yyvstop+99,
  547. yycrank+27, yysvec+13, yyvstop+101,
  548. yycrank+0, yysvec+13, yyvstop+103,
  549. yycrank+42, yysvec+13, yyvstop+106,
  550. yycrank+35, yysvec+13, yyvstop+108,
  551. yycrank+30, yysvec+13, yyvstop+110,
  552. yycrank+0, yysvec+13, yyvstop+112,
  553. yycrank+36, yysvec+13, yyvstop+115,
  554. yycrank+48, yysvec+13, yyvstop+117,
  555. yycrank+35, yysvec+13, yyvstop+119,
  556. yycrank+61, yysvec+13, yyvstop+121,
  557. yycrank+0, 0, yyvstop+123,
  558. yycrank+76, 0, 0,
  559. yycrank+67, 0, 0,
  560. yycrank+312, 0, 0,
  561. yycrank+183, yysvec+36, yyvstop+125,
  562. yycrank+322, 0, 0,
  563. yycrank+0, yysvec+61, yyvstop+128,
  564. yycrank+0, yysvec+13, yyvstop+130,
  565. yycrank+78, yysvec+13, yyvstop+133,
  566. yycrank+0, yysvec+13, yyvstop+135,
  567. yycrank+81, yysvec+13, yyvstop+138,
  568. yycrank+84, yysvec+13, yyvstop+140,
  569. yycrank+0, yysvec+13, yyvstop+142,
  570. yycrank+0, yysvec+13, yyvstop+145,
  571. yycrank+81, yysvec+13, yyvstop+148,
  572. yycrank+66, yysvec+13, yyvstop+150,
  573. yycrank+74, yysvec+13, yyvstop+152,
  574. yycrank+80, yysvec+13, yyvstop+154,
  575. yycrank+78, yysvec+13, yyvstop+156,
  576. yycrank+94, 0, 0,
  577. yycrank+93, 0, 0,
  578. yycrank+341, 0, 0,
  579. yycrank+0, yysvec+77, yyvstop+158,
  580. yycrank+356, 0, 0,
  581. yycrank+99, yysvec+13, yyvstop+160,
  582. yycrank+89, yysvec+13, yyvstop+163,
  583. yycrank+108, yysvec+13, yyvstop+165,
  584. yycrank+120, yysvec+13, yyvstop+167,
  585. yycrank+104, yysvec+13, yyvstop+169,
  586. yycrank+0, yysvec+13, yyvstop+171,
  587. yycrank+113, yysvec+13, yyvstop+174,
  588. yycrank+148, yysvec+13, yyvstop+176,
  589. yycrank+133, 0, 0,
  590. yycrank+181, 0, 0,
  591. yycrank+366, 0, 0,
  592. yycrank+0, yysvec+90, yyvstop+178,
  593. yycrank+183, yysvec+13, yyvstop+181,
  594. yycrank+182, yysvec+13, yyvstop+183,
  595. yycrank+0, yysvec+13, yyvstop+185,
  596. yycrank+172, yysvec+13, yyvstop+189,
  597. yycrank+181, yysvec+13, yyvstop+191,
  598. yycrank+0, yysvec+13, yyvstop+193,
  599. yycrank+0, yysvec+13, yyvstop+196,
  600. yycrank+189, 0, 0,
  601. yycrank+195, 0, 0,
  602. yycrank+0, yysvec+13, yyvstop+199,
  603. yycrank+183, yysvec+13, yyvstop+202,
  604. yycrank+0, yysvec+13, yyvstop+204,
  605. yycrank+0, yysvec+13, yyvstop+207,
  606. yycrank+0, 0, yyvstop+210,
  607. yycrank+178, 0, 0,
  608. yycrank+186, yysvec+13, yyvstop+212,
  609. yycrank+204, 0, 0,
  610. yycrank+0, yysvec+13, yyvstop+214,
  611. yycrank+0, 0, yyvstop+217,
  612. 0, 0, 0};
  613. struct yywork *yytop = yycrank+423;
  614. struct yysvf *yybgin = yysvec+1;
  615. char yymatch[] = {
  616. 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
  617. 01 ,011 ,012 ,01 ,01 ,01 ,01 ,01 ,
  618. 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
  619. 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
  620. 011 ,01 ,'"' ,01 ,01 ,01 ,01 ,047 ,
  621. 01 ,01 ,01 ,'+' ,01 ,'+' ,01 ,01 ,
  622. '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
  623. '0' ,'0' ,01 ,01 ,01 ,01 ,01 ,01 ,
  624. 01 ,'A' ,'A' ,'A' ,'D' ,'D' ,'A' ,'D' ,
  625. 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  626. 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  627. 'A' ,'A' ,'A' ,01 ,01 ,01 ,01 ,'A' ,
  628. 01 ,'A' ,'A' ,'A' ,'D' ,'D' ,'A' ,'D' ,
  629. 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  630. 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  631. 'A' ,'A' ,'A' ,01 ,01 ,01 ,01 ,01 ,
  632. 0};
  633. char yyextra[] = {
  634. 0,0,0,0,0,0,0,0,
  635. 0,0,0,0,0,0,0,0,
  636. 0,0,0,0,0,0,0,0,
  637. 0,0,0,0,0,0,0,0,
  638. 0,0,0,0,0,0,0,0,
  639. 0};
  640. #ifndef lint
  641. static char ncform_sccsid[] = "@(#)ncform 1.6 88/02/08 SMI"; /* from S5R2 1.2 */
  642. #endif
  643. int yylineno =1;
  644. # define YYU(x) x
  645. # define NLSTATE yyprevious=YYNEWLINE
  646. char yytext[YYLMAX];
  647. struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
  648. char yysbuf[YYLMAX];
  649. char *yysptr = yysbuf;
  650. int *yyfnd;
  651. extern struct yysvf *yyestate;
  652. int yyprevious = YYNEWLINE;
  653. yylook(){
  654. register struct yysvf *yystate, **lsp;
  655. register struct yywork *yyt;
  656. struct yysvf *yyz;
  657. int yych, yyfirst;
  658. struct yywork *yyr;
  659. # ifdef LEXDEBUG
  660. int debug;
  661. # endif
  662. char *yylastch;
  663. /* start off machines */
  664. # ifdef LEXDEBUG
  665. debug = 0;
  666. # endif
  667. yyfirst=1;
  668. if (!yymorfg)
  669. yylastch = yytext;
  670. else {
  671. yymorfg=0;
  672. yylastch = yytext+yyleng;
  673. }
  674. for(;;){
  675. lsp = yylstate;
  676. yyestate = yystate = yybgin;
  677. if (yyprevious==YYNEWLINE) yystate++;
  678. for (;;){
  679. # ifdef LEXDEBUG
  680. if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
  681. # endif
  682. yyt = yystate->yystoff;
  683. if(yyt == yycrank && !yyfirst){ /* may not be any transitions */
  684. yyz = yystate->yyother;
  685. if(yyz == 0)break;
  686. if(yyz->yystoff == yycrank)break;
  687. }
  688. *yylastch++ = yych = input();
  689. yyfirst=0;
  690. tryagain:
  691. # ifdef LEXDEBUG
  692. if(debug){
  693. fprintf(yyout,"char ");
  694. allprint(yych);
  695. putchar('\n');
  696. }
  697. # endif
  698. yyr = yyt;
  699. if ( (int)yyt > (int)yycrank){
  700. yyt = yyr + yych;
  701. if (yyt <= yytop && yyt->verify+yysvec == yystate){
  702. if(yyt->advance+yysvec == YYLERR) /* error transitions */
  703. {unput(*--yylastch);break;}
  704. *lsp++ = yystate = yyt->advance+yysvec;
  705. goto contin;
  706. }
  707. }
  708. # ifdef YYOPTIM
  709. else if((int)yyt < (int)yycrank) { /* r < yycrank */
  710. yyt = yyr = yycrank+(yycrank-yyt);
  711. # ifdef LEXDEBUG
  712. if(debug)fprintf(yyout,"compressed state\n");
  713. # endif
  714. yyt = yyt + yych;
  715. if(yyt <= yytop && yyt->verify+yysvec == yystate){
  716. if(yyt->advance+yysvec == YYLERR) /* error transitions */
  717. {unput(*--yylastch);break;}
  718. *lsp++ = yystate = yyt->advance+yysvec;
  719. goto contin;
  720. }
  721. yyt = yyr + YYU(yymatch[yych]);
  722. # ifdef LEXDEBUG
  723. if(debug){
  724. fprintf(yyout,"try fall back character ");
  725. allprint(YYU(yymatch[yych]));
  726. putchar('\n');
  727. }
  728. # endif
  729. if(yyt <= yytop && yyt->verify+yysvec == yystate){
  730. if(yyt->advance+yysvec == YYLERR) /* error transition */
  731. {unput(*--yylastch);break;}
  732. *lsp++ = yystate = yyt->advance+yysvec;
  733. goto contin;
  734. }
  735. }
  736. if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
  737. # ifdef LEXDEBUG
  738. if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
  739. # endif
  740. goto tryagain;
  741. }
  742. # endif
  743. else
  744. {unput(*--yylastch);break;}
  745. contin:
  746. # ifdef LEXDEBUG
  747. if(debug){
  748. fprintf(yyout,"state %d char ",yystate-yysvec-1);
  749. allprint(yych);
  750. putchar('\n');
  751. }
  752. # endif
  753. ;
  754. }
  755. # ifdef LEXDEBUG
  756. if(debug){
  757. fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
  758. allprint(yych);
  759. putchar('\n');
  760. }
  761. # endif
  762. while (lsp-- > yylstate){
  763. *yylastch-- = 0;
  764. if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
  765. yyolsp = lsp;
  766. if(yyextra[*yyfnd]){ /* must backup */
  767. while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
  768. lsp--;
  769. unput(*yylastch--);
  770. }
  771. }
  772. yyprevious = YYU(*yylastch);
  773. yylsp = lsp;
  774. yyleng = yylastch-yytext+1;
  775. yytext[yyleng] = 0;
  776. # ifdef LEXDEBUG
  777. if(debug){
  778. fprintf(yyout,"\nmatch ");
  779. sprint(yytext);
  780. fprintf(yyout," action %d\n",*yyfnd);
  781. }
  782. # endif
  783. return(*yyfnd++);
  784. }
  785. unput(*yylastch);
  786. }
  787. if (yytext[0] == 0 /* && feof(yyin) */)
  788. {
  789. yysptr=yysbuf;
  790. return(0);
  791. }
  792. yyprevious = yytext[0] = input();
  793. if (yyprevious>0)
  794. output(yyprevious);
  795. yylastch=yytext;
  796. # ifdef LEXDEBUG
  797. if(debug)putchar('\n');
  798. # endif
  799. }
  800. }
  801. yyback(p, m)
  802. int *p;
  803. {
  804. if (p==0) return(0);
  805. while (*p)
  806. {
  807. if (*p++ == m)
  808. return(1);
  809. }
  810. return(0);
  811. }
  812. /* the following are only used in the lex library */
  813. yyinput(){
  814. return(input());
  815. }
  816. yyoutput(c)
  817. int c; {
  818. output(c);
  819. }
  820. yyunput(c)
  821. int c; {
  822. unput(c);
  823. }