Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1960 lines
52 KiB

  1. #line 2 "tnadminl.c"
  2. /* A lexical scanner generated by flex */
  3. /* Scanner skeleton version:
  4. * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
  5. */
  6. #define FLEX_SCANNER
  7. #define YY_FLEX_MAJOR_VERSION 2
  8. #define YY_FLEX_MINOR_VERSION 5
  9. #include <stdio.h>
  10. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  11. #ifdef c_plusplus
  12. #ifndef __cplusplus
  13. #define __cplusplus
  14. #endif
  15. #endif
  16. #ifdef __cplusplus
  17. #include <stdlib.h>
  18. #ifndef _MSC_VER
  19. #include <unistd.h>
  20. #endif
  21. /* Use prototypes in function declarations. */
  22. #define YY_USE_PROTOS
  23. /* The "const" storage-class-modifier is valid. */
  24. #define YY_USE_CONST
  25. #else /* ! __cplusplus */
  26. #if __STDC__
  27. #define YY_USE_PROTOS
  28. #define YY_USE_CONST
  29. #endif /* __STDC__ */
  30. #endif /* ! __cplusplus */
  31. #ifdef __TURBOC__
  32. #pragma warn -rch
  33. #pragma warn -use
  34. #include <io.h>
  35. #include <stdlib.h>
  36. #define YY_USE_CONST
  37. #define YY_USE_PROTOS
  38. #endif
  39. #ifdef YY_USE_CONST
  40. #define yyconst const
  41. #else
  42. #define yyconst
  43. #endif
  44. #ifdef YY_USE_PROTOS
  45. #define YY_PROTO(proto) proto
  46. #else
  47. #define YY_PROTO(proto) ()
  48. #endif
  49. /* Returned upon end-of-file. */
  50. #define YY_NULL 0
  51. /* Promotes a possibly negative, possibly signed char to an unsigned
  52. * integer for use as an array index. If the signed char is negative,
  53. * we want to instead treat it as an 8-bit unsigned char, hence the
  54. * double cast.
  55. */
  56. #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
  57. /* Enter a start condition. This macro really ought to take a parameter,
  58. * but we do it the disgusting crufty way forced on us by the ()-less
  59. * definition of BEGIN.
  60. */
  61. #define BEGIN yy_start = 1 + 2 *
  62. /* Translate the current start state into a value that can be later handed
  63. * to BEGIN to return to the state. The YYSTATE alias is for lex
  64. * compatibility.
  65. */
  66. #define YY_START ((yy_start - 1) / 2)
  67. #define YYSTATE YY_START
  68. /* Action number for EOF rule of a given start state. */
  69. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  70. /* Special action meaning "start processing a new file". */
  71. #define YY_NEW_FILE yyrestart( yyin )
  72. #define YY_END_OF_BUFFER_CHAR 0
  73. /* Size of default input buffer. */
  74. #define YY_BUF_SIZE 16384
  75. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  76. extern int yyleng;
  77. extern FILE *yyin, *yyout;
  78. #define EOB_ACT_CONTINUE_SCAN 0
  79. #define EOB_ACT_END_OF_FILE 1
  80. #define EOB_ACT_LAST_MATCH 2
  81. /* The funky do-while in the following #define is used to turn the definition
  82. * int a single C statement (which needs a semi-colon terminator). This
  83. * avoids problems with code like:
  84. *
  85. * if ( condition_holds )
  86. * yyless( 5 );
  87. * else
  88. * do_something_else();
  89. *
  90. * Prior to using the do-while the compiler would get upset at the
  91. * "else" because it interpreted the "if" statement as being all
  92. * done when it reached the ';' after the yyless() call.
  93. */
  94. /* Return all but the first 'n' matched characters back to the input stream. */
  95. #define yyless(n) \
  96. do \
  97. { \
  98. /* Undo effects of setting up yytext. */ \
  99. *yy_cp = yy_hold_char; \
  100. YY_RESTORE_YY_MORE_OFFSET \
  101. yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
  102. YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  103. } \
  104. while ( 0 )
  105. #define unput(c) yyunput( c, yytext_ptr )
  106. /* The following is because we cannot portably get our hands on size_t
  107. * (without autoconf's help, which isn't available because we want
  108. * flex-generated scanners to compile on their own).
  109. */
  110. typedef unsigned int yy_size_t;
  111. struct yy_buffer_state
  112. {
  113. FILE *yy_input_file;
  114. char *yy_ch_buf; /* input buffer */
  115. char *yy_buf_pos; /* current position in input buffer */
  116. /* Size of input buffer in bytes, not including room for EOB
  117. * characters.
  118. */
  119. yy_size_t yy_buf_size;
  120. /* Number of characters read into yy_ch_buf, not including EOB
  121. * characters.
  122. */
  123. int yy_n_chars;
  124. /* Whether we "own" the buffer - i.e., we know we created it,
  125. * and can realloc() it to grow it, and should free() it to
  126. * delete it.
  127. */
  128. int yy_is_our_buffer;
  129. /* Whether this is an "interactive" input source; if so, and
  130. * if we're using stdio for input, then we want to use getc()
  131. * instead of fread(), to make sure we stop fetching input after
  132. * each newline.
  133. */
  134. int yy_is_interactive;
  135. /* Whether we're considered to be at the beginning of a line.
  136. * If so, '^' rules will be active on the next match, otherwise
  137. * not.
  138. */
  139. int yy_at_bol;
  140. /* Whether to try to fill the input buffer when we reach the
  141. * end of it.
  142. */
  143. int yy_fill_buffer;
  144. int yy_buffer_status;
  145. #define YY_BUFFER_NEW 0
  146. #define YY_BUFFER_NORMAL 1
  147. /* When an EOF's been seen but there's still some text to process
  148. * then we mark the buffer as YY_EOF_PENDING, to indicate that we
  149. * shouldn't try reading from the input source any more. We might
  150. * still have a bunch of tokens to match, though, because of
  151. * possible backing-up.
  152. *
  153. * When we actually see the EOF, we change the status to "new"
  154. * (via yyrestart()), so that the user can continue scanning by
  155. * just pointing yyin at a new input file.
  156. */
  157. #define YY_BUFFER_EOF_PENDING 2
  158. };
  159. static YY_BUFFER_STATE yy_current_buffer = 0;
  160. /* We provide macros for accessing buffer states in case in the
  161. * future we want to put the buffer states in a more general
  162. * "scanner state".
  163. */
  164. #define YY_CURRENT_BUFFER yy_current_buffer
  165. /* yy_hold_char holds the character lost when yytext is formed. */
  166. static char yy_hold_char;
  167. static int yy_n_chars; /* number of characters read into yy_ch_buf */
  168. int yyleng;
  169. /* Points to current character in buffer. */
  170. static char *yy_c_buf_p = (char *) 0;
  171. static int yy_init = 1; /* whether we need to initialize */
  172. static int yy_start = 0; /* start state number */
  173. /* Flag which is used to allow yywrap()'s to do buffer switches
  174. * instead of setting up a fresh yyin. A bit of a hack ...
  175. */
  176. static int yy_did_buffer_switch_on_eof;
  177. void yyrestart YY_PROTO(( FILE *input_file ));
  178. void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  179. void yy_load_buffer_state YY_PROTO(( void ));
  180. YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  181. void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  182. void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  183. void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  184. #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
  185. YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
  186. YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
  187. YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
  188. static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
  189. static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
  190. static void yy_flex_free YY_PROTO(( void * ));
  191. #define yy_new_buffer yy_create_buffer
  192. #define yy_set_interactive(is_interactive) \
  193. { \
  194. if ( ! yy_current_buffer ) \
  195. yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
  196. yy_current_buffer->yy_is_interactive = is_interactive; \
  197. }
  198. #define yy_set_bol(at_bol) \
  199. { \
  200. if ( ! yy_current_buffer ) \
  201. yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
  202. yy_current_buffer->yy_at_bol = at_bol; \
  203. }
  204. #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
  205. #define YY_USES_REJECT
  206. #define yywrap() 1
  207. #define YY_SKIP_YYWRAP
  208. typedef unsigned char YY_CHAR;
  209. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  210. typedef int yy_state_type;
  211. extern char *yytext;
  212. #define yytext_ptr yytext
  213. static yy_state_type yy_get_previous_state YY_PROTO(( void ));
  214. static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  215. static int yy_get_next_buffer YY_PROTO(( void ));
  216. static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
  217. /* Done after the current pattern has been matched and before the
  218. * corresponding action - sets up yytext.
  219. */
  220. #define YY_DO_BEFORE_ACTION \
  221. yytext_ptr = yy_bp; \
  222. yyleng = (int) (yy_cp - yy_bp); \
  223. yy_hold_char = *yy_cp; \
  224. *yy_cp = '\0'; \
  225. yy_c_buf_p = yy_cp;
  226. #define YY_NUM_RULES 40
  227. #define YY_END_OF_BUFFER 41
  228. static yyconst short int yy_acclist[281] =
  229. { 0,
  230. 37, 37, 41, 37, 39, 40, 38, 39, 40, 3,
  231. 40, 39, 40, 37, 39, 40, 39, 40, 37, 39,
  232. 40, 37, 39, 40, 39, 40, 34, 35, 37, 39,
  233. 40, 34, 35, 37, 39, 40, 34, 35, 37, 39,
  234. 40, 34, 35, 37, 39, 40, 33, 39, 40, 39,
  235. 40, 37, 39, 40, 37, 39, 40, 37, 39, 40,
  236. 37, 39, 40, 37, 39, 40, 17, 37, 39, 40,
  237. 37, 39, 40, 37, 39, 40, 37, 39, 40, 18,
  238. 37, 39, 40, 37, 37, 38, 1, 2, 37, 37,
  239. 37, 37, 37, 37, 37, 2, 37, 34, 35, 37,
  240. 37, 34, 35, 37, 34, 35, 37, 34, 37, 37,
  241. 37, 37, 37, 37, 37, 37, 37, 17, 37, 37,
  242. 37, 37, 37, 37, 37, 37, 37, 12, 13, 37,
  243. 6, 37, 11, 5, 37, 37, 37, 35, 37, 35,
  244. 37, 34, 37, 37, 37, 37, 37, 36, 37, 37,
  245. 37, 15, 37, 37, 37, 37, 37, 37, 37, 37,
  246. 25, 37, 37, 37, 37, 37, 37, 18, 37, 37,
  247. 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
  248. 37, 37, 37, 37, 37, 37, 30, 37, 27, 37,
  249. 37, 37, 23, 37, 37, 8, 37, 37, 37, 37,
  250. 27, 26, 37, 37, 37, 37, 37, 35, 37, 35,
  251. 37, 37, 37, 37, 37, 37, 37, 37, 37, 9,
  252. 37, 7, 37, 37, 37, 37, 37, 37, 37, 37,
  253. 14, 37, 37, 37, 37, 37, 37, 37, 29, 37,
  254. 32, 37, 37, 37, 29, 28, 37, 37, 37, 37,
  255. 31, 37, 37, 37, 24, 37, 22, 37, 21, 37,
  256. 19, 37, 4, 37, 37, 37, 10, 37, 37, 37,
  257. 37, 37, 37, 37, 16, 37, 37, 37, 20, 37
  258. } ;
  259. static yyconst short int yy_accept[198] =
  260. { 0,
  261. 1, 2, 3, 4, 7, 10, 12, 14, 17, 19,
  262. 22, 25, 27, 32, 37, 42, 47, 50, 52, 55,
  263. 58, 61, 64, 67, 71, 74, 77, 80, 84, 85,
  264. 86, 87, 88, 88, 88, 90, 91, 92, 93, 94,
  265. 95, 96, 97, 98, 101, 102, 105, 108, 110, 111,
  266. 112, 113, 114, 115, 116, 117, 118, 120, 121, 122,
  267. 123, 124, 125, 126, 127, 128, 128, 128, 129, 130,
  268. 131, 132, 133, 134, 135, 136, 137, 138, 140, 142,
  269. 144, 145, 146, 147, 148, 150, 151, 152, 154, 155,
  270. 156, 157, 158, 159, 160, 161, 163, 164, 165, 166,
  271. 167, 168, 170, 170, 170, 171, 172, 173, 174, 175,
  272. 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
  273. 186, 187, 189, 191, 192, 193, 195, 196, 198, 199,
  274. 200, 201, 202, 202, 204, 205, 206, 207, 208, 210,
  275. 212, 213, 214, 215, 216, 217, 218, 219, 220, 222,
  276. 224, 225, 226, 227, 227, 228, 229, 230, 231, 233,
  277. 234, 235, 236, 237, 238, 239, 241, 243, 244, 245,
  278. 246, 248, 249, 250, 251, 253, 254, 255, 257, 259,
  279. 261, 263, 265, 266, 267, 269, 270, 271, 272, 273,
  280. 274, 275, 277, 278, 279, 281, 281
  281. } ;
  282. static yyconst YY_CHAR yy_ec[256] =
  283. { 0,
  284. 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
  285. 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
  286. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  287. 1, 2, 1, 1, 5, 1, 1, 1, 1, 1,
  288. 1, 1, 6, 1, 7, 8, 9, 10, 11, 12,
  289. 13, 13, 14, 15, 15, 15, 15, 16, 1, 1,
  290. 17, 1, 18, 1, 20, 1, 21, 22, 23, 24,
  291. 25, 1, 26, 1, 27, 28, 29, 30, 31, 32,
  292. 1, 33, 34, 35, 36, 37, 38, 39, 40, 1,
  293. 1, 19, 1, 1, 1, 1, 20, 1, 21, 22,
  294. 23, 24, 25, 1, 26, 1, 27, 28, 29, 30,
  295. 31, 32, 1, 33, 34, 35, 36, 37, 38, 39,
  296. 40, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  297. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  298. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  299. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  300. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  301. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  302. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  303. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  304. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  305. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  306. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  307. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  308. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  309. 1, 1, 1, 1, 1
  310. } ;
  311. static yyconst YY_CHAR yy_meta[41] =
  312. { 0,
  313. 1, 2, 2, 2, 1, 2, 1, 1, 2, 1,
  314. 1, 1, 1, 1, 1, 1, 2, 1, 2, 1,
  315. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  316. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
  317. } ;
  318. static yyconst short int yy_base[198] =
  319. { 0,
  320. 0, 0, 499, 490, 495, 500, 500, 38, 12, 39,
  321. 488, 477, 68, 34, 40, 48, 500, 475, 37, 56,
  322. 59, 48, 69, 62, 78, 80, 84, 88, 485, 484,
  323. 489, 500, 455, 469, 479, 93, 97, 77, 100, 105,
  324. 114, 500, 115, 121, 127, 133, 139, 145, 152, 96,
  325. 64, 160, 161, 163, 162, 164, 478, 166, 168, 165,
  326. 98, 172, 167, 169, 173, 457, 450, 500, 500, 171,
  327. 500, 174, 500, 500, 201, 206, 214, 220, 179, 475,
  328. 227, 235, 103, 241, 473, 236, 249, 472, 250, 176,
  329. 251, 177, 253, 254, 175, 471, 256, 258, 257, 259,
  330. 261, 470, 448, 441, 255, 260, 285, 459, 465, 291,
  331. 297, 207, 305, 464, 265, 306, 267, 312, 313, 314,
  332. 315, 463, 462, 316, 317, 461, 318, 459, 319, 320,
  333. 321, 500, 428, 457, 322, 353, 271, 359, 365, 456,
  334. 323, 264, 326, 328, 330, 351, 336, 335, 454, 421,
  335. 374, 375, 376, 401, 377, 376, 384, 405, 344, 385,
  336. 392, 393, 396, 397, 398, 341, 339, 399, 401, 500,
  337. 338, 407, 425, 431, 334, 402, 407, 333, 273, 271,
  338. 440, 268, 441, 211, 180, 404, 442, 448, 422, 450,
  339. 406, 170, 451, 453, 113, 500, 42
  340. } ;
  341. static yyconst short int yy_def[198] =
  342. { 0,
  343. 196, 1, 196, 197, 196, 196, 196, 197, 196, 197,
  344. 197, 196, 197, 13, 13, 13, 196, 196, 197, 197,
  345. 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
  346. 196, 196, 196, 196, 197, 197, 197, 197, 197, 197,
  347. 197, 196, 197, 13, 43, 13, 13, 13, 43, 197,
  348. 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
  349. 197, 197, 197, 197, 197, 196, 196, 196, 196, 197,
  350. 196, 197, 196, 196, 43, 43, 43, 43, 197, 48,
  351. 43, 43, 82, 82, 197, 197, 197, 197, 197, 197,
  352. 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
  353. 197, 197, 196, 196, 197, 197, 43, 77, 197, 43,
  354. 78, 197, 197, 197, 197, 197, 197, 197, 197, 197,
  355. 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
  356. 197, 196, 196, 197, 197, 197, 136, 136, 43, 197,
  357. 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
  358. 197, 197, 197, 196, 197, 43, 197, 197, 197, 197,
  359. 197, 197, 197, 197, 197, 197, 197, 197, 197, 196,
  360. 197, 43, 43, 43, 197, 197, 197, 197, 197, 197,
  361. 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
  362. 197, 197, 197, 197, 197, 0, 196
  363. } ;
  364. static yyconst short int yy_nxt[541] =
  365. { 0,
  366. 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
  367. 13, 14, 15, 15, 16, 4, 17, 4, 18, 19,
  368. 20, 21, 4, 4, 4, 4, 22, 4, 23, 24,
  369. 4, 25, 4, 26, 27, 4, 4, 4, 4, 28,
  370. 32, 33, 29, 34, 30, 30, 30, 46, 47, 47,
  371. 47, 47, 47, 47, 47, 30, 35, 48, 48, 48,
  372. 48, 48, 48, 30, 50, 36, 30, 37, 38, 30,
  373. 39, 30, 40, 54, 41, 43, 30, 44, 44, 44,
  374. 44, 44, 44, 45, 30, 30, 51, 30, 55, 53,
  375. 52, 30, 57, 86, 68, 30, 58, 59, 69, 56,
  376. 30, 71, 61, 30, 30, 30, 73, 30, 60, 63,
  377. 65, 70, 30, 64, 62, 74, 113, 114, 96, 72,
  378. 30, 30, 30, 85, 75, 75, 76, 77, 77, 77,
  379. 48, 48, 48, 48, 48, 48, 78, 78, 78, 78,
  380. 78, 79, 48, 48, 48, 48, 48, 80, 80, 80,
  381. 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
  382. 81, 82, 82, 83, 84, 84, 84, 30, 30, 30,
  383. 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
  384. 30, 30, 30, 30, 30, 91, 30, 30, 101, 88,
  385. 89, 97, 87, 92, 110, 100, 120, 95, 105, 121,
  386. 90, 93, 98, 94, 99, 123, 102, 106, 107, 126,
  387. 77, 77, 77, 107, 30, 77, 77, 77, 30, 108,
  388. 109, 107, 110, 109, 109, 109, 109, 109, 109, 79,
  389. 79, 79, 79, 79, 79, 110, 111, 111, 111, 111,
  390. 111, 112, 43, 30, 84, 84, 84, 84, 84, 84,
  391. 114, 114, 114, 114, 114, 114, 30, 30, 30, 115,
  392. 30, 30, 30, 30, 30, 30, 30, 30, 30, 116,
  393. 117, 30, 30, 122, 30, 30, 118, 119, 30, 129,
  394. 30, 130, 131, 134, 157, 158, 124, 125, 127, 128,
  395. 141, 160, 143, 135, 136, 136, 137, 138, 138, 138,
  396. 139, 139, 139, 139, 139, 140, 112, 112, 112, 112,
  397. 112, 112, 43, 30, 114, 114, 114, 114, 114, 30,
  398. 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
  399. 30, 144, 145, 30, 147, 30, 142, 30, 151, 149,
  400. 30, 30, 30, 30, 146, 30, 30, 159, 30, 153,
  401. 152, 30, 150, 148, 162, 161, 166, 163, 30, 155,
  402. 156, 165, 138, 138, 138, 138, 138, 138, 158, 158,
  403. 158, 158, 158, 158, 140, 140, 140, 140, 140, 140,
  404. 164, 30, 30, 30, 30, 172, 172, 173, 174, 174,
  405. 174, 156, 30, 158, 158, 158, 158, 158, 171, 30,
  406. 30, 169, 167, 30, 30, 30, 30, 175, 30, 30,
  407. 168, 30, 156, 30, 30, 177, 174, 174, 174, 174,
  408. 174, 174, 170, 178, 185, 180, 179, 176, 30, 30,
  409. 182, 193, 188, 181, 174, 174, 174, 174, 183, 184,
  410. 184, 184, 184, 184, 184, 184, 186, 30, 30, 30,
  411. 184, 184, 184, 184, 184, 30, 191, 30, 30, 187,
  412. 30, 30, 189, 30, 30, 154, 30, 190, 30, 30,
  413. 30, 43, 107, 29, 133, 195, 132, 30, 30, 30,
  414. 30, 192, 30, 104, 103, 30, 30, 194, 67, 66,
  415. 31, 30, 30, 49, 42, 30, 31, 30, 196, 3,
  416. 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
  417. 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
  418. 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
  419. 196, 196, 196, 196, 196, 196, 196, 196, 196, 196
  420. } ;
  421. static yyconst short int yy_chk[541] =
  422. { 0,
  423. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  424. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  425. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  426. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  427. 8, 9, 197, 9, 19, 8, 10, 14, 14, 15,
  428. 15, 15, 15, 15, 15, 22, 10, 16, 16, 16,
  429. 16, 16, 16, 20, 19, 10, 21, 10, 10, 24,
  430. 10, 51, 10, 22, 10, 13, 23, 13, 13, 13,
  431. 13, 13, 13, 13, 38, 25, 20, 26, 23, 21,
  432. 20, 27, 24, 51, 36, 28, 24, 25, 37, 23,
  433. 36, 39, 26, 50, 37, 61, 40, 39, 25, 27,
  434. 28, 38, 40, 27, 26, 41, 83, 83, 61, 39,
  435. 195, 41, 43, 50, 43, 43, 43, 43, 43, 43,
  436. 44, 44, 44, 44, 44, 44, 45, 45, 45, 45,
  437. 45, 45, 46, 46, 46, 46, 46, 46, 47, 47,
  438. 47, 47, 47, 47, 48, 48, 48, 48, 48, 48,
  439. 48, 49, 49, 49, 49, 49, 49, 52, 53, 55,
  440. 54, 56, 60, 58, 63, 59, 64, 192, 70, 62,
  441. 65, 72, 95, 90, 92, 56, 79, 185, 64, 53,
  442. 54, 62, 52, 58, 79, 63, 90, 60, 70, 90,
  443. 55, 59, 62, 59, 62, 92, 65, 72, 75, 95,
  444. 75, 75, 75, 76, 112, 76, 76, 76, 184, 76,
  445. 76, 77, 112, 77, 77, 77, 77, 77, 77, 78,
  446. 78, 78, 78, 78, 78, 78, 81, 81, 81, 81,
  447. 81, 81, 82, 86, 82, 82, 82, 82, 82, 82,
  448. 84, 84, 84, 84, 84, 84, 87, 89, 91, 86,
  449. 93, 94, 105, 97, 99, 98, 100, 106, 101, 86,
  450. 86, 142, 115, 91, 117, 182, 87, 89, 180, 99,
  451. 179, 100, 101, 105, 137, 137, 93, 94, 97, 98,
  452. 115, 142, 117, 106, 107, 107, 107, 107, 107, 107,
  453. 110, 110, 110, 110, 110, 110, 111, 111, 111, 111,
  454. 111, 111, 113, 116, 113, 113, 113, 113, 113, 118,
  455. 119, 120, 121, 124, 125, 127, 129, 130, 131, 135,
  456. 141, 118, 119, 143, 121, 144, 116, 145, 129, 125,
  457. 178, 175, 148, 147, 120, 171, 167, 141, 166, 131,
  458. 130, 159, 127, 124, 144, 143, 148, 145, 146, 135,
  459. 136, 147, 136, 136, 136, 136, 136, 136, 138, 138,
  460. 138, 138, 138, 138, 139, 139, 139, 139, 139, 139,
  461. 146, 151, 152, 153, 155, 156, 156, 156, 156, 156,
  462. 156, 157, 160, 157, 157, 157, 157, 157, 155, 161,
  463. 162, 153, 151, 163, 164, 165, 168, 160, 169, 176,
  464. 152, 186, 158, 191, 177, 162, 172, 172, 172, 172,
  465. 172, 172, 154, 163, 176, 165, 164, 161, 150, 189,
  466. 169, 191, 186, 168, 173, 173, 173, 173, 173, 173,
  467. 174, 174, 174, 174, 174, 174, 177, 181, 183, 187,
  468. 183, 183, 183, 183, 183, 188, 189, 190, 193, 181,
  469. 194, 149, 187, 140, 134, 133, 128, 188, 126, 123,
  470. 122, 114, 109, 108, 104, 194, 103, 102, 96, 88,
  471. 85, 190, 80, 67, 66, 57, 35, 193, 34, 33,
  472. 31, 30, 29, 18, 12, 11, 5, 4, 3, 196,
  473. 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
  474. 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
  475. 196, 196, 196, 196, 196, 196, 196, 196, 196, 196,
  476. 196, 196, 196, 196, 196, 196, 196, 196, 196, 196
  477. } ;
  478. static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
  479. static char *yy_full_match;
  480. static int yy_lp;
  481. #define REJECT \
  482. { \
  483. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
  484. yy_cp = yy_full_match; /* restore poss. backed-over text */ \
  485. ++yy_lp; \
  486. goto find_rule; \
  487. }
  488. #define yymore() yymore_used_but_not_detected
  489. #define YY_MORE_ADJ 0
  490. #define YY_RESTORE_YY_MORE_OFFSET
  491. char *yytext;
  492. #line 1 "tnadmin.l"
  493. #define INITIAL 0
  494. /*------------------------------------------------------------------
  495. Copyright (c) 1998-1999 Microsoft Corporation
  496. tnadmin.l generates tnadminl.c (using flex)
  497. vikram (vikram_krc@bigfoot.com)
  498. This lex file recognises tokens in the command line and passes it to the
  499. command line parser.(tnadmin.y)
  500. -----------------------------------------------------------------*/
  501. #line 13 "tnadmin.l"
  502. #include <string.h>
  503. #include <stdlib.h>
  504. #include "tnadminy.h"
  505. #define YY_NEVER_INTERACTIVE 1
  506. #define fileno _fileno
  507. #define strdup _strdup
  508. int nMoccur=-1;
  509. char **filelist;
  510. int currentfile=1;
  511. //between yacc and lex
  512. int g_fMessage=0;
  513. int g_fComp=1;
  514. int g_fNormal=1;
  515. char * szCompname=NULL;
  516. #line 619 "tnadminl.c"
  517. /* Macros after this point can all be overridden by user definitions in
  518. * section 1.
  519. */
  520. #ifndef YY_SKIP_YYWRAP
  521. #ifdef __cplusplus
  522. extern "C" int yywrap YY_PROTO(( void ));
  523. #else
  524. extern int yywrap YY_PROTO(( void ));
  525. #endif
  526. #endif
  527. #ifndef YY_NO_UNPUT
  528. static void yyunput YY_PROTO(( int c, char *buf_ptr ));
  529. #endif
  530. #ifndef yytext_ptr
  531. static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
  532. #endif
  533. #ifdef YY_NEED_STRLEN
  534. static int yy_flex_strlen YY_PROTO(( yyconst char * ));
  535. #endif
  536. #ifndef YY_NO_INPUT
  537. #ifdef __cplusplus
  538. static int yyinput YY_PROTO(( void ));
  539. #else
  540. static int input YY_PROTO(( void ));
  541. #endif
  542. #endif
  543. #if YY_STACK_USED
  544. static int yy_start_stack_ptr = 0;
  545. static int yy_start_stack_depth = 0;
  546. static int *yy_start_stack = 0;
  547. #ifndef YY_NO_PUSH_STATE
  548. static void yy_push_state YY_PROTO(( int new_state ));
  549. #endif
  550. #ifndef YY_NO_POP_STATE
  551. static void yy_pop_state YY_PROTO(( void ));
  552. #endif
  553. #ifndef YY_NO_TOP_STATE
  554. static int yy_top_state YY_PROTO(( void ));
  555. #endif
  556. #else
  557. #define YY_NO_PUSH_STATE 1
  558. #define YY_NO_POP_STATE 1
  559. #define YY_NO_TOP_STATE 1
  560. #endif
  561. #ifdef YY_MALLOC_DECL
  562. YY_MALLOC_DECL
  563. #else
  564. #if __STDC__
  565. #ifndef __cplusplus
  566. #include <stdlib.h>
  567. #endif
  568. #else
  569. /* Just try to get by without declaring the routines. This will fail
  570. * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
  571. * or sizeof(void*) != sizeof(int).
  572. */
  573. #endif
  574. #endif
  575. /* Amount of stuff to slurp up with each read. */
  576. #ifndef YY_READ_BUF_SIZE
  577. #define YY_READ_BUF_SIZE 8192
  578. #endif
  579. /* Copy whatever the last rule matched to the standard output. */
  580. #ifndef ECHO
  581. /* This used to be an fputs(), but since the string might contain NUL's,
  582. * we now use fwrite().
  583. */
  584. #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
  585. #endif
  586. /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
  587. * is returned in "result".
  588. */
  589. #ifndef YY_INPUT
  590. #define YY_INPUT(buf,result,max_size) \
  591. if ( yy_current_buffer->yy_is_interactive ) \
  592. { \
  593. int c = '*', n; \
  594. for ( n = 0; n < max_size && \
  595. (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
  596. buf[n] = (char) c; \
  597. if ( c == '\n' ) \
  598. buf[n++] = (char) c; \
  599. if ( c == EOF && ferror( yyin ) ) \
  600. YY_FATAL_ERROR( "input in flex scanner failed" ); \
  601. result = n; \
  602. } \
  603. else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
  604. && ferror( yyin ) ) \
  605. YY_FATAL_ERROR( "input in flex scanner failed" );
  606. #endif
  607. /* No semi-colon after return; correct usage is to write "yyterminate();" -
  608. * we don't want an extra ';' after the "return" because that will cause
  609. * some compilers to complain about unreachable statements.
  610. */
  611. #ifndef yyterminate
  612. #define yyterminate() return YY_NULL
  613. #endif
  614. /* Number of entries by which start-condition stack grows. */
  615. #ifndef YY_START_STACK_INCR
  616. #define YY_START_STACK_INCR 25
  617. #endif
  618. /* Report a fatal error. */
  619. #ifndef YY_FATAL_ERROR
  620. #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  621. #endif
  622. /* Default declaration of generated scanner - a define so the user can
  623. * easily add parameters.
  624. */
  625. #ifndef YY_DECL
  626. #define YY_DECL int yylex YY_PROTO(( void ))
  627. #endif
  628. /* Code executed at the beginning of each rule, after yytext and yyleng
  629. * have been set up.
  630. */
  631. #ifndef YY_USER_ACTION
  632. #define YY_USER_ACTION
  633. #endif
  634. /* Code executed at the end of each rule. */
  635. #ifndef YY_BREAK
  636. #define YY_BREAK break;
  637. #endif
  638. #define YY_RULE_SETUP \
  639. YY_USER_ACTION
  640. YY_DECL
  641. {
  642. register yy_state_type yy_current_state;
  643. register char *yy_cp, *yy_bp;
  644. register int yy_act;
  645. #line 54 "tnadmin.l"
  646. #line 773 "tnadminl.c"
  647. if ( yy_init )
  648. {
  649. yy_init = 0;
  650. #ifdef YY_USER_INIT
  651. YY_USER_INIT;
  652. #endif
  653. if ( ! yy_start )
  654. yy_start = 1; /* first start state */
  655. if ( ! yyin )
  656. yyin = stdin;
  657. if ( ! yyout )
  658. yyout = stdout;
  659. if ( ! yy_current_buffer )
  660. yy_current_buffer =
  661. yy_create_buffer( yyin, YY_BUF_SIZE );
  662. yy_load_buffer_state();
  663. }
  664. while ( 1 ) /* loops until end-of-file is reached */
  665. {
  666. yy_cp = yy_c_buf_p;
  667. /* Support of yytext. */
  668. *yy_cp = yy_hold_char;
  669. /* yy_bp points to the position in yy_ch_buf of the start of
  670. * the current run.
  671. */
  672. yy_bp = yy_cp;
  673. yy_current_state = yy_start;
  674. yy_state_ptr = yy_state_buf;
  675. *yy_state_ptr++ = yy_current_state;
  676. yy_match:
  677. do
  678. {
  679. register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
  680. while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  681. {
  682. yy_current_state = (int) yy_def[yy_current_state];
  683. if ( yy_current_state >= 197 )
  684. yy_c = yy_meta[(unsigned int) yy_c];
  685. }
  686. yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  687. *yy_state_ptr++ = yy_current_state;
  688. ++yy_cp;
  689. }
  690. while ( yy_base[yy_current_state] != 500 );
  691. yy_find_action:
  692. yy_current_state = *--yy_state_ptr;
  693. yy_lp = yy_accept[yy_current_state];
  694. find_rule: /* we branch to this label when backing up */
  695. for ( ; ; ) /* until we find what rule we matched */
  696. {
  697. if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
  698. {
  699. yy_act = yy_acclist[yy_lp];
  700. {
  701. yy_full_match = yy_cp;
  702. break;
  703. }
  704. }
  705. --yy_cp;
  706. yy_current_state = *--yy_state_ptr;
  707. yy_lp = yy_accept[yy_current_state];
  708. }
  709. YY_DO_BEFORE_ACTION;
  710. do_action: /* This label is used only to access EOF actions. */
  711. switch ( yy_act )
  712. { /* beginning of action switch */
  713. case 1:
  714. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  715. yy_c_buf_p = yy_cp = yy_bp + 1;
  716. YY_DO_BEFORE_ACTION; /* set up yytext again */
  717. YY_RULE_SETUP
  718. #line 56 "tnadmin.l"
  719. {return _ENDINPUT;}
  720. YY_BREAK
  721. case 2:
  722. YY_RULE_SETUP
  723. #line 57 "tnadmin.l"
  724. {if(g_fNormal==0)REJECT;return _HELP;}
  725. YY_BREAK
  726. case YY_STATE_EOF(INITIAL):
  727. #line 58 "tnadmin.l"
  728. {return 0;}
  729. YY_BREAK
  730. case 3:
  731. YY_RULE_SETUP
  732. #line 59 "tnadmin.l"
  733. {return(0);}
  734. YY_BREAK
  735. case 4:
  736. YY_RULE_SETUP
  737. #line 60 "tnadmin.l"
  738. {if(g_fNormal==0)REJECT;return(_TNADMIN);}
  739. YY_BREAK
  740. case 5:
  741. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  742. yy_c_buf_p = yy_cp = yy_bp + 2;
  743. YY_DO_BEFORE_ACTION; /* set up yytext again */
  744. YY_RULE_SETUP
  745. #line 61 "tnadmin.l"
  746. {if(g_fNormal==0)REJECT;return(_tU);}
  747. YY_BREAK
  748. case 6:
  749. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  750. yy_c_buf_p = yy_cp = yy_bp + 2;
  751. YY_DO_BEFORE_ACTION; /* set up yytext again */
  752. YY_RULE_SETUP
  753. #line 62 "tnadmin.l"
  754. {if(g_fNormal==0)REJECT;return(_tP);}
  755. YY_BREAK
  756. case 7:
  757. YY_RULE_SETUP
  758. #line 63 "tnadmin.l"
  759. {if(g_fNormal==0)REJECT;return(_START);}
  760. YY_BREAK
  761. case 8:
  762. YY_RULE_SETUP
  763. #line 64 "tnadmin.l"
  764. {if(g_fNormal==0)REJECT;return( _STOP);}
  765. YY_BREAK
  766. case 9:
  767. YY_RULE_SETUP
  768. #line 65 "tnadmin.l"
  769. {if(g_fNormal==0)REJECT;return(_PAUSE);}
  770. YY_BREAK
  771. case 10:
  772. YY_RULE_SETUP
  773. #line 66 "tnadmin.l"
  774. {if(g_fNormal==0)REJECT;return(_CONTINUE);}
  775. YY_BREAK
  776. case 11:
  777. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  778. yy_c_buf_p = yy_cp = yy_bp + 2;
  779. YY_DO_BEFORE_ACTION; /* set up yytext again */
  780. YY_RULE_SETUP
  781. #line 67 "tnadmin.l"
  782. {if(g_fNormal==0)REJECT;return(_S);}
  783. YY_BREAK
  784. case 12:
  785. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  786. yy_c_buf_p = yy_cp = yy_bp + 2;
  787. YY_DO_BEFORE_ACTION; /* set up yytext again */
  788. YY_RULE_SETUP
  789. #line 68 "tnadmin.l"
  790. {if(g_fNormal==0)REJECT;return(_K);}
  791. YY_BREAK
  792. case 13:
  793. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  794. yy_c_buf_p = yy_cp = yy_bp + 2;
  795. YY_DO_BEFORE_ACTION; /* set up yytext again */
  796. YY_RULE_SETUP
  797. #line 69 "tnadmin.l"
  798. {if(g_fNormal==0)REJECT;nMoccur=0;return(_M);}
  799. YY_BREAK
  800. case 14:
  801. YY_RULE_SETUP
  802. #line 70 "tnadmin.l"
  803. {if(g_fNormal==0)REJECT;return(_CONFIG);}
  804. YY_BREAK
  805. case 15:
  806. YY_RULE_SETUP
  807. #line 71 "tnadmin.l"
  808. {if(g_fNormal==0)REJECT;return(_DOM);}
  809. YY_BREAK
  810. case 16:
  811. YY_RULE_SETUP
  812. #line 72 "tnadmin.l"
  813. {if(g_fNormal==0)REJECT;return(_CTRLKEYMAP);}
  814. YY_BREAK
  815. case 17:
  816. YY_RULE_SETUP
  817. #line 73 "tnadmin.l"
  818. {if(g_fNormal==0)REJECT;return(_N);}
  819. YY_BREAK
  820. case 18:
  821. YY_RULE_SETUP
  822. #line 74 "tnadmin.l"
  823. {if(g_fNormal==0)REJECT;return(_Y);}
  824. YY_BREAK
  825. case 19:
  826. YY_RULE_SETUP
  827. #line 75 "tnadmin.l"
  828. {if(g_fNormal==0)REJECT;return(_TIMEOUT);}
  829. YY_BREAK
  830. case 20:
  831. YY_RULE_SETUP
  832. #line 76 "tnadmin.l"
  833. {if(g_fNormal==0)REJECT;return(_TIMEOUTACTIVE);}
  834. YY_BREAK
  835. case 21:
  836. YY_RULE_SETUP
  837. #line 77 "tnadmin.l"
  838. {if(g_fNormal==0)REJECT;return(_MAXFAIL);}
  839. YY_BREAK
  840. case 22:
  841. YY_RULE_SETUP
  842. #line 78 "tnadmin.l"
  843. {if(g_fNormal==0)REJECT;return(_MAXCONN);}
  844. YY_BREAK
  845. case 23:
  846. YY_RULE_SETUP
  847. #line 79 "tnadmin.l"
  848. {if(g_fNormal==0)REJECT;return(_PORT);}
  849. YY_BREAK
  850. case 24:
  851. YY_RULE_SETUP
  852. #line 80 "tnadmin.l"
  853. {if(g_fNormal==0)REJECT;return(_KILLALL);}
  854. YY_BREAK
  855. case 25:
  856. YY_RULE_SETUP
  857. #line 81 "tnadmin.l"
  858. {if(g_fNormal==0)REJECT;return(_SEC);}
  859. YY_BREAK
  860. case 26:
  861. YY_RULE_SETUP
  862. #line 82 "tnadmin.l"
  863. {if(g_fNormal==0)REJECT;return _MINUSNTLM;}
  864. YY_BREAK
  865. case 27:
  866. YY_RULE_SETUP
  867. #line 83 "tnadmin.l"
  868. {if(g_fNormal==0)REJECT;return _PLUSNTLM;}
  869. YY_BREAK
  870. case 28:
  871. YY_RULE_SETUP
  872. #line 84 "tnadmin.l"
  873. {if(g_fNormal==0)REJECT;return _MINUSPASSWD;}
  874. YY_BREAK
  875. case 29:
  876. YY_RULE_SETUP
  877. #line 85 "tnadmin.l"
  878. {if(g_fNormal==0)REJECT;return _PLUSPASSWD;}
  879. YY_BREAK
  880. case 30:
  881. YY_RULE_SETUP
  882. #line 86 "tnadmin.l"
  883. {if(g_fNormal==0)REJECT;return(_MODE);}
  884. YY_BREAK
  885. case 31:
  886. YY_RULE_SETUP
  887. #line 87 "tnadmin.l"
  888. {if(g_fNormal==0)REJECT;return(_CONSOLE);}
  889. YY_BREAK
  890. case 32:
  891. YY_RULE_SETUP
  892. #line 88 "tnadmin.l"
  893. {if(g_fNormal==0)REJECT;return(_STREAM);}
  894. YY_BREAK
  895. case 33:
  896. YY_RULE_SETUP
  897. #line 89 "tnadmin.l"
  898. {if(g_fNormal==0)REJECT;return(_EQ);}
  899. YY_BREAK
  900. case 34:
  901. YY_RULE_SETUP
  902. #line 90 "tnadmin.l"
  903. {if(g_fNormal==0)REJECT;return(_INTEGER);}
  904. YY_BREAK
  905. case 35:
  906. YY_RULE_SETUP
  907. #line 91 "tnadmin.l"
  908. {if(g_fNormal==0)REJECT;return(_TIME);}
  909. YY_BREAK
  910. case 36:
  911. YY_RULE_SETUP
  912. #line 92 "tnadmin.l"
  913. {if(g_fNormal==0)REJECT;return(_SESID);}
  914. YY_BREAK
  915. case 37:
  916. YY_RULE_SETUP
  917. #line 93 "tnadmin.l"
  918. {if(g_fComp==0)
  919. REJECT;
  920. szCompname=strdup(yytext);return(_COMPNAME);}
  921. YY_BREAK
  922. case 38:
  923. YY_RULE_SETUP
  924. #line 96 "tnadmin.l"
  925. {}
  926. YY_BREAK
  927. case 39:
  928. YY_RULE_SETUP
  929. #line 97 "tnadmin.l"
  930. {return _DUNNO;}
  931. YY_BREAK
  932. case 40:
  933. YY_RULE_SETUP
  934. #line 98 "tnadmin.l"
  935. ECHO;
  936. YY_BREAK
  937. #line 1081 "tnadminl.c"
  938. case YY_END_OF_BUFFER:
  939. {
  940. /* Amount of text matched not including the EOB char. */
  941. int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
  942. /* Undo the effects of YY_DO_BEFORE_ACTION. */
  943. *yy_cp = yy_hold_char;
  944. YY_RESTORE_YY_MORE_OFFSET
  945. if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
  946. {
  947. /* We're scanning a new file or input source. It's
  948. * possible that this happened because the user
  949. * just pointed yyin at a new source and called
  950. * yylex(). If so, then we have to assure
  951. * consistency between yy_current_buffer and our
  952. * globals. Here is the right place to do so, because
  953. * this is the first action (other than possibly a
  954. * back-up) that will match for the new input source.
  955. */
  956. yy_n_chars = yy_current_buffer->yy_n_chars;
  957. yy_current_buffer->yy_input_file = yyin;
  958. yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
  959. }
  960. /* Note that here we test for yy_c_buf_p "<=" to the position
  961. * of the first EOB in the buffer, since yy_c_buf_p will
  962. * already have been incremented past the NUL character
  963. * (since all states make transitions on EOB to the
  964. * end-of-buffer state). Contrast this with the test
  965. * in input().
  966. */
  967. if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  968. { /* This was really a NUL. */
  969. yy_state_type yy_next_state;
  970. yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
  971. yy_current_state = yy_get_previous_state();
  972. /* Okay, we're now positioned to make the NUL
  973. * transition. We couldn't have
  974. * yy_get_previous_state() go ahead and do it
  975. * for us because it doesn't know how to deal
  976. * with the possibility of jamming (and we don't
  977. * want to build jamming into it because then it
  978. * will run more slowly).
  979. */
  980. yy_next_state = yy_try_NUL_trans( yy_current_state );
  981. yy_bp = yytext_ptr + YY_MORE_ADJ;
  982. if ( yy_next_state )
  983. {
  984. /* Consume the NUL. */
  985. yy_cp = ++yy_c_buf_p;
  986. yy_current_state = yy_next_state;
  987. goto yy_match;
  988. }
  989. else
  990. {
  991. yy_cp = yy_c_buf_p;
  992. goto yy_find_action;
  993. }
  994. }
  995. else switch ( yy_get_next_buffer() )
  996. {
  997. case EOB_ACT_END_OF_FILE:
  998. {
  999. yy_did_buffer_switch_on_eof = 0;
  1000. if ( yywrap() )
  1001. {
  1002. /* Note: because we've taken care in
  1003. * yy_get_next_buffer() to have set up
  1004. * yytext, we can now set up
  1005. * yy_c_buf_p so that if some total
  1006. * hoser (like flex itself) wants to
  1007. * call the scanner after we return the
  1008. * YY_NULL, it'll still work - another
  1009. * YY_NULL will get returned.
  1010. */
  1011. yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  1012. yy_act = YY_STATE_EOF(YY_START);
  1013. goto do_action;
  1014. }
  1015. else
  1016. {
  1017. if ( ! yy_did_buffer_switch_on_eof )
  1018. YY_NEW_FILE;
  1019. }
  1020. break;
  1021. }
  1022. case EOB_ACT_CONTINUE_SCAN:
  1023. yy_c_buf_p =
  1024. yytext_ptr + yy_amount_of_matched_text;
  1025. yy_current_state = yy_get_previous_state();
  1026. yy_cp = yy_c_buf_p;
  1027. yy_bp = yytext_ptr + YY_MORE_ADJ;
  1028. goto yy_match;
  1029. case EOB_ACT_LAST_MATCH:
  1030. yy_c_buf_p =
  1031. &yy_current_buffer->yy_ch_buf[yy_n_chars];
  1032. yy_current_state = yy_get_previous_state();
  1033. yy_cp = yy_c_buf_p;
  1034. yy_bp = yytext_ptr + YY_MORE_ADJ;
  1035. goto yy_find_action;
  1036. }
  1037. break;
  1038. }
  1039. default:
  1040. YY_FATAL_ERROR(
  1041. "fatal flex scanner internal error--no action found" );
  1042. } /* end of action switch */
  1043. } /* end of scanning one token */
  1044. } /* end of yylex */
  1045. /* yy_get_next_buffer - try to read in a new buffer
  1046. *
  1047. * Returns a code representing an action:
  1048. * EOB_ACT_LAST_MATCH -
  1049. * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  1050. * EOB_ACT_END_OF_FILE - end of file
  1051. */
  1052. static int yy_get_next_buffer()
  1053. {
  1054. register char *dest = yy_current_buffer->yy_ch_buf;
  1055. register char *source = yytext_ptr;
  1056. register int number_to_move, i;
  1057. int ret_val;
  1058. if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  1059. YY_FATAL_ERROR(
  1060. "fatal flex scanner internal error--end of buffer missed" );
  1061. if ( yy_current_buffer->yy_fill_buffer == 0 )
  1062. { /* Don't try to fill the buffer, so this is an EOF. */
  1063. if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
  1064. {
  1065. /* We matched a single character, the EOB, so
  1066. * treat this as a final EOF.
  1067. */
  1068. return EOB_ACT_END_OF_FILE;
  1069. }
  1070. else
  1071. {
  1072. /* We matched some text prior to the EOB, first
  1073. * process it.
  1074. */
  1075. return EOB_ACT_LAST_MATCH;
  1076. }
  1077. }
  1078. /* Try to read more data. */
  1079. /* First move last chars to start of buffer. */
  1080. number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
  1081. for ( i = 0; i < number_to_move; ++i )
  1082. *(dest++) = *(source++);
  1083. if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  1084. /* don't do the read, it's not guaranteed to return an EOF,
  1085. * just force an EOF
  1086. */
  1087. yy_current_buffer->yy_n_chars = yy_n_chars = 0;
  1088. else
  1089. {
  1090. int num_to_read =
  1091. yy_current_buffer->yy_buf_size - number_to_move - 1;
  1092. while ( num_to_read <= 0 )
  1093. { /* Not enough room in the buffer - grow it. */
  1094. #ifdef YY_USES_REJECT
  1095. YY_FATAL_ERROR(
  1096. "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
  1097. #else
  1098. /* just a shorter name for the current buffer */
  1099. YY_BUFFER_STATE b = yy_current_buffer;
  1100. int yy_c_buf_p_offset =
  1101. (int) (yy_c_buf_p - b->yy_ch_buf);
  1102. if ( b->yy_is_our_buffer )
  1103. {
  1104. int new_size = b->yy_buf_size * 2;
  1105. if ( new_size <= 0 )
  1106. b->yy_buf_size += b->yy_buf_size / 8;
  1107. else
  1108. b->yy_buf_size *= 2;
  1109. b->yy_ch_buf = (char *)
  1110. /* Include room in for 2 EOB chars. */
  1111. yy_flex_realloc( (void *) b->yy_ch_buf,
  1112. b->yy_buf_size + 2 );
  1113. }
  1114. else
  1115. /* Can't grow it, we don't own it. */
  1116. b->yy_ch_buf = 0;
  1117. if ( ! b->yy_ch_buf )
  1118. YY_FATAL_ERROR(
  1119. "fatal error - scanner input buffer overflow" );
  1120. yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
  1121. num_to_read = yy_current_buffer->yy_buf_size -
  1122. number_to_move - 1;
  1123. #endif
  1124. }
  1125. if ( num_to_read > YY_READ_BUF_SIZE )
  1126. num_to_read = YY_READ_BUF_SIZE;
  1127. /* Read in more data. */
  1128. YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  1129. yy_n_chars, num_to_read );
  1130. yy_current_buffer->yy_n_chars = yy_n_chars;
  1131. }
  1132. if ( yy_n_chars == 0 )
  1133. {
  1134. if ( number_to_move == YY_MORE_ADJ )
  1135. {
  1136. ret_val = EOB_ACT_END_OF_FILE;
  1137. yyrestart( yyin );
  1138. }
  1139. else
  1140. {
  1141. ret_val = EOB_ACT_LAST_MATCH;
  1142. yy_current_buffer->yy_buffer_status =
  1143. YY_BUFFER_EOF_PENDING;
  1144. }
  1145. }
  1146. else
  1147. ret_val = EOB_ACT_CONTINUE_SCAN;
  1148. yy_n_chars += number_to_move;
  1149. yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1150. yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1151. yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
  1152. return ret_val;
  1153. }
  1154. /* yy_get_previous_state - get the state just before the EOB char was reached */
  1155. static yy_state_type yy_get_previous_state()
  1156. {
  1157. register yy_state_type yy_current_state;
  1158. register char *yy_cp;
  1159. yy_current_state = yy_start;
  1160. yy_state_ptr = yy_state_buf;
  1161. *yy_state_ptr++ = yy_current_state;
  1162. for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  1163. {
  1164. register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
  1165. while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1166. {
  1167. yy_current_state = (int) yy_def[yy_current_state];
  1168. if ( yy_current_state >= 197 )
  1169. yy_c = yy_meta[(unsigned int) yy_c];
  1170. }
  1171. yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1172. *yy_state_ptr++ = yy_current_state;
  1173. }
  1174. return yy_current_state;
  1175. }
  1176. /* yy_try_NUL_trans - try to make a transition on the NUL character
  1177. *
  1178. * synopsis
  1179. * next_state = yy_try_NUL_trans( current_state );
  1180. */
  1181. #ifdef YY_USE_PROTOS
  1182. static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
  1183. #else
  1184. static yy_state_type yy_try_NUL_trans( yy_current_state )
  1185. yy_state_type yy_current_state;
  1186. #endif
  1187. {
  1188. register int yy_is_jam;
  1189. register YY_CHAR yy_c = 1;
  1190. while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1191. {
  1192. yy_current_state = (int) yy_def[yy_current_state];
  1193. if ( yy_current_state >= 197 )
  1194. yy_c = yy_meta[(unsigned int) yy_c];
  1195. }
  1196. yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1197. yy_is_jam = (yy_current_state == 196);
  1198. if ( ! yy_is_jam )
  1199. *yy_state_ptr++ = yy_current_state;
  1200. return yy_is_jam ? 0 : yy_current_state;
  1201. }
  1202. #ifndef YY_NO_UNPUT
  1203. #ifdef YY_USE_PROTOS
  1204. static void yyunput( int c, register char *yy_bp )
  1205. #else
  1206. static void yyunput( c, yy_bp )
  1207. int c;
  1208. register char *yy_bp;
  1209. #endif
  1210. {
  1211. register char *yy_cp = yy_c_buf_p;
  1212. /* undo effects of setting up yytext */
  1213. *yy_cp = yy_hold_char;
  1214. if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  1215. { /* need to shift things up to make room */
  1216. /* +2 for EOB chars. */
  1217. register int number_to_move = yy_n_chars + 2;
  1218. register char *dest = &yy_current_buffer->yy_ch_buf[
  1219. yy_current_buffer->yy_buf_size + 2];
  1220. register char *source =
  1221. &yy_current_buffer->yy_ch_buf[number_to_move];
  1222. while ( source > yy_current_buffer->yy_ch_buf )
  1223. *--dest = *--source;
  1224. yy_cp += (int) (dest - source);
  1225. yy_bp += (int) (dest - source);
  1226. yy_current_buffer->yy_n_chars =
  1227. yy_n_chars = yy_current_buffer->yy_buf_size;
  1228. if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  1229. YY_FATAL_ERROR( "flex scanner push-back overflow" );
  1230. }
  1231. *--yy_cp = (char) c;
  1232. yytext_ptr = yy_bp;
  1233. yy_hold_char = *yy_cp;
  1234. yy_c_buf_p = yy_cp;
  1235. }
  1236. #endif /* ifndef YY_NO_UNPUT */
  1237. #ifdef __cplusplus
  1238. static int yyinput()
  1239. #else
  1240. static int input()
  1241. #endif
  1242. {
  1243. int c;
  1244. *yy_c_buf_p = yy_hold_char;
  1245. if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  1246. {
  1247. /* yy_c_buf_p now points to the character we want to return.
  1248. * If this occurs *before* the EOB characters, then it's a
  1249. * valid NUL; if not, then we've hit the end of the buffer.
  1250. */
  1251. if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  1252. /* This was really a NUL. */
  1253. *yy_c_buf_p = '\0';
  1254. else
  1255. { /* need more input */
  1256. int offset = (int)(yy_c_buf_p - yytext_ptr);
  1257. ++yy_c_buf_p;
  1258. switch ( yy_get_next_buffer() )
  1259. {
  1260. case EOB_ACT_LAST_MATCH:
  1261. /* This happens because yy_g_n_b()
  1262. * sees that we've accumulated a
  1263. * token and flags that we need to
  1264. * try matching the token before
  1265. * proceeding. But for input(),
  1266. * there's no matching to consider.
  1267. * So convert the EOB_ACT_LAST_MATCH
  1268. * to EOB_ACT_END_OF_FILE.
  1269. */
  1270. /* Reset buffer status. */
  1271. yyrestart( yyin );
  1272. /* fall through */
  1273. case EOB_ACT_END_OF_FILE:
  1274. {
  1275. if ( yywrap() )
  1276. return EOF;
  1277. if ( ! yy_did_buffer_switch_on_eof )
  1278. YY_NEW_FILE;
  1279. #ifdef __cplusplus
  1280. return yyinput();
  1281. #else
  1282. return input();
  1283. #endif
  1284. }
  1285. case EOB_ACT_CONTINUE_SCAN:
  1286. yy_c_buf_p = yytext_ptr + offset;
  1287. break;
  1288. }
  1289. }
  1290. }
  1291. c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
  1292. *yy_c_buf_p = '\0'; /* preserve yytext */
  1293. yy_hold_char = *++yy_c_buf_p;
  1294. return c;
  1295. }
  1296. #ifdef YY_USE_PROTOS
  1297. void yyrestart( FILE *input_file )
  1298. #else
  1299. void yyrestart( input_file )
  1300. FILE *input_file;
  1301. #endif
  1302. {
  1303. if ( ! yy_current_buffer )
  1304. yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
  1305. yy_init_buffer( yy_current_buffer, input_file );
  1306. yy_load_buffer_state();
  1307. }
  1308. #ifdef YY_USE_PROTOS
  1309. void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  1310. #else
  1311. void yy_switch_to_buffer( new_buffer )
  1312. YY_BUFFER_STATE new_buffer;
  1313. #endif
  1314. {
  1315. if ( yy_current_buffer == new_buffer )
  1316. return;
  1317. if ( yy_current_buffer )
  1318. {
  1319. /* Flush out information for old buffer. */
  1320. *yy_c_buf_p = yy_hold_char;
  1321. yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  1322. yy_current_buffer->yy_n_chars = yy_n_chars;
  1323. }
  1324. yy_current_buffer = new_buffer;
  1325. yy_load_buffer_state();
  1326. /* We don't actually know whether we did this switch during
  1327. * EOF (yywrap()) processing, but the only time this flag
  1328. * is looked at is after yywrap() is called, so it's safe
  1329. * to go ahead and always set it.
  1330. */
  1331. yy_did_buffer_switch_on_eof = 1;
  1332. }
  1333. #ifdef YY_USE_PROTOS
  1334. void yy_load_buffer_state( void )
  1335. #else
  1336. void yy_load_buffer_state()
  1337. #endif
  1338. {
  1339. yy_n_chars = yy_current_buffer->yy_n_chars;
  1340. yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  1341. yyin = yy_current_buffer->yy_input_file;
  1342. yy_hold_char = *yy_c_buf_p;
  1343. }
  1344. #ifdef YY_USE_PROTOS
  1345. YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
  1346. #else
  1347. YY_BUFFER_STATE yy_create_buffer( file, size )
  1348. FILE *file;
  1349. int size;
  1350. #endif
  1351. {
  1352. YY_BUFFER_STATE b;
  1353. b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
  1354. if ( ! b )
  1355. YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  1356. b->yy_buf_size = size;
  1357. /* yy_ch_buf has to be 2 characters longer than the size given because
  1358. * we need to put in 2 end-of-buffer characters.
  1359. */
  1360. b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
  1361. if ( ! b->yy_ch_buf )
  1362. YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  1363. b->yy_is_our_buffer = 1;
  1364. yy_init_buffer( b, file );
  1365. return b;
  1366. }
  1367. #ifdef YY_USE_PROTOS
  1368. void yy_delete_buffer( YY_BUFFER_STATE b )
  1369. #else
  1370. void yy_delete_buffer( b )
  1371. YY_BUFFER_STATE b;
  1372. #endif
  1373. {
  1374. if ( ! b )
  1375. return;
  1376. if ( b == yy_current_buffer )
  1377. yy_current_buffer = (YY_BUFFER_STATE) 0;
  1378. if ( b->yy_is_our_buffer )
  1379. yy_flex_free( (void *) b->yy_ch_buf );
  1380. yy_flex_free( (void *) b );
  1381. }
  1382. #ifndef YY_ALWAYS_INTERACTIVE
  1383. #ifndef YY_NEVER_INTERACTIVE
  1384. extern int isatty YY_PROTO(( int ));
  1385. #endif
  1386. #endif
  1387. #ifdef YY_USE_PROTOS
  1388. void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
  1389. #else
  1390. void yy_init_buffer( b, file )
  1391. YY_BUFFER_STATE b;
  1392. FILE *file;
  1393. #endif
  1394. {
  1395. yy_flush_buffer( b );
  1396. b->yy_input_file = file;
  1397. b->yy_fill_buffer = 1;
  1398. #if YY_ALWAYS_INTERACTIVE
  1399. b->yy_is_interactive = 1;
  1400. #else
  1401. #if YY_NEVER_INTERACTIVE
  1402. b->yy_is_interactive = 0;
  1403. #else
  1404. b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
  1405. #endif
  1406. #endif
  1407. }
  1408. #ifdef YY_USE_PROTOS
  1409. void yy_flush_buffer( YY_BUFFER_STATE b )
  1410. #else
  1411. void yy_flush_buffer( b )
  1412. YY_BUFFER_STATE b;
  1413. #endif
  1414. {
  1415. if ( ! b )
  1416. return;
  1417. b->yy_n_chars = 0;
  1418. /* We always need two end-of-buffer characters. The first causes
  1419. * a transition to the end-of-buffer state. The second causes
  1420. * a jam in that state.
  1421. */
  1422. b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
  1423. b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  1424. b->yy_buf_pos = &b->yy_ch_buf[0];
  1425. b->yy_at_bol = 1;
  1426. b->yy_buffer_status = YY_BUFFER_NEW;
  1427. if ( b == yy_current_buffer )
  1428. yy_load_buffer_state();
  1429. }
  1430. #ifndef YY_NO_SCAN_BUFFER
  1431. #ifdef YY_USE_PROTOS
  1432. YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
  1433. #else
  1434. YY_BUFFER_STATE yy_scan_buffer( base, size )
  1435. char *base;
  1436. yy_size_t size;
  1437. #endif
  1438. {
  1439. YY_BUFFER_STATE b;
  1440. if ( size < 2 ||
  1441. base[size-2] != YY_END_OF_BUFFER_CHAR ||
  1442. base[size-1] != YY_END_OF_BUFFER_CHAR )
  1443. /* They forgot to leave room for the EOB's. */
  1444. return 0;
  1445. b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
  1446. if ( ! b )
  1447. YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
  1448. b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
  1449. b->yy_buf_pos = b->yy_ch_buf = base;
  1450. b->yy_is_our_buffer = 0;
  1451. b->yy_input_file = 0;
  1452. b->yy_n_chars = b->yy_buf_size;
  1453. b->yy_is_interactive = 0;
  1454. b->yy_at_bol = 1;
  1455. b->yy_fill_buffer = 0;
  1456. b->yy_buffer_status = YY_BUFFER_NEW;
  1457. yy_switch_to_buffer( b );
  1458. return b;
  1459. }
  1460. #endif
  1461. #ifndef YY_NO_SCAN_STRING
  1462. #ifdef YY_USE_PROTOS
  1463. YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
  1464. #else
  1465. YY_BUFFER_STATE yy_scan_string( yy_str )
  1466. yyconst char *yy_str;
  1467. #endif
  1468. {
  1469. int len;
  1470. for ( len = 0; yy_str[len]; ++len )
  1471. ;
  1472. return yy_scan_bytes( yy_str, len );
  1473. }
  1474. #endif
  1475. #ifndef YY_NO_SCAN_BYTES
  1476. #ifdef YY_USE_PROTOS
  1477. YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
  1478. #else
  1479. YY_BUFFER_STATE yy_scan_bytes( bytes, len )
  1480. yyconst char *bytes;
  1481. int len;
  1482. #endif
  1483. {
  1484. YY_BUFFER_STATE b;
  1485. char *buf;
  1486. yy_size_t n;
  1487. int i;
  1488. /* Get memory for full buffer, including space for trailing EOB's. */
  1489. n = len + 2;
  1490. buf = (char *) yy_flex_alloc( n );
  1491. if ( ! buf )
  1492. YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
  1493. for ( i = 0; i < len; ++i )
  1494. buf[i] = bytes[i];
  1495. buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
  1496. b = yy_scan_buffer( buf, n );
  1497. if ( ! b )
  1498. YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
  1499. /* It's okay to grow etc. this buffer, and we should throw it
  1500. * away when we're done.
  1501. */
  1502. b->yy_is_our_buffer = 1;
  1503. return b;
  1504. }
  1505. #endif
  1506. #ifndef YY_NO_PUSH_STATE
  1507. #ifdef YY_USE_PROTOS
  1508. static void yy_push_state( int new_state )
  1509. #else
  1510. static void yy_push_state( new_state )
  1511. int new_state;
  1512. #endif
  1513. {
  1514. if ( yy_start_stack_ptr >= yy_start_stack_depth )
  1515. {
  1516. yy_size_t new_size;
  1517. yy_start_stack_depth += YY_START_STACK_INCR;
  1518. new_size = yy_start_stack_depth * sizeof( int );
  1519. if ( ! yy_start_stack )
  1520. yy_start_stack = (int *) yy_flex_alloc( new_size );
  1521. else
  1522. yy_start_stack = (int *) yy_flex_realloc(
  1523. (void *) yy_start_stack, new_size );
  1524. if ( ! yy_start_stack )
  1525. YY_FATAL_ERROR(
  1526. "out of memory expanding start-condition stack" );
  1527. }
  1528. yy_start_stack[yy_start_stack_ptr++] = YY_START;
  1529. BEGIN(new_state);
  1530. }
  1531. #endif
  1532. #ifndef YY_NO_POP_STATE
  1533. static void yy_pop_state()
  1534. {
  1535. if ( --yy_start_stack_ptr < 0 )
  1536. YY_FATAL_ERROR( "start-condition stack underflow" );
  1537. BEGIN(yy_start_stack[yy_start_stack_ptr]);
  1538. }
  1539. #endif
  1540. #ifndef YY_NO_TOP_STATE
  1541. static int yy_top_state()
  1542. {
  1543. return yy_start_stack[yy_start_stack_ptr - 1];
  1544. }
  1545. #endif
  1546. #ifndef YY_EXIT_FAILURE
  1547. #define YY_EXIT_FAILURE 2
  1548. #endif
  1549. #ifdef YY_USE_PROTOS
  1550. static void yy_fatal_error( yyconst char msg[] )
  1551. #else
  1552. static void yy_fatal_error( msg )
  1553. char msg[];
  1554. #endif
  1555. {
  1556. (void) fprintf( stderr, "%s\n", msg );
  1557. exit( YY_EXIT_FAILURE );
  1558. }
  1559. /* Redefine yyless() so it works in section 3 code. */
  1560. #undef yyless
  1561. #define yyless(n) \
  1562. do \
  1563. { \
  1564. /* Undo effects of setting up yytext. */ \
  1565. yytext[yyleng] = yy_hold_char; \
  1566. yy_c_buf_p = yytext + n; \
  1567. yy_hold_char = *yy_c_buf_p; \
  1568. *yy_c_buf_p = '\0'; \
  1569. yyleng = n; \
  1570. } \
  1571. while ( 0 )
  1572. /* Internal utility routines. */
  1573. #ifndef yytext_ptr
  1574. #ifdef YY_USE_PROTOS
  1575. static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
  1576. #else
  1577. static void yy_flex_strncpy( s1, s2, n )
  1578. char *s1;
  1579. yyconst char *s2;
  1580. int n;
  1581. #endif
  1582. {
  1583. register int i;
  1584. for ( i = 0; i < n; ++i )
  1585. s1[i] = s2[i];
  1586. }
  1587. #endif
  1588. #ifdef YY_NEED_STRLEN
  1589. #ifdef YY_USE_PROTOS
  1590. static int yy_flex_strlen( yyconst char *s )
  1591. #else
  1592. static int yy_flex_strlen( s )
  1593. yyconst char *s;
  1594. #endif
  1595. {
  1596. register int n;
  1597. for ( n = 0; s[n]; ++n )
  1598. ;
  1599. return n;
  1600. }
  1601. #endif
  1602. #ifdef YY_USE_PROTOS
  1603. static void *yy_flex_alloc( yy_size_t size )
  1604. #else
  1605. static void *yy_flex_alloc( size )
  1606. yy_size_t size;
  1607. #endif
  1608. {
  1609. return (void *) malloc( size );
  1610. }
  1611. #ifdef YY_USE_PROTOS
  1612. static void *yy_flex_realloc( void *ptr, yy_size_t size )
  1613. #else
  1614. static void *yy_flex_realloc( ptr, size )
  1615. void *ptr;
  1616. yy_size_t size;
  1617. #endif
  1618. {
  1619. /* The cast to (char *) in the following accommodates both
  1620. * implementations that use char* generic pointers, and those
  1621. * that use void* generic pointers. It works with the latter
  1622. * because both ANSI C and C++ allow castless assignment from
  1623. * any pointer type to void*, and deal with argument conversions
  1624. * as though doing an assignment.
  1625. */
  1626. return (void *) realloc( (char *) ptr, size );
  1627. }
  1628. #ifdef YY_USE_PROTOS
  1629. static void yy_flex_free( void *ptr )
  1630. #else
  1631. static void yy_flex_free( ptr )
  1632. void *ptr;
  1633. #endif
  1634. {
  1635. free( ptr );
  1636. }
  1637. #if YY_MAIN
  1638. int main()
  1639. {
  1640. yylex();
  1641. return 0;
  1642. }
  1643. #endif
  1644. #line 98 "tnadmin.l"