Source:NetHack 3.0.0/lev lex.c

Below is the full text to lev_lex.c from the source code of NetHack 3.0.0. To link to a particular line, write [[NetHack 3.0.0/lev_lex.c#line123 ]], for example.

Warning! This is the source code from an old release. For the latest release, see Source code

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.  /*	SCCS Id: @(#)lev_lex.c	3.0	89/07/02 29.  /*	Copyright (c) 1989 by Jean-Christophe Collet */ 30.  /* NetHack may be freely redistributed. See license for details. */ 31.    32.   #include "hack.h"  33. #include "lev_comp.h" 34. #include "sp_lev.h" 35. 36.  int line_number = 1; 37.   38.   /* This is *** UGLY *** but I can't think a better way to do it  39. * I really need a huge buffer to scan maps... 40. */ 41.    42.   #undef YYLMAX 43.  #define YYLMAX	2048 44.   45.   # define MAPC 2 46.  # define YYNEWLINE 10 47.  yylex{ 48.  int nstr; extern int yyprevious; 49.  while((nstr = yylook) >= 0) 50.  yyfussy: switch(nstr){ 51.  case 0: 52.  if(yywrap) return(0); break; 53.  case 1: 54.  	{ line_number++; } 55.  break; 56.  case 2: 57.  	return MAZE_ID; 58.  break; 59.  case 3: 60.  	return LEVEL_ID; 61.  break; 62.  case 4: 63.  return GEOMETRY_ID; 64.  break; 65.  case 5: 66.  	{ BEGIN MAPC; } 67.  break; 68.  case 6: 69.  { line_number++; yymore; } 70.  break; 71.  case 7: 72.  { BEGIN 0; 73.  		  yytext[yyleng-7] = 0; /* Discard \nENDMAP */ 74.  		  yylval.map = (char *) alloc(strlen(yytext)+1); 75.  		  strcpy(yylval.map, yytext+1); 76.  		  return MAP_ID; 77.  		}  78.   break; 79.  case 8: 80.  	return OBJECT_ID; 81.  break; 82.  case 9: 83.  	return MONSTER_ID; 84.  break; 85.  case 10: 86.  	return TRAP_ID; 87.  break; 88.  case 11: 89.  	return DOOR_ID; 90.  break; 91.  case 12: 92.  return DRAWBRIDGE_ID; 93.  break; 94.  case 13: 95.  return MAZEWALK_ID; 96.  break; 97.  case 14: 98.  	return REGION_ID; 99.  break; 100. case 15: 101. return RANDOM_OBJECTS_ID; 102. break; 103. case 16: 104. return RANDOM_MONSTERS_ID; 105. break; 106. case 17: 107. return RANDOM_PLACES_ID; 108. break; 109. case 18: 110. 	return ALTAR_ID; 111. break; 112. case 19: 113. 	return LADDER_ID; 114. break; 115. case 20: 116. return NON_DIGGABLE_ID; 117. break; 118. case 21: 119. 	return ROOM_ID; 120. break; 121. case 22: 122. 	{ yylval.i=D_ISOPEN; return DOOR_STATE; } 123. break; 124. case 23: 125. 	{ yylval.i=D_CLOSED; return DOOR_STATE; } 126. break; 127. case 24: 128. 	{ yylval.i=D_LOCKED; return DOOR_STATE; } 129. break; 130. case 25: 131. 	{ yylval.i=D_NODOOR; return DOOR_STATE; } 132. break; 133. case 26: 134. 	{ yylval.i=D_BROKEN; return DOOR_STATE; } 135. break; 136. case 27: 137. 	{ yylval.i=W_NORTH; return DIRECTION; } 138. break; 139. case 28: 140. 	{ yylval.i=W_EAST; return DIRECTION; } 141. break; 142. case 29: 143. 	{ yylval.i=W_SOUTH; return DIRECTION; } 144. break; 145. case 30: 146. 	{ yylval.i=W_WEST; return DIRECTION; } 147. break; 148. case 31: 149. 	{ yylval.i = -1; return RANDOM_TYPE; } 150. break; 151. case 32: 152. 	return O_REGISTER; 153. break; 154. case 33: 155. 	return M_REGISTER; 156. break; 157. case 34: 158. 	return P_REGISTER; 159. break; 160. case 35: 161. 	return A_REGISTER; 162. break; 163. case 36: 164. 	{ yylval.i=1; return LEFT_OR_RIGHT; } 165. break; 166. case 37: 167. 	{ yylval.i=3; return LEFT_OR_RIGHT; } 168. break; 169. case 38: 170. 	{ yylval.i=2; return CENTER; } 171. break; 172. case 39: 173. 	{ yylval.i=1; return TOP_OR_BOT; } 174. break; 175. case 40: 176. 	{ yylval.i=3; return TOP_OR_BOT; } 177. break; 178. case 41: 179. 	{ yylval.i=1; return LIGHT_STATE; } 180. break; 181. case 42: 182. 	{ yylval.i=0; return LIGHT_STATE; } 183. break; 184. case 43: 185. 	{ yylval.i=A_LAW; return ALIGNMENT; } 186. break; 187. case 44: 188. 	{ yylval.i=A_NEUTRAL; return ALIGNMENT; } 189. break; 190. case 45: 191. 	{ yylval.i=A_CHAOS; return ALIGNMENT; } 192. break; 193. case 46: 194. 	{ yylval.i=1; return ALTAR_TYPE; } 195. break; 196. case 47: 197. 	{ yylval.i=0; return ALTAR_TYPE; } 198. break; 199. case 48: 200. 	{ yylval.i=1; return UP_OR_DOWN; } 201. break; 202. case 49: 203. 	{ yylval.i=0; return UP_OR_DOWN; } 204. break; 205. case 50: 206. 	{ yylval.i=atoi(yytext); return INTEGER; } 207. break; 208. case 51: 209. { yytext[yyleng-1] = 0; /* Discard the trailing \" */  210.  		  yylval.map = (char *) alloc(strlen(yytext+1)+1);  211.  		  strcpy(yylval.map, yytext+1); /* Discard the first \" */ 212. 		  return STRING; } 213. break; 214. case 52: 215. 	{ line_number++; } 216. break; 217. case 53: 218. 	;  219.  break; 220. case 54: 221. 	{ yylval.i = yytext[1]; return CHAR; } 222. break; 223. case 55: 224. 	{ return yytext[0]; } 225. break; 226. case -1: 227. break; 228. default: 229. fprintf(yyout,"bad switch yylook %d",nstr); 230. } return(0); } 231. /* end of yylex */ 232. int yyvstop[] ={ 233. 0,  234.   235.  55,  236.  0,  237.   238.  53,  239.  55,  240.  0,  241.   242.  52,  243.  0,  244.   245.  55,  246.  0,  247.   248.  55,  249.  0,  250.   251.  50,  252.  55,  253.  0,  254.   255.  55,  256.  0,  257.   258.  55,  259.  0,  260.   261.  55,  262.  0,  263.   264.  55,  265.  0,  266.   267.  55,  268.  0,  269.   270.  55,  271.  0,  272.   273.  55,  274.  0,  275.   276.  55,  277.  0,  278.   279.  55,  280.  0,  281.   282.  55,  283.  0,  284.   285.  55,  286.  0,  287.   288.  55,  289.  0,  290.   291.  55,  292.  0,  293.   294.  55,  295.  0,  296.   297.  55,  298.  0,  299.   300.  55,  301.  0,  302.   303.  55,  304.  0,  305.   306.  55,  307.  0,  308.   309.  55,  310.  0,  311.   312.  55,  313.  0,  314.   315.  55,  316.  0,  317.   318.  55,  319.  0,  320.   321.  55,  322.  0,  323.   324.  55,  325.  0,  326.   327.  55,  328.  0,  329.   330.  55,  331.  0,  332.   333.  6,  334.  52,  335.  0,  336.   337.  53,  338.  55,  339.  0,  340.   341.  55,  342.  0,  343.   344.  55,  345.  0,  346.   347.  55,  348.  0,  349.   350.  53,  351.  0,  352.   353.  51,  354.  0,  355.   356.  50,  357.  0,  358.   359.  48,  360.  0,  361.   362.  1,  363.  0,  364.   365.  6,  366.  0,  367.   368.  53,  369.  0,  370.   371.  1,  372.  6,  373.  0,  374.   375.  54,  376.  0,  377.   378.  43,  379.  0,  380.   381.  41,  382.  0,  383.   384.  39,  385.  0,  386.   387.  -5,  388.  0,  389.   390.  11,  391.  0,  392.   393.  2,  394.  0,  395.   396.  21,  397.  0,  398.   399.  10,  400.  0,  401.   402.  49,  403.  0,  404.   405.  28,  406.  0,  407.   408.  36,  409.  0,  410.   411.  22,  412.  0,  413.   414.  30,  415.  0,  416.   417.  5,  418.  0,  419.   420.  18,  421.  0,  422.   423.  3,  424.  0,  425.   426.  35,  427.  0,  428.   429.  47,  430.  0,  431.   432.  45,  433.  0,  434.   435.  27,  436.  0,  437.   438.  34,  439.  0,  440.   441.  37,  442.  0,  443.   444.  29,  445.  0,  446.   447.  42,  448.  0,  449.   450.  19,  451.  0,  452.   453.  8,  454.  0,  455.   456.  14,  457.  0,  458.   459.  40,  460.  0,  461.   462.  26,  463.  0,  464.   465.  38,  466.  0,  467.   468.  23,  469.  0,  470.   471.  24,  472.  0,  473.   474.  25,  475.  0,  476.   477.  32,  478.  0,  479.   480.  31,  481.  0,  482.   483.  46,  484.  0,  485.   486.  -7,  487.  0,  488.   489.  9,  490.  0,  491.   492.  33,  493.  0,  494.   495.  44,  496.  0,  497.   498.  7,  499.  0,  500.   501.  4,  502.  0,  503.   504.  13,  505.  0,  506.   507.  12,  508.  0,  509.   510.  20,  511.  0,  512.   513.  17,  514.  0,  515.   516.  15,  517.  0,  518.   519.  16,  520.  0,  521.  0};  522.  # define YYTYPE int 523. struct yywork { YYTYPE verify, advance; } yycrank[] ={ 524. 0,0,	0,0,	1,5,	0,0,	  525.  0,0,	0,0,	0,0,	0,0,	  526.  8,43,	0,0,	1,6,	1,7,	  527.  9,45,	0,0,	6,42,	0,0,	  528.  8,43,	8,43,	0,0,	0,0,	  529.  9,45,	9,0,	41,94,	0,0,	  530.  0,0,	0,0,	0,0,	0,0,	  531.  0,0,	0,0,	0,0,	0,0,	  532.  0,0,	1,6,	0,0,	1,8,	  533.  1,5,	6,42,	0,0,	8,43,	  534.  1,9,	8,44,	8,43,	9,45,	  535.  41,95,	9,45,	9,45,	41,95,	  536.  45,96,	1,10,	0,0,	0,0,	  537.  0,0,	0,0,	0,0,	8,43,	  538.  0,0,	0,0,	0,0,	9,45,	  539.  0,0,	0,0,	0,0,	0,0,	  540.  0,0,	0,0,	1,11,	14,51,	  541.  15,53,	1,12,	13,50,	14,52,	  542.  1,13,	17,56,	36,89,	49,99,	  543.  51,101,	1,14,	1,15,	1,16,	  544.  1,17,	11,47,	15,54,	1,18,	  545.  12,48,	1,19,	16,55,	12,49,	  546.  2,5,	18,57,	19,60,	40,93,	  547.  47,97,	18,58,	48,98,	50,100,	  548.  2,6,	2,7,	1,20,	1,21,	  549.  1,22,	1,23,	1,24,	18,59,	  550.  24,68,	34,86,	52,102,	53,103,	  551.  54,104,	1,25,	1,26,	1,27,	  552.  1,28,	1,29,	20,61,	1,30,	  553.  1,31,	1,32,	1,33,	2,6,	  554.  1,34,	2,8,	2,35,	23,67,	  555.  21,62,	26,73,	2,9,	21,63,	  556.  29,78,	32,83,	2,5,	55,105,	  557.  2,5,	2,5,	28,76,	2,10,	  558.  10,46,	10,46,	10,46,	10,46,	  559.  10,46,	10,46,	10,46,	10,46,	  560.  10,46,	10,46,	22,64,	27,74,	  561.  28,77,	22,65,	56,106,	30,79,	  562.  2,11,	22,66,	31,81,	2,12,	  563.  57,107,	27,75,	2,13,	30,80,	  564.  58,108,	31,82,	2,5,	2,14,	  565.  2,36,	2,16,	2,17,	59,109,	  566.  25,69,	2,18,	2,5,	2,19,	  567.  25,70,	33,84,	60,110,	33,85,	  568.  25,71,	62,113,	61,111,	2,5,	  569.  63,114,	64,115,	25,72,	65,116,	  570.  2,20,	2,21,	2,22,	2,23,	  571.  2,24,	61,112,	66,117,	3,37,	  572.  67,118,	68,119,	69,120,	2,25,	  573.  2,26,	2,27,	2,28,	2,29,	  574.  35,87,	2,30,	2,31,	2,32,	  575.  2,33,	70,121,	2,34,	71,122,	  576.  35,87,	35,88,	2,5,	2,5,	  577.  2,5,	3,38,	72,123,	73,124,	  578.  3,39,	74,125,	75,126,	76,128,	  579.  3,9,	77,129,	78,130,	79,131,	  580.  80,132,	81,133,	82,134,	83,135,	  581.  84,136,	86,137,	89,138,	35,87,	  582.  75,127,	35,87,	35,87,	93,139,	  583.  97,140,	98,141,	99,142,	95,94,	  584.  89,103,	100,143,	101,144,	102,145,	  585.  103,146,	104,147,	3,11,	35,87,	  586.  105,148,	3,12,	3,40,	106,149,	  587.  3,13,	107,150,	108,151,	109,152,	  588.  110,153,	3,14,	3,15,	3,16,	  589.  3,17,	95,95,	111,154,	3,18,	  590.  95,95,	3,19,	112,155,	113,156,	  591.  114,157,	115,158,	116,159,	117,160,	  592.  118,161,	119,162,	121,163,	123,164,	  593.  124,165,	4,37,	3,20,	3,21,	  594.  3,22,	3,23,	3,24,	125,166,	  595.  126,167,	127,168,	128,169,	129,170,	  596.  130,171,	3,25,	3,26,	3,27,	  597.  3,28,	3,29,	131,172,	3,30,	  598.  3,31,	3,32,	3,33,	4,38,	  599.  3,34,	132,173,	4,41,	133,174,	  600.  134,175,	136,176,	4,9,	137,177,	  601.  138,178,	139,179,	4,39,	140,180,	  602.  4,39,	4,39,	142,181,	143,182,	  603.  144,183,	145,184,	146,185,	147,186,	  604.  148,187,	149,188,	150,189,	151,190,	  605.  154,191,	155,192,	156,193,	157,194,	  606.  158,195,	159,196,	160,197,	164,198,	  607.  4,11,	165,199,	166,200,	4,12,	  608.  4,40,	167,201,	4,13,	168,202,	  609.  169,203,	171,204,	4,39,	4,14,	  610.  4,36,	4,16,	4,17,	172,205,	  611.  173,206,	4,18,	4,39,	4,19,	  612.  174,207,	175,208,	176,209,	179,210,	  613.  181,211,	182,212,	183,213,	4,39,	  614.  185,214,	186,215,	38,42,	38,90,	  615.  4,20,	4,21,	4,22,	4,23,	  616.  4,24,	187,216,	188,217,	189,218,	  617.  190,219,	193,220,	194,221,	4,25,	  618.  4,26,	4,27,	4,28,	4,29,	  619.  195,222,	4,30,	4,31,	4,32,	  620.  4,33,	38,91,	4,34,	39,90,	  621.  38,92,	197,223,	4,39,	4,39,	  622.  4,39,	198,224,	199,225,	200,226,	  623.  38,92,	201,227,	38,92,	38,92,	  624.  203,228,	205,229,	207,230,	210,231,	  625.  211,232,	212,233,	214,234,	215,235,	  626.  216,236,	39,92,	218,237,	225,238,	  627.  39,92,	226,239,	231,240,	232,241,	  628.  233,242,	234,243,	236,244,	241,248,	  629.  39,92,	244,249,	39,92,	39,92,	  630.  237,245,	245,250,	237,246,	237,247,	  631.  38,92,	246,251,	247,252,	248,253,	  632.  249,254,	250,255,	251,256,	252,257,	  633.  38,92,	254,258,	255,259,	256,260,	  634.  257,261,	258,262,	259,263,	260,264,	  635.  261,265,	38,92,	263,266,	264,267,	  636.  265,268,	266,269,	267,270,	269,271,	  637.  39,92,	0,0,	0,0,	0,0,	  638.  0,0,	0,0,	0,0,	0,0,	  639.  39,92,	0,0,	0,0,	0,0,	  640.  0,0,	0,0,	0,0,	0,0,	  641.  0,0,	39,92,	0,0,	0,0,	  642.  0,0,	0,0,	0,0,	0,0,	  643.  38,92,	38,92,	38,92,	0,0,	  644.  0,0,	0,0,	0,0,	0,0,	  645.  0,0,	0,0,	0,0,	0,0,	  646.  0,0,	0,0,	0,0,	0,0,	  647.  0,0,	0,0,	0,0,	0,0,	  648.  0,0,	0,0,	0,0,	0,0,	  649.  39,92,	39,92,	39,92,	0,0,	  650.  0,0};  651.  struct yysvf yysvec[] ={ 652. 0,	0,	0,  653.  yycrank+-1,	0,		0, 654. yycrank+-87,	0,		0, 655. yycrank+-181,	yysvec+1,	0, 656. yycrank+-267,	yysvec+2,	0, 657. yycrank+0,	0,		yyvstop+1, 658. yycrank+5,	0,		yyvstop+3, 659. yycrank+0,	0,		yyvstop+6, 660. yycrank+-7,	0,		yyvstop+8, 661. yycrank+-11,	0,		yyvstop+10, 662. yycrank+88,	0,		yyvstop+12, 663. yycrank+5,	0,		yyvstop+15, 664. yycrank+5,	0,		yyvstop+17, 665. yycrank+1,	0,		yyvstop+19, 666. yycrank+2,	0,		yyvstop+21, 667. yycrank+3,	0,		yyvstop+23, 668. yycrank+7,	0,		yyvstop+25, 669. yycrank+7,	0,		yyvstop+27, 670. yycrank+24,	0,		yyvstop+29, 671. yycrank+8,	0,		yyvstop+31, 672. yycrank+6,	0,		yyvstop+33, 673. yycrank+13,	0,		yyvstop+35, 674. yycrank+45,	0,		yyvstop+37, 675. yycrank+12,	0,		yyvstop+39, 676. yycrank+7,	0,		yyvstop+41, 677. yycrank+71,	0,		yyvstop+43, 678. yycrank+14,	0,		yyvstop+45, 679. yycrank+46,	0,		yyvstop+47, 680. yycrank+36,	0,		yyvstop+49, 681. yycrank+20,	0,		yyvstop+51, 682. yycrank+54,	0,		yyvstop+53, 683. yycrank+50,	0,		yyvstop+55, 684. yycrank+18,	0,		yyvstop+57, 685. yycrank+63,	0,		yyvstop+59, 686. yycrank+4,	0,		yyvstop+61, 687. yycrank+-199,	0,		yyvstop+63, 688. yycrank+9,	yysvec+15,	yyvstop+65, 689. yycrank+0,	0,		yyvstop+67, 690. yycrank+353,	0,		yyvstop+70, 691. yycrank+377,	0,		yyvstop+73, 692. yycrank+13,	0,		yyvstop+75, 693. yycrank+-12,	yysvec+35,	yyvstop+77, 694. yycrank+0,	yysvec+6,	yyvstop+79, 695. yycrank+0,	yysvec+8,	0, 696. yycrank+0,	0,		yyvstop+81, 697. yycrank+9,	0,		0, 698. yycrank+0,	yysvec+10,	yyvstop+83, 699. yycrank+8,	0,		0, 700. yycrank+15,	0,		0, 701. yycrank+10,	0,		0, 702. yycrank+16,	0,		0, 703. yycrank+8,	0,		0, 704. yycrank+20,	0,		0, 705. yycrank+17,	0,		0, 706. yycrank+30,	0,		0, 707. yycrank+53,	0,		0, 708. yycrank+76,	0,		0, 709. yycrank+78,	0,		0, 710. yycrank+89,	0,		0, 711. yycrank+88,	0,		0, 712. yycrank+109,	0,		0, 713. yycrank+73,	0,		0, 714. yycrank+61,	0,		0, 715. yycrank+69,	0,		0, 716. yycrank+71,	0,		0, 717. yycrank+86,	0,		0, 718. yycrank+79,	0,		0, 719. yycrank+73,	0,		0, 720. yycrank+78,	0,		0, 721. yycrank+75,	0,		0, 722. yycrank+103,	0,		0, 723. yycrank+91,	0,		0, 724. yycrank+115,	0,		0, 725. yycrank+105,	0,		0, 726. yycrank+100,	0,		0, 727. yycrank+118,	0,		0, 728. yycrank+113,	0,		0, 729. yycrank+120,	0,		0, 730. yycrank+125,	0,		0, 731. yycrank+113,	0,		0, 732. yycrank+121,	0,		0, 733. yycrank+111,	0,		0, 734. yycrank+109,	0,		0, 735. yycrank+115,	0,		0, 736. yycrank+120,	0,		0, 737. yycrank+0,	0,		yyvstop+85, 738. yycrank+114,	0,		0, 739. yycrank+0,	yysvec+35,	0, 740. yycrank+0,	0,		yyvstop+87, 741. yycrank+150,	0,		0, 742. yycrank+0,	0,		yyvstop+89, 743. yycrank+0,	yysvec+38,	yyvstop+91, 744. yycrank+0,	yysvec+39,	0, 745. yycrank+167,	0,		0, 746. yycrank+0,	0,		yyvstop+93, 747. yycrank+-229,	yysvec+35,	0, 748. yycrank+0,	0,		yyvstop+96, 749. yycrank+171,	0,		0, 750. yycrank+155,	0,		0, 751. yycrank+151,	0,		0, 752. yycrank+164,	0,		0, 753. yycrank+174,	0,		0, 754. yycrank+174,	0,		0, 755. yycrank+175,	0,		0, 756. yycrank+162,	0,		0, 757. yycrank+153,	0,		0, 758. yycrank+182,	0,		0, 759. yycrank+185,	0,		0, 760. yycrank+181,	0,		0, 761. yycrank+178,	0,		0, 762. yycrank+176,	0,		0, 763. yycrank+159,	0,		0, 764. yycrank+169,	0,		0, 765. yycrank+151,	0,		0, 766. yycrank+161,	0,		0, 767. yycrank+153,	0,		0, 768. yycrank+159,	0,		0, 769. yycrank+156,	0,		0, 770. yycrank+162,	0,		0, 771. yycrank+157,	0,		0, 772. yycrank+0,	0,		yyvstop+98, 773. yycrank+158,	0,		0, 774. yycrank+0,	0,		yyvstop+100, 775. yycrank+168,	0,		0, 776. yycrank+161,	0,		0, 777. yycrank+167,	0,		0, 778. yycrank+173,	0,		0, 779. yycrank+169,	0,		0, 780. yycrank+185,	0,		0, 781. yycrank+177,	0,		0, 782. yycrank+189,	0,		0, 783. yycrank+194,	0,		0, 784. yycrank+197,	0,		0, 785. yycrank+198,	0,		0, 786. yycrank+188,	0,		0, 787. yycrank+0,	0,		yyvstop+102, 788. yycrank+200,	0,		0, 789. yycrank+191,	0,		0, 790. yycrank+298,	0,		yyvstop+104, 791. yycrank+232,	0,		0, 792. yycrank+229,	0,		0, 793. yycrank+0,	0,		yyvstop+106, 794. yycrank+248,	0,		0, 795. yycrank+246,	0,		0, 796. yycrank+247,	0,		0, 797. yycrank+241,	0,		0, 798. yycrank+231,	0,		yyvstop+108, 799. yycrank+235,	0,		0, 800. yycrank+252,	0,		0, 801. yycrank+254,	0,		0, 802. yycrank+243,	0,		0, 803. yycrank+244,	0,		0, 804. yycrank+0,	0,		yyvstop+110, 805. yycrank+0,	0,		yyvstop+112, 806. yycrank+214,	0,		0, 807. yycrank+211,	0,		0, 808. yycrank+215,	0,		0, 809. yycrank+226,	0,		0, 810. yycrank+227,	0,		0, 811. yycrank+214,	0,		0, 812. yycrank+229,	0,		0, 813. yycrank+0,	0,		yyvstop+114, 814. yycrank+0,	0,		yyvstop+116, 815. yycrank+0,	0,		yyvstop+118, 816. yycrank+230,	0,		0, 817. yycrank+217,	0,		0, 818. yycrank+220,	0,		0, 819. yycrank+226,	0,		0, 820. yycrank+235,	0,		0, 821. yycrank+241,	0,		0, 822. yycrank+0,	0,		yyvstop+120, 823. yycrank+240,	0,		0, 824. yycrank+236,	0,		0, 825. yycrank+232,	0,		0, 826. yycrank+242,	0,		0, 827. yycrank+249,	0,		0, 828. yycrank+238,	0,		0, 829. yycrank+0,	0,		yyvstop+122, 830. yycrank+0,	0,		yyvstop+124, 831. yycrank+290,	0,		0, 832. yycrank+0,	0,		yyvstop+126, 833. yycrank+274,	0,		0, 834. yycrank+273,	0,		0, 835. yycrank+276,	0,		0, 836. yycrank+0,	0,		yyvstop+128, 837. yycrank+295,	0,		0, 838. yycrank+292,	0,		0, 839. yycrank+296,	0,		0, 840. yycrank+286,	0,		0, 841. yycrank+294,	0,		0, 842. yycrank+294,	0,		0, 843. yycrank+0,	0,		yyvstop+130, 844. yycrank+0,	0,		yyvstop+132, 845. yycrank+264,	0,		0, 846. yycrank+264,	0,		0, 847. yycrank+266,	0,		0, 848. yycrank+0,	0,		yyvstop+134, 849. yycrank+289,	0,		0, 850. yycrank+293,	0,		0, 851. yycrank+293,	0,		0, 852. yycrank+298,	0,		0, 853. yycrank+283,	0,		0, 854. yycrank+0,	0,		yyvstop+136, 855. yycrank+284,	0,		0, 856. yycrank+0,	0,		yyvstop+138, 857. yycrank+292,	0,		0, 858. yycrank+0,	0,		yyvstop+140, 859. yycrank+301,	0,		0, 860. yycrank+0,	0,		yyvstop+142, 861. yycrank+0,	0,		yyvstop+144, 862. yycrank+323,	0,		0, 863. yycrank+331,	0,		0, 864. yycrank+323,	0,		0, 865. yycrank+0,	0,		yyvstop+146, 866. yycrank+330,	0,		0, 867. yycrank+325,	0,		0, 868. yycrank+337,	0,		0, 869. yycrank+0,	0,		yyvstop+148, 870. yycrank+315,	0,		0, 871. yycrank+0,	0,		yyvstop+150, 872. yycrank+0,	0,		yyvstop+152, 873. yycrank+0,	0,		yyvstop+154, 874. yycrank+0,	0,		yyvstop+156, 875. yycrank+0,	0,		yyvstop+158, 876. yycrank+0,	0,		yyvstop+160, 877. yycrank+297,	0,		0, 878. yycrank+305,	0,		0, 879. yycrank+0,	0,		yyvstop+162, 880. yycrank+0,	0,		yyvstop+164, 881. yycrank+0,	0,		yyvstop+166, 882. yycrank+0,	0,		yyvstop+168, 883. yycrank+404,	0,		yyvstop+170, 884. yycrank+347,	0,		0, 885. yycrank+327,	0,		0, 886. yycrank+342,	0,		0, 887. yycrank+0,	0,		yyvstop+172, 888. yycrank+347,	0,		0, 889. yycrank+347,	0,		0, 890. yycrank+0,	0,		yyvstop+174, 891. yycrank+0,	0,		yyvstop+176, 892. yycrank+0,	0,		yyvstop+178, 893. yycrank+348,	0,		0, 894. yycrank+0,	0,		yyvstop+180, 895. yycrank+0,	0,		yyvstop+182, 896. yycrank+356,	0,		0, 897. yycrank+346,	0,		0, 898. yycrank+363,	0,		0, 899. yycrank+354,	0,		0, 900. yycrank+362,	0,		0, 901. yycrank+366,	0,		0, 902. yycrank+355,	0,		0, 903. yycrank+360,	0,		0, 904. yycrank+370,	0,		0, 905. yycrank+0,	0,		yyvstop+184, 906. yycrank+361,	0,		0, 907. yycrank+355,	0,		0, 908. yycrank+370,	0,		0, 909. yycrank+373,	0,		0, 910. yycrank+372,	0,		0, 911. yycrank+358,	0,		0, 912. yycrank+376,	0,		0, 913. yycrank+375,	0,		0, 914. yycrank+0,	0,		yyvstop+186, 915. yycrank+377,	0,		0, 916. yycrank+363,	0,		0, 917. yycrank+365,	0,		0, 918. yycrank+367,	0,		0, 919. yycrank+367,	0,		0, 920. yycrank+0,	0,		yyvstop+188, 921. yycrank+368,	0,		0, 922. yycrank+0,	0,		yyvstop+190, 923. yycrank+0,	0,		yyvstop+192, 924. 0,	0,	0};  925.  struct yywork *yytop = yycrank+502; 926. struct yysvf *yybgin = yysvec+1; 927. char yymatch[] ={ 928. 00  ,01  ,01  ,01  ,01  ,01  ,01  ,01 ,  929.  01  ,011 ,012 ,01  ,01  ,01  ,01  ,01  ,  930.  01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,  931.  01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,  932.  040 ,01  ,'"' ,'#' ,01  ,01  ,01  ,01  ,  933.  01  ,01  ,01  ,'#' ,01  ,'#' ,'#' ,01  ,  934.  '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,  935.  '0' ,'0' ,01  ,01  ,01  ,01  ,01  ,01  ,  936.  01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,  937.  01  ,01  ,01  ,'#' ,01  ,01  ,01  ,01  ,  938.  01  ,01  ,01  ,'#' ,01  ,01  ,01  ,01  ,  939.  01  ,01  ,01  ,01  ,'#' ,01  ,01  ,01  ,  940.  01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,  941.  01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,  942.  01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,  943.  01  ,01  ,01  ,'#' ,'#' ,'#' ,01  ,01  ,  944.  0};  945.  char yyextra[] ={  946.  0,0,0,0,0,1,0,1,  947.  0,0,0,0,0,0,0,0,  948.  0,0,0,0,0,0,0,0,  949.  0,0,0,0,0,0,0,0, 950. 0,0,0,0,0,0,0,0,  951.  0,0,0,0,0,0,0,0,  952.  0,0,0,0,0,0,0,0,  953.  0};  954.  /*	ncform	4.1	83/08/11	*/ 955.  956.  int yylineno =1; 957. # define YYU(x) x  958. # define NLSTATE yyprevious=YYNEWLINE 959. char yytext[YYLMAX]; 960. struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp; 961. char yysbuf[YYLMAX]; 962. char *yysptr = yysbuf; 963. int *yyfnd; 964. extern struct yysvf *yyestate; 965. int yyprevious = YYNEWLINE; 966. yylook{ 967. 	register struct yysvf *yystate, **lsp; 968. 	register struct yywork *yyt; 969. 	struct yysvf *yyz; 970. 	int yych; 971. 	struct yywork *yyr; 972. # ifdef LEXDEBUG 973. 	int debug; 974. # endif 975. 	char *yylastch; 976. 	/* start off machines */ 977. # ifdef LEXDEBUG 978. 	debug = 0; 979. # endif 980. 	if (!yymorfg) 981. 		yylastch = yytext; 982. 	else { 983. 		yymorfg=0; 984. 		yylastch = yytext+yyleng; 985. 		}  986.  	for{ 987. 		lsp = yylstate; 988. 		yyestate = yystate = yybgin; 989. 		if (yyprevious==YYNEWLINE) yystate++; 990. 		for { 991. # ifdef LEXDEBUG 992. 			if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1); 993. # endif 994. 			yyt = yystate->yystoff; 995. 			if(yyt == yycrank){		/* may not be any transitions */ 996. 				yyz = yystate->yyother; 997. 				if(yyz == 0)break; 998. 				if(yyz->yystoff == yycrank)break; 999. 				}  1000. 			*yylastch++ = yych = input; 1001. 		tryagain: 1002. # ifdef LEXDEBUG 1003. 			if(debug){ 1004. 				fprintf(yyout,"char "); 1005. 				allprint(yych); 1006. 				putchar('\n'); 1007. 				} 1008. # endif 1009. 			yyr = yyt; 1010. 			if ( (int)yyt > (int)yycrank){ 1011. 				yyt = yyr + yych; 1012. 				if (yyt <= yytop && yyt->verify+yysvec == yystate){ 1013. 					if(yyt->advance+yysvec == YYLERR)	/* error transitions */ 1014. 						{unput(*--yylastch);break;} 1015. 					*lsp++ = yystate = yyt->advance+yysvec; 1016. 					goto contin; 1017. 					} 1018. 				}  1019. # ifdef YYOPTIM 1020. 			else if((int)yyt < (int)yycrank) {		/* r < yycrank */ 1021. 				yyt = yyr = yycrank+(yycrank-yyt); 1022. # ifdef LEXDEBUG 1023. 				if(debug)fprintf(yyout,"compressed state\n"); 1024. # endif 1025. 				yyt = yyt + yych; 1026. 				if(yyt <= yytop && yyt->verify+yysvec == yystate){ 1027. 					if(yyt->advance+yysvec == YYLERR)	/* error transitions */ 1028. 						{unput(*--yylastch);break;} 1029. 					*lsp++ = yystate = yyt->advance+yysvec; 1030. 					goto contin; 1031. 					} 1032. 				yyt = yyr + YYU(yymatch[yych]); 1033. # ifdef LEXDEBUG 1034. 				if(debug){ 1035. 					fprintf(yyout,"try fall back character "); 1036. 					allprint(YYU(yymatch[yych])); 1037. 					putchar('\n'); 1038. 					} 1039. # endif 1040. 				if(yyt <= yytop && yyt->verify+yysvec == yystate){ 1041. 					if(yyt->advance+yysvec == YYLERR)	/* error transition */ 1042. 						{unput(*--yylastch);break;} 1043. 					*lsp++ = yystate = yyt->advance+yysvec; 1044. 					goto contin; 1045. 					} 1046. 				}  1047. 			if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){ 1048. # ifdef LEXDEBUG 1049. 				if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1); 1050. # endif 1051. 				goto tryagain; 1052. 				} 1053. # endif 1054. 			else 1055. 				{unput(*--yylastch);break;} 1056. 		contin: 1057. # ifdef LEXDEBUG 1058. 			if(debug){ 1059. 				fprintf(yyout,"state %d char ",yystate-yysvec-1); 1060. 				allprint(yych); 1061. 				putchar('\n'); 1062. 				} 1063. # endif 1064. 			; 1065. 			}  1066. # ifdef LEXDEBUG 1067. 		if(debug){ 1068. 			fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); 1069. 			allprint(yych); 1070. 			putchar('\n'); 1071. 			} 1072. # endif 1073. 		while (lsp-- > yylstate){ 1074. 			*yylastch-- = 0; 1075. 			if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ 1076. 				yyolsp = lsp; 1077. 				if(yyextra[*yyfnd]){		/* must backup */ 1078. 					while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ 1079. 						lsp--; 1080. 						unput(*yylastch--); 1081. 						} 1082. 					}  1083. 				yyprevious = YYU(*yylastch); 1084. 				yylsp = lsp; 1085. 				yyleng = yylastch-yytext+1; 1086. 				yytext[yyleng] = 0; 1087. # ifdef LEXDEBUG 1088. 				if(debug){ 1089. 					fprintf(yyout,"\nmatch "); 1090. 					sprint(yytext); 1091. 					fprintf(yyout," action %d\n",*yyfnd); 1092. 					} 1093. # endif 1094. 				return(*yyfnd++); 1095. 				} 1096. 			unput(*yylastch); 1097. 			} 1098. 		if (yytext[0] == 0  /* && feof(yyin) */) 1099. 			{ 1100. 			yysptr=yysbuf; 1101. 			return(0); 1102. 			} 1103. 		yyprevious = yytext[0] = input; 1104. 		if (yyprevious>0) 1105. 			output(yyprevious); 1106. 		yylastch=yytext; 1107. # ifdef LEXDEBUG 1108. 		if(debug)putchar('\n'); 1109. # endif 1110. 		} 1111. 	}  1112. yyback(p, m)  1113. int *p; 1114. { 1115. if (p==0) return(0); 1116. while (*p) 1117. 	{ 1118. 	if (*p++ == m)  1119. return(1); 1120. 	} 1121. return(0); 1122. } 1123. 	/* the following are only used in the lex library */ 1124. yyinput{ 1125. 	return(input); 1126. 	} 1127. yyoutput(c) 1128.  int c; { 1129. 	output(c); 1130. 	} 1131. yyunput(c) 1132.   int c; { 1133. 	unput(c); 1134. 	}