00001
00002
00003
00004
00005
00006
00007 #define FLEX_SCANNER
00008 #define YY_FLEX_MAJOR_VERSION 2
00009 #define YY_FLEX_MINOR_VERSION 5
00010
00011 #include <stdio.h>
00012
00013
00014
00015 #ifdef c_plusplus
00016 #ifndef __cplusplus
00017 #define __cplusplus
00018 #endif
00019 #endif
00020
00021
00022 #ifdef __cplusplus
00023
00024 #include <stdlib.h>
00025
00026
00027
00028 #define YY_USE_PROTOS
00029
00030
00031 #define YY_USE_CONST
00032
00033 #else
00034
00035 #if 1
00036
00037
00038 #define YY_USE_PROTOS
00039 #define YY_USE_CONST
00040
00041 #endif
00042 #endif
00043
00044 #ifdef __TURBOC__
00045 #pragma warn -rch
00046 #pragma warn -use
00047 #include <io.h>
00048 #include <stdlib.h>
00049 #define YY_USE_CONST
00050 #define YY_USE_PROTOS
00051 #endif
00052
00053 #ifdef YY_USE_CONST
00054 #define yyconst const
00055 #else
00056 #define yyconst
00057 #endif
00058
00059
00060 #ifdef YY_USE_PROTOS
00061 #define YY_PROTO(proto) proto
00062 #else
00063 #define YY_PROTO(proto) ()
00064 #endif
00065
00066
00067 #define YY_NULL 0
00068
00069
00070
00071
00072
00073
00074 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00075
00076
00077
00078
00079
00080 #define BEGIN yy_start = 1 + 2 *
00081
00082
00083
00084
00085
00086 #define YY_START ((yy_start - 1) / 2)
00087 #define YYSTATE YY_START
00088
00089
00090 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00091
00092
00093 #define YY_NEW_FILE yyrestart( yyin )
00094
00095 #define YY_END_OF_BUFFER_CHAR 0
00096
00097
00098 #define YY_BUF_SIZE 16384
00099
00100 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00101
00102 extern int yyleng;
00103 extern FILE *yyin, *yyout;
00104
00105 #define EOB_ACT_CONTINUE_SCAN 0
00106 #define EOB_ACT_END_OF_FILE 1
00107 #define EOB_ACT_LAST_MATCH 2
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125 #define yyless(n) \
00126 do \
00127 { \
00128 \
00129 *yy_cp = yy_hold_char; \
00130 YY_RESTORE_YY_MORE_OFFSET \
00131 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
00132 YY_DO_BEFORE_ACTION; \
00133 } \
00134 while ( 0 )
00135
00136 #define unput(c) yyunput( c, yytext_ptr )
00137
00138
00139
00140
00141
00142 typedef unsigned int yy_size_t;
00143
00144
00145 struct yy_buffer_state
00146 {
00147 FILE *yy_input_file;
00148
00149 char *yy_ch_buf;
00150 char *yy_buf_pos;
00151
00152
00153
00154
00155 yy_size_t yy_buf_size;
00156
00157
00158
00159
00160 int yy_n_chars;
00161
00162
00163
00164
00165
00166 int yy_is_our_buffer;
00167
00168
00169
00170
00171
00172
00173 int yy_is_interactive;
00174
00175
00176
00177
00178
00179 int yy_at_bol;
00180
00181
00182
00183
00184 int yy_fill_buffer;
00185
00186 int yy_buffer_status;
00187 #define YY_BUFFER_NEW 0
00188 #define YY_BUFFER_NORMAL 1
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199 #define YY_BUFFER_EOF_PENDING 2
00200 };
00201
00202 static YY_BUFFER_STATE yy_current_buffer = 0;
00203
00204
00205
00206
00207
00208 #define YY_CURRENT_BUFFER yy_current_buffer
00209
00210
00211
00212 static char yy_hold_char;
00213
00214 static int yy_n_chars;
00215
00216
00217 int yyleng;
00218
00219
00220 static char *yy_c_buf_p = (char *) 0;
00221 static int yy_init = 1;
00222 static int yy_start = 0;
00223
00224
00225
00226
00227 static int yy_did_buffer_switch_on_eof;
00228
00229 void yyrestart YY_PROTO(( FILE *input_file ));
00230
00231 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
00232 void yy_load_buffer_state YY_PROTO(( void ));
00233 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
00234 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
00235 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
00236 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
00237 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
00238
00239 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
00240 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
00241 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
00242
00243 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
00244 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
00245 static void yy_flex_free YY_PROTO(( void * ));
00246
00247 #define yy_new_buffer yy_create_buffer
00248
00249 #define yy_set_interactive(is_interactive) \
00250 { \
00251 if ( ! yy_current_buffer ) \
00252 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
00253 yy_current_buffer->yy_is_interactive = is_interactive; \
00254 }
00255
00256 #define yy_set_bol(at_bol) \
00257 { \
00258 if ( ! yy_current_buffer ) \
00259 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
00260 yy_current_buffer->yy_at_bol = at_bol; \
00261 }
00262
00263 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
00264
00265 typedef unsigned char YY_CHAR;
00266 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
00267 typedef int yy_state_type;
00268 extern char *yytext;
00269 #define yytext_ptr yytext
00270
00271 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
00272 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
00273 static int yy_get_next_buffer YY_PROTO(( void ));
00274 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
00275
00276
00277
00278
00279 #define YY_DO_BEFORE_ACTION \
00280 yytext_ptr = yy_bp; \
00281 yyleng = (int) (yy_cp - yy_bp); \
00282 yy_hold_char = *yy_cp; \
00283 *yy_cp = '\0'; \
00284 yy_c_buf_p = yy_cp;
00285
00286 #define YY_NUM_RULES 51
00287 #define YY_END_OF_BUFFER 52
00288 static yyconst short int yy_accept[155] =
00289 { 0,
00290 0, 0, 52, 50, 46, 46, 50, 23, 49, 43,
00291 50, 24, 2, 3, 42, 39, 40, 50, 41, 48,
00292 20, 25, 28, 30, 49, 49, 44, 49, 49, 49,
00293 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00294 50, 31, 23, 21, 23, 49, 4, 24, 22, 24,
00295 45, 0, 1, 47, 1, 48, 26, 27, 38, 29,
00296 49, 47, 49, 49, 49, 16, 34, 49, 49, 35,
00297 36, 33, 32, 49, 37, 49, 13, 5, 49, 49,
00298 49, 17, 49, 49, 5, 21, 23, 22, 24, 17,
00299 0, 47, 47, 47, 47, 4, 49, 49, 49, 49,
00300
00301 6, 49, 49, 49, 49, 49, 0, 0, 0, 0,
00302 0, 1, 49, 14, 49, 49, 49, 49, 15, 49,
00303 49, 0, 0, 49, 49, 49, 49, 49, 18, 49,
00304 49, 49, 49, 49, 49, 7, 49, 49, 19, 49,
00305 49, 49, 8, 49, 9, 12, 49, 49, 49, 49,
00306 49, 11, 10, 0
00307 } ;
00308
00309 static yyconst int yy_ec[256] =
00310 { 0,
00311 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
00312 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00313 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00314 1, 2, 4, 5, 1, 6, 7, 8, 9, 10,
00315 11, 12, 13, 1, 14, 15, 16, 17, 17, 17,
00316 17, 17, 17, 17, 17, 17, 17, 18, 1, 19,
00317 20, 21, 1, 22, 23, 23, 23, 23, 24, 23,
00318 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
00319 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
00320 1, 25, 1, 26, 23, 1, 27, 28, 23, 29,
00321
00322 30, 31, 32, 33, 34, 23, 23, 35, 36, 37,
00323 38, 39, 40, 41, 42, 43, 23, 23, 44, 45,
00324 23, 46, 47, 48, 49, 50, 1, 1, 1, 1,
00325 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00326 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00327 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00328 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00329 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00330 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00331 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00332
00333 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00334 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00335 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00336 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00337 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00338 1, 1, 1, 1, 1
00339 } ;
00340
00341 static yyconst int yy_meta[51] =
00342 { 0,
00343 1, 1, 1, 1, 2, 1, 1, 1, 2, 1,
00344 1, 1, 1, 1, 3, 1, 4, 1, 1, 1,
00345 1, 1, 4, 4, 1, 1, 4, 4, 4, 4,
00346 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
00347 4, 4, 4, 4, 4, 4, 1, 1, 1, 1
00348 } ;
00349
00350 static yyconst short int yy_base[167] =
00351 { 0,
00352 0, 0, 323, 386, 386, 386, 286, 46, 0, 386,
00353 286, 43, 386, 386, 279, 386, 386, 38, 386, 39,
00354 386, 253, 37, 246, 0, 53, 386, 55, 36, 24,
00355 37, 47, 56, 58, 68, 66, 70, 64, 76, 82,
00356 162, 386, 77, 386, 106, 0, 386, 50, 386, 60,
00357 386, 184, 103, 178, 153, 106, 386, 386, 386, 386,
00358 0, 117, 120, 93, 99, 95, 97, 101, 109, 107,
00359 111, 113, 115, 117, 129, 121, 123, 130, 131, 132,
00360 140, 141, 149, 147, 386, 156, 175, 176, 178, 386,
00361 179, 125, 0, 189, 0, 160, 170, 169, 172, 178,
00362
00363 179, 188, 186, 187, 190, 200, 183, 221, 225, 226,
00364 123, 100, 201, 199, 211, 210, 212, 219, 220, 228,
00365 226, 234, 255, 234, 232, 235, 242, 244, 245, 246,
00366 255, 253, 256, 266, 259, 274, 267, 270, 273, 276,
00367 284, 282, 280, 291, 290, 292, 293, 294, 308, 309,
00368 301, 305, 307, 386, 351, 82, 355, 358, 59, 361,
00369 364, 367, 370, 374, 378, 381
00370 } ;
00371
00372 static yyconst short int yy_def[167] =
00373 { 0,
00374 154, 1, 154, 154, 154, 154, 154, 155, 156, 154,
00375 154, 157, 154, 154, 154, 154, 154, 154, 154, 158,
00376 154, 154, 154, 154, 159, 160, 154, 160, 28, 28,
00377 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
00378 154, 154, 155, 154, 155, 156, 154, 157, 154, 157,
00379 154, 154, 154, 161, 154, 158, 154, 154, 154, 154,
00380 159, 162, 163, 28, 28, 28, 28, 28, 28, 28,
00381 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
00382 28, 28, 28, 28, 154, 164, 155, 165, 157, 154,
00383 154, 161, 166, 162, 162, 28, 28, 28, 28, 28,
00384
00385 28, 28, 28, 28, 28, 28, 164, 164, 165, 165,
00386 154, 154, 28, 28, 28, 28, 28, 28, 28, 28,
00387 28, 164, 165, 28, 28, 28, 28, 28, 28, 28,
00388 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
00389 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
00390 28, 28, 28, 0, 154, 154, 154, 154, 154, 154,
00391 154, 154, 154, 154, 154, 154
00392 } ;
00393
00394 static yyconst short int yy_nxt[437] =
00395 { 0,
00396 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
00397 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
00398 24, 25, 26, 26, 4, 27, 28, 26, 26, 29,
00399 30, 31, 26, 26, 32, 33, 34, 35, 36, 26,
00400 37, 38, 39, 40, 26, 26, 13, 41, 14, 4,
00401 44, 49, 52, 55, 53, 56, 58, 62, 49, 62,
00402 64, 62, 61, 62, 69, 64, 70, 50, 88, 63,
00403 45, 63, 64, 64, 50, 67, 72, 64, 64, 71,
00404 68, 44, 74, 64, 89, 46, 59, 75, 64, 73,
00405 81, 65, 64, 79, 64, 76, 66, 64, 77, 64,
00406
00407 64, 45, 64, 80, 64, 64, 64, 64, 78, 64,
00408 86, 64, 64, 82, 83, 84, 112, 64, 64, 53,
00409 55, 94, 56, 64, 62, 94, 91, 96, 62, 64,
00410 87, 64, 91, 64, 64, 64, 64, 64, 64, 112,
00411 64, 93, 64, 64, 97, 64, 98, 64, 64, 64,
00412 64, 64, 64, 64, 64, 100, 64, 64, 64, 64,
00413 44, 99, 64, 101, 64, 64, 64, 64, 103, 53,
00414 64, 64, 64, 64, 102, 104, 64, 64, 105, 86,
00415 108, 64, 64, 64, 49, 64, 88, 44, 64, 106,
00416 64, 111, 111, 94, 93, 112, 64, 94, 90, 87,
00417
00418 110, 64, 89, 113, 114, 64, 64, 108, 64, 85,
00419 64, 64, 115, 64, 64, 64, 119, 118, 116, 64,
00420 64, 117, 64, 64, 64, 86, 64, 64, 64, 64,
00421 120, 64, 121, 49, 88, 64, 64, 64, 86, 126,
00422 64, 64, 64, 124, 125, 122, 64, 64, 64, 110,
00423 123, 64, 64, 64, 127, 64, 64, 129, 122, 130,
00424 128, 64, 64, 88, 64, 60, 131, 64, 132, 64,
00425 64, 64, 57, 64, 134, 64, 133, 135, 64, 123,
00426 64, 64, 136, 64, 138, 64, 64, 64, 137, 64,
00427 51, 64, 64, 47, 64, 64, 64, 64, 139, 140,
00428
00429 64, 142, 64, 143, 141, 42, 64, 64, 64, 64,
00430 64, 144, 145, 146, 64, 64, 64, 64, 64, 147,
00431 64, 64, 154, 64, 148, 64, 64, 64, 64, 149,
00432 64, 64, 64, 64, 64, 64, 151, 64, 152, 150,
00433 154, 64, 153, 64, 64, 64, 64, 154, 64, 64,
00434 64, 43, 43, 43, 43, 48, 48, 48, 48, 54,
00435 54, 54, 64, 154, 64, 92, 154, 92, 95, 154,
00436 95, 63, 154, 63, 107, 107, 107, 107, 109, 109,
00437 109, 109, 93, 154, 93, 3, 154, 154, 154, 154,
00438 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
00439
00440 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
00441 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
00442 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
00443 154, 154, 154, 154, 154, 154
00444 } ;
00445
00446 static yyconst short int yy_chk[437] =
00447 { 0,
00448 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00449 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00450 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00451 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00452 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00453 8, 12, 18, 20, 18, 20, 23, 26, 48, 28,
00454 30, 26, 159, 28, 30, 30, 31, 12, 50, 26,
00455 8, 28, 29, 31, 48, 29, 32, 29, 31, 31,
00456 29, 43, 33, 32, 50, 156, 23, 34, 32, 32,
00457 38, 28, 33, 36, 34, 34, 28, 33, 35, 34,
00458
00459 38, 43, 36, 37, 35, 38, 37, 36, 35, 35,
00460 45, 37, 39, 39, 40, 40, 112, 39, 40, 53,
00461 56, 62, 56, 40, 63, 62, 53, 65, 63, 64,
00462 45, 66, 53, 67, 64, 65, 66, 68, 67, 111,
00463 65, 92, 68, 70, 68, 69, 69, 71, 70, 72,
00464 69, 73, 71, 74, 72, 75, 73, 76, 74, 77,
00465 86, 74, 76, 76, 77, 75, 78, 79, 80, 55,
00466 75, 78, 79, 80, 79, 81, 81, 82, 83, 87,
00467 86, 81, 82, 84, 88, 83, 89, 107, 84, 84,
00468 83, 91, 91, 94, 54, 91, 96, 94, 52, 87,
00469
00470 88, 96, 89, 97, 98, 98, 97, 107, 99, 41,
00471 98, 97, 99, 99, 100, 101, 104, 103, 100, 100,
00472 101, 102, 103, 104, 102, 108, 105, 103, 104, 102,
00473 105, 105, 106, 109, 110, 114, 106, 113, 122, 116,
00474 114, 106, 113, 113, 115, 108, 116, 115, 117, 109,
00475 110, 116, 115, 117, 117, 118, 119, 120, 122, 121,
00476 118, 119, 121, 123, 120, 24, 124, 121, 125, 120,
00477 124, 126, 22, 125, 127, 124, 126, 128, 127, 123,
00478 128, 129, 130, 127, 132, 128, 129, 130, 131, 132,
00479 15, 131, 133, 11, 132, 135, 131, 133, 133, 134,
00480
00481 135, 136, 134, 137, 135, 7, 138, 134, 137, 139,
00482 136, 138, 140, 141, 139, 136, 143, 140, 142, 142,
00483 141, 143, 3, 142, 144, 141, 145, 144, 146, 147,
00484 148, 145, 144, 146, 147, 148, 149, 151, 150, 148,
00485 0, 152, 151, 153, 149, 150, 152, 0, 153, 149,
00486 150, 155, 155, 155, 155, 157, 157, 157, 157, 158,
00487 158, 158, 160, 0, 160, 161, 0, 161, 162, 0,
00488 162, 163, 0, 163, 164, 164, 164, 164, 165, 165,
00489 165, 165, 166, 0, 166, 154, 154, 154, 154, 154,
00490 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
00491
00492 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
00493 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
00494 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
00495 154, 154, 154, 154, 154, 154
00496 } ;
00497
00498 static yy_state_type yy_last_accepting_state;
00499 static char *yy_last_accepting_cpos;
00500
00501
00502
00503
00504 #define REJECT reject_used_but_not_detected
00505 #define yymore() yymore_used_but_not_detected
00506 #define YY_MORE_ADJ 0
00507 #define YY_RESTORE_YY_MORE_OFFSET
00508 char *yytext;
00509 #line 1 "AtomLexer.l"
00510 #define INITIAL 0
00511 #line 3 "AtomLexer.l"
00512
00513
00514
00515
00516
00517
00518
00519
00520
00521
00522
00523
00524
00525
00526
00527
00528
00529
00530
00531
00532
00533
00534
00535
00536
00537
00538 #define YY_ALWAYS_INTERACTIVE 1
00539
00540 #include <stdlib.h>
00541
00542 #if defined(ARCH_AIX4) || defined(ARCH_AIX3)
00543 #include <strings.h>
00544 #else
00545 #include <string.h>
00546 #endif
00547
00548 #include "AtomParser.h"
00549 #include "y.tab.h"
00550 #include "Inform.h"
00551 #include "SymbolTable.h"
00552
00553
00554 #undef input
00555 #undef unput
00556 #if 1
00557 #define YY_DECL extern "C" int yylex YY_PROTO(( void ))
00558
00559
00560 #undef YY_INPUT
00561 #define YY_INPUT(buf,result,max) { \
00562 int c = *atomparser_yystring; \
00563 result = (c == 0) ? YY_NULL : \
00564 (buf[0] = c, atomparser_yystring++, 1); \
00565 }
00566 #else
00567
00568 #define input() (*atomparser_yystring++)
00569 #define unput(c) (*--atomparser_yystring = c)
00570 #endif
00571
00572
00573
00574 #if 0
00575
00576 #undef lex_input
00577 #define lex_input() input()
00578 #endif
00579
00580
00581
00582
00583 #if defined(ARCH_SOLARIS2) || defined(ARCH_SOLARIS2_64) || defined(ARCH_SOLARISX86)
00584 #undef unput
00585 #define unput lex_unput_only_if_needed
00586
00587 int lex_unput_only_if_needed(int c) {
00588 atomparser_yystring--;
00589 if (c != *atomparser_yystring) {
00590 *atomparser_yystring = c;
00591 }
00592 return c;
00593 }
00594 #endif
00595
00596 #line 95 "AtomLexer.l"
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606
00607
00608 #line 608 "lex.yy.c"
00609
00610
00611
00612
00613
00614 #ifndef YY_SKIP_YYWRAP
00615 #ifdef __cplusplus
00616 extern "C" int yywrap YY_PROTO(( void ));
00617 #else
00618 extern int yywrap YY_PROTO(( void ));
00619 #endif
00620 #endif
00621
00622 #ifndef YY_NO_UNPUT
00623 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
00624 #endif
00625
00626 #ifndef yytext_ptr
00627 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
00628 #endif
00629
00630 #ifdef YY_NEED_STRLEN
00631 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
00632 #endif
00633
00634 #ifndef YY_NO_INPUT
00635 #ifdef __cplusplus
00636 static int yyinput YY_PROTO(( void ));
00637 #else
00638 static int input YY_PROTO(( void ));
00639 #endif
00640 #endif
00641
00642 #if YY_STACK_USED
00643 static int yy_start_stack_ptr = 0;
00644 static int yy_start_stack_depth = 0;
00645 static int *yy_start_stack = 0;
00646 #ifndef YY_NO_PUSH_STATE
00647 static void yy_push_state YY_PROTO(( int new_state ));
00648 #endif
00649 #ifndef YY_NO_POP_STATE
00650 static void yy_pop_state YY_PROTO(( void ));
00651 #endif
00652 #ifndef YY_NO_TOP_STATE
00653 static int yy_top_state YY_PROTO(( void ));
00654 #endif
00655
00656 #else
00657 #define YY_NO_PUSH_STATE 1
00658 #define YY_NO_POP_STATE 1
00659 #define YY_NO_TOP_STATE 1
00660 #endif
00661
00662 #ifdef YY_MALLOC_DECL
00663 YY_MALLOC_DECL
00664 #else
00665 #if __STDC__
00666 #ifndef __cplusplus
00667 #include <stdlib.h>
00668 #endif
00669 #else
00670
00671
00672
00673
00674 #endif
00675 #endif
00676
00677
00678 #ifndef YY_READ_BUF_SIZE
00679 #define YY_READ_BUF_SIZE 8192
00680 #endif
00681
00682
00683
00684 #ifndef ECHO
00685
00686
00687
00688 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
00689 #endif
00690
00691
00692
00693
00694 #ifndef YY_INPUT
00695 #define YY_INPUT(buf,result,max_size) \
00696 if ( yy_current_buffer->yy_is_interactive ) \
00697 { \
00698 int c = '*', n; \
00699 for ( n = 0; n < max_size && \
00700 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
00701 buf[n] = (char) c; \
00702 if ( c == '\n' ) \
00703 buf[n++] = (char) c; \
00704 if ( c == EOF && ferror( yyin ) ) \
00705 YY_FATAL_ERROR( "input in flex scanner failed" ); \
00706 result = n; \
00707 } \
00708 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
00709 && ferror( yyin ) ) \
00710 YY_FATAL_ERROR( "input in flex scanner failed" );
00711 #endif
00712
00713
00714
00715
00716
00717 #ifndef yyterminate
00718 #define yyterminate() return YY_NULL
00719 #endif
00720
00721
00722 #ifndef YY_START_STACK_INCR
00723 #define YY_START_STACK_INCR 25
00724 #endif
00725
00726
00727 #ifndef YY_FATAL_ERROR
00728 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
00729 #endif
00730
00731
00732
00733
00734 #ifndef YY_DECL
00735 #define YY_DECL int yylex YY_PROTO(( void ))
00736 #endif
00737
00738
00739
00740
00741 #ifndef YY_USER_ACTION
00742 #define YY_USER_ACTION
00743 #endif
00744
00745
00746 #ifndef YY_BREAK
00747 #define YY_BREAK break;
00748 #endif
00749
00750 #define YY_RULE_SETUP \
00751 YY_USER_ACTION
00752
00753 YY_DECL
00754 {
00755 register yy_state_type yy_current_state;
00756 register char *yy_cp, *yy_bp;
00757 register int yy_act;
00758
00759 #line 112 "AtomLexer.l"
00760
00761 #line 761 "lex.yy.c"
00762
00763 if ( yy_init )
00764 {
00765 yy_init = 0;
00766
00767 #ifdef YY_USER_INIT
00768 YY_USER_INIT;
00769 #endif
00770
00771 if ( ! yy_start )
00772 yy_start = 1;
00773
00774 if ( ! yyin )
00775 yyin = stdin;
00776
00777 if ( ! yyout )
00778 yyout = stdout;
00779
00780 if ( ! yy_current_buffer )
00781 yy_current_buffer =
00782 yy_create_buffer( yyin, YY_BUF_SIZE );
00783
00784 yy_load_buffer_state();
00785 }
00786
00787 while ( 1 )
00788 {
00789 yy_cp = yy_c_buf_p;
00790
00791
00792 *yy_cp = yy_hold_char;
00793
00794
00795
00796
00797 yy_bp = yy_cp;
00798
00799 yy_current_state = yy_start;
00800 yy_match:
00801 do
00802 {
00803 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
00804 if ( yy_accept[yy_current_state] )
00805 {
00806 yy_last_accepting_state = yy_current_state;
00807 yy_last_accepting_cpos = yy_cp;
00808 }
00809 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
00810 {
00811 yy_current_state = (int) yy_def[yy_current_state];
00812 if ( yy_current_state >= 155 )
00813 yy_c = yy_meta[(unsigned int) yy_c];
00814 }
00815 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
00816 ++yy_cp;
00817 }
00818 while ( yy_base[yy_current_state] != 386 );
00819
00820 yy_find_action:
00821 yy_act = yy_accept[yy_current_state];
00822 if ( yy_act == 0 )
00823 {
00824 yy_cp = yy_last_accepting_cpos;
00825 yy_current_state = yy_last_accepting_state;
00826 yy_act = yy_accept[yy_current_state];
00827 }
00828
00829 YY_DO_BEFORE_ACTION;
00830
00831
00832 do_action:
00833
00834
00835 switch ( yy_act )
00836 {
00837 case 0:
00838
00839 *yy_cp = yy_hold_char;
00840 yy_cp = yy_last_accepting_cpos;
00841 yy_current_state = yy_last_accepting_state;
00842 goto yy_find_action;
00843
00844 case 1:
00845 YY_RULE_SETUP
00846 #line 113 "AtomLexer.l"
00847 {
00848 yylval.dval = atof((char *) yytext);
00849 return(FLOATVAL);
00850 }
00851 YY_BREAK
00852 case 2:
00853 YY_RULE_SETUP
00854 #line 117 "AtomLexer.l"
00855 { return('('); }
00856 YY_BREAK
00857 case 3:
00858 YY_RULE_SETUP
00859 #line 118 "AtomLexer.l"
00860 { return(')'); }
00861 YY_BREAK
00862 case 4:
00863 YY_RULE_SETUP
00864 #line 119 "AtomLexer.l"
00865 { return(AND);}
00866 YY_BREAK
00867 case 5:
00868 YY_RULE_SETUP
00869 #line 120 "AtomLexer.l"
00870 { return(OR);}
00871 YY_BREAK
00872 case 6:
00873 YY_RULE_SETUP
00874 #line 121 "AtomLexer.l"
00875 { return(NOT);}
00876 YY_BREAK
00877 case 7:
00878 YY_RULE_SETUP
00879 #line 122 "AtomLexer.l"
00880 { return(WITHIN);}
00881 YY_BREAK
00882 case 8:
00883 YY_RULE_SETUP
00884 #line 123 "AtomLexer.l"
00885 { return(EXWITHIN);}
00886 YY_BREAK
00887 case 9:
00888 YY_RULE_SETUP
00889 #line 124 "AtomLexer.l"
00890 { return(PBWITHIN);}
00891 YY_BREAK
00892 case 10:
00893 YY_RULE_SETUP
00894 #line 125 "AtomLexer.l"
00895 { return(WITHINBONDS);}
00896 YY_BREAK
00897 case 11:
00898 YY_RULE_SETUP
00899 #line 126 "AtomLexer.l"
00900 { return(MAXRINGSIZE);}
00901 YY_BREAK
00902 case 12:
00903 YY_RULE_SETUP
00904 #line 127 "AtomLexer.l"
00905 { return(RINGSIZE);}
00906 YY_BREAK
00907 case 13:
00908 YY_RULE_SETUP
00909 #line 128 "AtomLexer.l"
00910 { return(OF);}
00911 YY_BREAK
00912 case 14:
00913 YY_RULE_SETUP
00914 #line 129 "AtomLexer.l"
00915 { return(FROM);}
00916 YY_BREAK
00917 case 15:
00918 YY_RULE_SETUP
00919 #line 130 "AtomLexer.l"
00920 { return(SAME);}
00921 YY_BREAK
00922 case 16:
00923 YY_RULE_SETUP
00924 #line 131 "AtomLexer.l"
00925 { return(AS);}
00926 YY_BREAK
00927 case 17:
00928 YY_RULE_SETUP
00929 #line 132 "AtomLexer.l"
00930 { return(THROUGH);}
00931 YY_BREAK
00932 case 18:
00933 YY_RULE_SETUP
00934 #line 133 "AtomLexer.l"
00935 { return(WHERE);}
00936 YY_BREAK
00937 case 19:
00938 YY_RULE_SETUP
00939 #line 134 "AtomLexer.l"
00940 { return(NEAREST);}
00941 YY_BREAK
00942 case 20:
00943 YY_RULE_SETUP
00944 #line 136 "AtomLexer.l"
00945 { return(RANGE);}
00946 YY_BREAK
00947 case 21:
00948 YY_RULE_SETUP
00949 #line 137 "AtomLexer.l"
00950 {
00951 yylval.node = new atomparser_node(STRWORD);
00952 yylval.node->sele.s = ((char *) yytext)+1;
00953
00954 yylval.node->sele.s.chop(1);
00955
00956 yylval.node->sele.s.gsub("\\\"", "\"");
00957
00958 yylval.node->sele.s.gsub("\\\\", "\\");
00959 yylval.node->sele.st = DQ_STRING;
00960 return STRWORD;
00961 }
00962 YY_BREAK
00963 case 22:
00964 YY_RULE_SETUP
00965 #line 149 "AtomLexer.l"
00966 {
00967
00968 yylval.node = new atomparser_node(STRWORD);
00969 yylval.node->sele.s = ((char *) yytext)+1;
00970
00971 yylval.node->sele.s.chop(1);
00972
00973 yylval.node->sele.s.gsub("\\'", "'");
00974
00975 yylval.node->sele.s.gsub("\\\\", "\\");
00976 yylval.node->sele.st = SQ_STRING;
00977 return STRWORD;
00978 }
00979 YY_BREAK
00980 case 23:
00981 YY_RULE_SETUP
00982 #line 162 "AtomLexer.l"
00983 {
00984 msgErr << "Unterminated double quoted string: "
00985 << (char *) yytext << sendmsg;
00986 return PARSEERROR;
00987 }
00988 YY_BREAK
00989 case 24:
00990 YY_RULE_SETUP
00991 #line 167 "AtomLexer.l"
00992 {
00993 msgErr << "Unterminated single quoted string: "
00994 << (char *) yytext << sendmsg;
00995 return PARSEERROR;
00996 }
00997 YY_BREAK
00998 case 25:
00999 YY_RULE_SETUP
01000 #line 173 "AtomLexer.l"
01001 { return(NLT); }
01002 YY_BREAK
01003 case 26:
01004 YY_RULE_SETUP
01005 #line 174 "AtomLexer.l"
01006 { return(NLE);}
01007 YY_BREAK
01008 case 27:
01009 YY_RULE_SETUP
01010 #line 175 "AtomLexer.l"
01011 { return(NEQ);}
01012 YY_BREAK
01013 case 28:
01014 YY_RULE_SETUP
01015 #line 176 "AtomLexer.l"
01016 { return(NEQ); }
01017 YY_BREAK
01018 case 29:
01019 YY_RULE_SETUP
01020 #line 177 "AtomLexer.l"
01021 { return(NGE);}
01022 YY_BREAK
01023 case 30:
01024 YY_RULE_SETUP
01025 #line 178 "AtomLexer.l"
01026 { return(NGT);}
01027 YY_BREAK
01028 case 31:
01029 YY_RULE_SETUP
01030 #line 179 "AtomLexer.l"
01031 { return(NNE);}
01032 YY_BREAK
01033 case 32:
01034 YY_RULE_SETUP
01035 #line 181 "AtomLexer.l"
01036 { return(SLT); }
01037 YY_BREAK
01038 case 33:
01039 YY_RULE_SETUP
01040 #line 182 "AtomLexer.l"
01041 { return(SLE);}
01042 YY_BREAK
01043 case 34:
01044 YY_RULE_SETUP
01045 #line 183 "AtomLexer.l"
01046 { return(SEQ);}
01047 YY_BREAK
01048 case 35:
01049 YY_RULE_SETUP
01050 #line 184 "AtomLexer.l"
01051 { return(SGE);}
01052 YY_BREAK
01053 case 36:
01054 YY_RULE_SETUP
01055 #line 185 "AtomLexer.l"
01056 { return(SGT);}
01057 YY_BREAK
01058 case 37:
01059 YY_RULE_SETUP
01060 #line 186 "AtomLexer.l"
01061 { return(SNE);}
01062 YY_BREAK
01063 case 38:
01064 YY_RULE_SETUP
01065 #line 187 "AtomLexer.l"
01066 { return(MATCH);}
01067 YY_BREAK
01068 case 39:
01069 YY_RULE_SETUP
01070 #line 189 "AtomLexer.l"
01071 { return(ADD);}
01072 YY_BREAK
01073 case 40:
01074 YY_RULE_SETUP
01075 #line 190 "AtomLexer.l"
01076 { return(SUB);}
01077 YY_BREAK
01078 case 41:
01079 YY_RULE_SETUP
01080 #line 191 "AtomLexer.l"
01081 { return(DIV);}
01082 YY_BREAK
01083 case 42:
01084 YY_RULE_SETUP
01085 #line 192 "AtomLexer.l"
01086 { return(MULT);}
01087 YY_BREAK
01088 case 43:
01089 YY_RULE_SETUP
01090 #line 193 "AtomLexer.l"
01091 { return(MOD);}
01092 YY_BREAK
01093 case 44:
01094 YY_RULE_SETUP
01095 #line 194 "AtomLexer.l"
01096 { return(EXP);}
01097 YY_BREAK
01098 case 45:
01099 YY_RULE_SETUP
01100 #line 195 "AtomLexer.l"
01101 { return(EXP);}
01102 YY_BREAK
01103 case 46:
01104 YY_RULE_SETUP
01105 #line 197 "AtomLexer.l"
01106 ;
01107 YY_BREAK
01108 case 47:
01109 YY_RULE_SETUP
01110 #line 199 "AtomLexer.l"
01111 {
01112
01113 yylval.node = new atomparser_node(STRWORD);
01114 yylval.node->sele.s = (char *) yytext;
01115 yylval.node->sele.st = RAW_STRING;
01116 return STRWORD;
01117 }
01118 YY_BREAK
01119 case 48:
01120 YY_RULE_SETUP
01121 #line 206 "AtomLexer.l"
01122 { yylval.ival = atoi((char *) yytext);
01123 return(INTVAL);
01124 }
01125 YY_BREAK
01126 case 49:
01127 YY_RULE_SETUP
01128 #line 209 "AtomLexer.l"
01129 {
01130
01131 yylval.node = new atomparser_node(STRWORD);
01132 yylval.node->sele.s = (char *) yytext;
01133 yylval.node->sele.st = RAW_STRING;
01134 int len = strlen((char *) yytext);
01135 int i;
01136 if ((i= atomparser_yylookup((char *) yytext, len)) >= 0) {
01137 yylval.node->extra_type = i;
01138 if (atomparser_symbols->fctns.data(i)->is_a ==
01139 SymbolTableElement::FUNCTION) {
01140 yylval.node->node_type = FUNC;
01141 return FUNC;
01142 } else if (atomparser_symbols->fctns.data(i)->is_a ==
01143 SymbolTableElement::KEYWORD) {
01144 yylval.node->node_type = KEY;
01145 return KEY;
01146 } else if (atomparser_symbols->fctns.data(i)->is_a ==
01147 SymbolTableElement::SINGLEWORD) {
01148 yylval.node->node_type = SINGLE;
01149 return SINGLE;
01150 } else if (atomparser_symbols->fctns.data(i)->is_a ==
01151 SymbolTableElement::STRINGFCTN) {
01152 yylval.node->node_type = STRFCTN;
01153 return STRFCTN;
01154 }
01155 }
01156 return STRWORD;
01157 }
01158 YY_BREAK
01159 case 50:
01160 YY_RULE_SETUP
01161 #line 238 "AtomLexer.l"
01162 { msgErr << "Bad character:"
01163 << int(*yytext) << ':'
01164 << *yytext << sendmsg;
01165 return PARSEERROR;
01166 }
01167 YY_BREAK
01168 case 51:
01169 YY_RULE_SETUP
01170 #line 243 "AtomLexer.l"
01171 ECHO;
01172 YY_BREAK
01173 #line 1173 "lex.yy.c"
01174 case YY_STATE_EOF(INITIAL):
01175 yyterminate();
01176
01177 case YY_END_OF_BUFFER:
01178 {
01179
01180 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
01181
01182
01183 *yy_cp = yy_hold_char;
01184 YY_RESTORE_YY_MORE_OFFSET
01185
01186 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
01187 {
01188
01189
01190
01191
01192
01193
01194
01195
01196
01197 yy_n_chars = yy_current_buffer->yy_n_chars;
01198 yy_current_buffer->yy_input_file = yyin;
01199 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
01200 }
01201
01202
01203
01204
01205
01206
01207
01208
01209 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
01210 {
01211 yy_state_type yy_next_state;
01212
01213 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
01214
01215 yy_current_state = yy_get_previous_state();
01216
01217
01218
01219
01220
01221
01222
01223
01224
01225
01226 yy_next_state = yy_try_NUL_trans( yy_current_state );
01227
01228 yy_bp = yytext_ptr + YY_MORE_ADJ;
01229
01230 if ( yy_next_state )
01231 {
01232
01233 yy_cp = ++yy_c_buf_p;
01234 yy_current_state = yy_next_state;
01235 goto yy_match;
01236 }
01237
01238 else
01239 {
01240 yy_cp = yy_c_buf_p;
01241 goto yy_find_action;
01242 }
01243 }
01244
01245 else switch ( yy_get_next_buffer() )
01246 {
01247 case EOB_ACT_END_OF_FILE:
01248 {
01249 yy_did_buffer_switch_on_eof = 0;
01250
01251 if ( yywrap() )
01252 {
01253
01254
01255
01256
01257
01258
01259
01260
01261
01262 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
01263
01264 yy_act = YY_STATE_EOF(YY_START);
01265 goto do_action;
01266 }
01267
01268 else
01269 {
01270 if ( ! yy_did_buffer_switch_on_eof )
01271 YY_NEW_FILE;
01272 }
01273 break;
01274 }
01275
01276 case EOB_ACT_CONTINUE_SCAN:
01277 yy_c_buf_p =
01278 yytext_ptr + yy_amount_of_matched_text;
01279
01280 yy_current_state = yy_get_previous_state();
01281
01282 yy_cp = yy_c_buf_p;
01283 yy_bp = yytext_ptr + YY_MORE_ADJ;
01284 goto yy_match;
01285
01286 case EOB_ACT_LAST_MATCH:
01287 yy_c_buf_p =
01288 &yy_current_buffer->yy_ch_buf[yy_n_chars];
01289
01290 yy_current_state = yy_get_previous_state();
01291
01292 yy_cp = yy_c_buf_p;
01293 yy_bp = yytext_ptr + YY_MORE_ADJ;
01294 goto yy_find_action;
01295 }
01296 break;
01297 }
01298
01299 default:
01300 YY_FATAL_ERROR(
01301 "fatal flex scanner internal error--no action found" );
01302 }
01303 }
01304 }
01305
01306
01307
01308
01309
01310
01311
01312
01313
01314
01315 static int yy_get_next_buffer()
01316 {
01317 register char *dest = yy_current_buffer->yy_ch_buf;
01318 register char *source = yytext_ptr;
01319 register int number_to_move, i;
01320 int ret_val;
01321
01322 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
01323 YY_FATAL_ERROR(
01324 "fatal flex scanner internal error--end of buffer missed" );
01325
01326 if ( yy_current_buffer->yy_fill_buffer == 0 )
01327 {
01328 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
01329 {
01330
01331
01332
01333 return EOB_ACT_END_OF_FILE;
01334 }
01335
01336 else
01337 {
01338
01339
01340
01341 return EOB_ACT_LAST_MATCH;
01342 }
01343 }
01344
01345
01346
01347
01348 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
01349
01350 for ( i = 0; i < number_to_move; ++i )
01351 *(dest++) = *(source++);
01352
01353 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
01354
01355
01356
01357 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
01358
01359 else
01360 {
01361 int num_to_read =
01362 yy_current_buffer->yy_buf_size - number_to_move - 1;
01363
01364 while ( num_to_read <= 0 )
01365 {
01366 #ifdef YY_USES_REJECT
01367 YY_FATAL_ERROR(
01368 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
01369 #else
01370
01371
01372 YY_BUFFER_STATE b = yy_current_buffer;
01373
01374 int yy_c_buf_p_offset =
01375 (int) (yy_c_buf_p - b->yy_ch_buf);
01376
01377 if ( b->yy_is_our_buffer )
01378 {
01379 int new_size = b->yy_buf_size * 2;
01380
01381 if ( new_size <= 0 )
01382 b->yy_buf_size += b->yy_buf_size / 8;
01383 else
01384 b->yy_buf_size *= 2;
01385
01386 b->yy_ch_buf = (char *)
01387
01388 yy_flex_realloc( (void *) b->yy_ch_buf,
01389 b->yy_buf_size + 2 );
01390 }
01391 else
01392
01393 b->yy_ch_buf = 0;
01394
01395 if ( ! b->yy_ch_buf )
01396 YY_FATAL_ERROR(
01397 "fatal error - scanner input buffer overflow" );
01398
01399 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
01400
01401 num_to_read = yy_current_buffer->yy_buf_size -
01402 number_to_move - 1;
01403 #endif
01404 }
01405
01406 if ( num_to_read > YY_READ_BUF_SIZE )
01407 num_to_read = YY_READ_BUF_SIZE;
01408
01409
01410 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
01411 yy_n_chars, num_to_read );
01412
01413 yy_current_buffer->yy_n_chars = yy_n_chars;
01414 }
01415
01416 if ( yy_n_chars == 0 )
01417 {
01418 if ( number_to_move == YY_MORE_ADJ )
01419 {
01420 ret_val = EOB_ACT_END_OF_FILE;
01421 yyrestart( yyin );
01422 }
01423
01424 else
01425 {
01426 ret_val = EOB_ACT_LAST_MATCH;
01427 yy_current_buffer->yy_buffer_status =
01428 YY_BUFFER_EOF_PENDING;
01429 }
01430 }
01431
01432 else
01433 ret_val = EOB_ACT_CONTINUE_SCAN;
01434
01435 yy_n_chars += number_to_move;
01436 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
01437 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
01438
01439 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
01440
01441 return ret_val;
01442 }
01443
01444
01445
01446
01447 static yy_state_type yy_get_previous_state()
01448 {
01449 register yy_state_type yy_current_state;
01450 register char *yy_cp;
01451
01452 yy_current_state = yy_start;
01453
01454 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
01455 {
01456 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
01457 if ( yy_accept[yy_current_state] )
01458 {
01459 yy_last_accepting_state = yy_current_state;
01460 yy_last_accepting_cpos = yy_cp;
01461 }
01462 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01463 {
01464 yy_current_state = (int) yy_def[yy_current_state];
01465 if ( yy_current_state >= 155 )
01466 yy_c = yy_meta[(unsigned int) yy_c];
01467 }
01468 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01469 }
01470
01471 return yy_current_state;
01472 }
01473
01474
01475
01476
01477
01478
01479
01480
01481 #ifdef YY_USE_PROTOS
01482 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
01483 #else
01484 static yy_state_type yy_try_NUL_trans( yy_current_state )
01485 yy_state_type yy_current_state;
01486 #endif
01487 {
01488 register int yy_is_jam;
01489 register char *yy_cp = yy_c_buf_p;
01490
01491 register YY_CHAR yy_c = 1;
01492 if ( yy_accept[yy_current_state] )
01493 {
01494 yy_last_accepting_state = yy_current_state;
01495 yy_last_accepting_cpos = yy_cp;
01496 }
01497 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01498 {
01499 yy_current_state = (int) yy_def[yy_current_state];
01500 if ( yy_current_state >= 155 )
01501 yy_c = yy_meta[(unsigned int) yy_c];
01502 }
01503 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01504 yy_is_jam = (yy_current_state == 154);
01505
01506 return yy_is_jam ? 0 : yy_current_state;
01507 }
01508
01509
01510 #ifndef YY_NO_UNPUT
01511 #ifdef YY_USE_PROTOS
01512 static void yyunput( int c, register char *yy_bp )
01513 #else
01514 static void yyunput( c, yy_bp )
01515 int c;
01516 register char *yy_bp;
01517 #endif
01518 {
01519 register char *yy_cp = yy_c_buf_p;
01520
01521
01522 *yy_cp = yy_hold_char;
01523
01524 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
01525 {
01526
01527 register int number_to_move = yy_n_chars + 2;
01528 register char *dest = &yy_current_buffer->yy_ch_buf[
01529 yy_current_buffer->yy_buf_size + 2];
01530 register char *source =
01531 &yy_current_buffer->yy_ch_buf[number_to_move];
01532
01533 while ( source > yy_current_buffer->yy_ch_buf )
01534 *--dest = *--source;
01535
01536 yy_cp += (int) (dest - source);
01537 yy_bp += (int) (dest - source);
01538 yy_current_buffer->yy_n_chars =
01539 yy_n_chars = yy_current_buffer->yy_buf_size;
01540
01541 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
01542 YY_FATAL_ERROR( "flex scanner push-back overflow" );
01543 }
01544
01545 *--yy_cp = (char) c;
01546
01547
01548 yytext_ptr = yy_bp;
01549 yy_hold_char = *yy_cp;
01550 yy_c_buf_p = yy_cp;
01551 }
01552 #endif
01553
01554
01555 #ifdef __cplusplus
01556 static int yyinput()
01557 #else
01558 static int input()
01559 #endif
01560 {
01561 int c;
01562
01563 *yy_c_buf_p = yy_hold_char;
01564
01565 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
01566 {
01567
01568
01569
01570
01571 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
01572
01573 *yy_c_buf_p = '\0';
01574
01575 else
01576 {
01577 int offset = yy_c_buf_p - yytext_ptr;
01578 ++yy_c_buf_p;
01579
01580 switch ( yy_get_next_buffer() )
01581 {
01582 case EOB_ACT_LAST_MATCH:
01583
01584
01585
01586
01587
01588
01589
01590
01591
01592
01593
01594 yyrestart( yyin );
01595
01596
01597
01598 case EOB_ACT_END_OF_FILE:
01599 {
01600 if ( yywrap() )
01601 return EOF;
01602
01603 if ( ! yy_did_buffer_switch_on_eof )
01604 YY_NEW_FILE;
01605 #ifdef __cplusplus
01606 return yyinput();
01607 #else
01608 return input();
01609 #endif
01610 }
01611
01612 case EOB_ACT_CONTINUE_SCAN:
01613 yy_c_buf_p = yytext_ptr + offset;
01614 break;
01615 }
01616 }
01617 }
01618
01619 c = *(unsigned char *) yy_c_buf_p;
01620 *yy_c_buf_p = '\0';
01621 yy_hold_char = *++yy_c_buf_p;
01622
01623
01624 return c;
01625 }
01626
01627
01628 #ifdef YY_USE_PROTOS
01629 void yyrestart( FILE *input_file )
01630 #else
01631 void yyrestart( input_file )
01632 FILE *input_file;
01633 #endif
01634 {
01635 if ( ! yy_current_buffer )
01636 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
01637
01638 yy_init_buffer( yy_current_buffer, input_file );
01639 yy_load_buffer_state();
01640 }
01641
01642
01643 #ifdef YY_USE_PROTOS
01644 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
01645 #else
01646 void yy_switch_to_buffer( new_buffer )
01647 YY_BUFFER_STATE new_buffer;
01648 #endif
01649 {
01650 if ( yy_current_buffer == new_buffer )
01651 return;
01652
01653 if ( yy_current_buffer )
01654 {
01655
01656 *yy_c_buf_p = yy_hold_char;
01657 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
01658 yy_current_buffer->yy_n_chars = yy_n_chars;
01659 }
01660
01661 yy_current_buffer = new_buffer;
01662 yy_load_buffer_state();
01663
01664
01665
01666
01667
01668
01669 yy_did_buffer_switch_on_eof = 1;
01670 }
01671
01672
01673 #ifdef YY_USE_PROTOS
01674 void yy_load_buffer_state( void )
01675 #else
01676 void yy_load_buffer_state()
01677 #endif
01678 {
01679 yy_n_chars = yy_current_buffer->yy_n_chars;
01680 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
01681 yyin = yy_current_buffer->yy_input_file;
01682 yy_hold_char = *yy_c_buf_p;
01683 }
01684
01685
01686 #ifdef YY_USE_PROTOS
01687 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
01688 #else
01689 YY_BUFFER_STATE yy_create_buffer( file, size )
01690 FILE *file;
01691 int size;
01692 #endif
01693 {
01694 YY_BUFFER_STATE b;
01695
01696 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
01697 if ( ! b )
01698 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01699
01700 b->yy_buf_size = size;
01701
01702
01703
01704
01705 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
01706 if ( ! b->yy_ch_buf )
01707 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01708
01709 b->yy_is_our_buffer = 1;
01710
01711 yy_init_buffer( b, file );
01712
01713 return b;
01714 }
01715
01716
01717 #ifdef YY_USE_PROTOS
01718 void yy_delete_buffer( YY_BUFFER_STATE b )
01719 #else
01720 void yy_delete_buffer( b )
01721 YY_BUFFER_STATE b;
01722 #endif
01723 {
01724 if ( ! b )
01725 return;
01726
01727 if ( b == yy_current_buffer )
01728 yy_current_buffer = (YY_BUFFER_STATE) 0;
01729
01730 if ( b->yy_is_our_buffer )
01731 yy_flex_free( (void *) b->yy_ch_buf );
01732
01733 yy_flex_free( (void *) b );
01734 }
01735
01736
01737 #ifndef YY_ALWAYS_INTERACTIVE
01738 #ifndef YY_NEVER_INTERACTIVE
01739 extern int isatty YY_PROTO(( int ));
01740 #endif
01741 #endif
01742
01743 #ifdef YY_USE_PROTOS
01744 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
01745 #else
01746 void yy_init_buffer( b, file )
01747 YY_BUFFER_STATE b;
01748 FILE *file;
01749 #endif
01750
01751
01752 {
01753 yy_flush_buffer( b );
01754
01755 b->yy_input_file = file;
01756 b->yy_fill_buffer = 1;
01757
01758 #if YY_ALWAYS_INTERACTIVE
01759 b->yy_is_interactive = 1;
01760 #else
01761 #if YY_NEVER_INTERACTIVE
01762 b->yy_is_interactive = 0;
01763 #else
01764 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
01765 #endif
01766 #endif
01767 }
01768
01769
01770 #ifdef YY_USE_PROTOS
01771 void yy_flush_buffer( YY_BUFFER_STATE b )
01772 #else
01773 void yy_flush_buffer( b )
01774 YY_BUFFER_STATE b;
01775 #endif
01776
01777 {
01778 if ( ! b )
01779 return;
01780
01781 b->yy_n_chars = 0;
01782
01783
01784
01785
01786
01787 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
01788 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
01789
01790 b->yy_buf_pos = &b->yy_ch_buf[0];
01791
01792 b->yy_at_bol = 1;
01793 b->yy_buffer_status = YY_BUFFER_NEW;
01794
01795 if ( b == yy_current_buffer )
01796 yy_load_buffer_state();
01797 }
01798
01799
01800 #ifndef YY_NO_SCAN_BUFFER
01801 #ifdef YY_USE_PROTOS
01802 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
01803 #else
01804 YY_BUFFER_STATE yy_scan_buffer( base, size )
01805 char *base;
01806 yy_size_t size;
01807 #endif
01808 {
01809 YY_BUFFER_STATE b;
01810
01811 if ( size < 2 ||
01812 base[size-2] != YY_END_OF_BUFFER_CHAR ||
01813 base[size-1] != YY_END_OF_BUFFER_CHAR )
01814
01815 return 0;
01816
01817 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
01818 if ( ! b )
01819 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
01820
01821 b->yy_buf_size = size - 2;
01822 b->yy_buf_pos = b->yy_ch_buf = base;
01823 b->yy_is_our_buffer = 0;
01824 b->yy_input_file = 0;
01825 b->yy_n_chars = b->yy_buf_size;
01826 b->yy_is_interactive = 0;
01827 b->yy_at_bol = 1;
01828 b->yy_fill_buffer = 0;
01829 b->yy_buffer_status = YY_BUFFER_NEW;
01830
01831 yy_switch_to_buffer( b );
01832
01833 return b;
01834 }
01835 #endif
01836
01837
01838 #ifndef YY_NO_SCAN_STRING
01839 #ifdef YY_USE_PROTOS
01840 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
01841 #else
01842 YY_BUFFER_STATE yy_scan_string( yy_str )
01843 yyconst char *yy_str;
01844 #endif
01845 {
01846 int len;
01847 for ( len = 0; yy_str[len]; ++len )
01848 ;
01849
01850 return yy_scan_bytes( yy_str, len );
01851 }
01852 #endif
01853
01854
01855 #ifndef YY_NO_SCAN_BYTES
01856 #ifdef YY_USE_PROTOS
01857 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
01858 #else
01859 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
01860 yyconst char *bytes;
01861 int len;
01862 #endif
01863 {
01864 YY_BUFFER_STATE b;
01865 char *buf;
01866 yy_size_t n;
01867 int i;
01868
01869
01870 n = len + 2;
01871 buf = (char *) yy_flex_alloc( n );
01872 if ( ! buf )
01873 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
01874
01875 for ( i = 0; i < len; ++i )
01876 buf[i] = bytes[i];
01877
01878 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
01879
01880 b = yy_scan_buffer( buf, n );
01881 if ( ! b )
01882 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
01883
01884
01885
01886
01887 b->yy_is_our_buffer = 1;
01888
01889 return b;
01890 }
01891 #endif
01892
01893
01894 #ifndef YY_NO_PUSH_STATE
01895 #ifdef YY_USE_PROTOS
01896 static void yy_push_state( int new_state )
01897 #else
01898 static void yy_push_state( new_state )
01899 int new_state;
01900 #endif
01901 {
01902 if ( yy_start_stack_ptr >= yy_start_stack_depth )
01903 {
01904 yy_size_t new_size;
01905
01906 yy_start_stack_depth += YY_START_STACK_INCR;
01907 new_size = yy_start_stack_depth * sizeof( int );
01908
01909 if ( ! yy_start_stack )
01910 yy_start_stack = (int *) yy_flex_alloc( new_size );
01911
01912 else
01913 yy_start_stack = (int *) yy_flex_realloc(
01914 (void *) yy_start_stack, new_size );
01915
01916 if ( ! yy_start_stack )
01917 YY_FATAL_ERROR(
01918 "out of memory expanding start-condition stack" );
01919 }
01920
01921 yy_start_stack[yy_start_stack_ptr++] = YY_START;
01922
01923 BEGIN(new_state);
01924 }
01925 #endif
01926
01927
01928 #ifndef YY_NO_POP_STATE
01929 static void yy_pop_state()
01930 {
01931 if ( --yy_start_stack_ptr < 0 )
01932 YY_FATAL_ERROR( "start-condition stack underflow" );
01933
01934 BEGIN(yy_start_stack[yy_start_stack_ptr]);
01935 }
01936 #endif
01937
01938
01939 #ifndef YY_NO_TOP_STATE
01940 static int yy_top_state()
01941 {
01942 return yy_start_stack[yy_start_stack_ptr - 1];
01943 }
01944 #endif
01945
01946 #ifndef YY_EXIT_FAILURE
01947 #define YY_EXIT_FAILURE 2
01948 #endif
01949
01950 #ifdef YY_USE_PROTOS
01951 static void yy_fatal_error( yyconst char msg[] )
01952 #else
01953 static void yy_fatal_error( msg )
01954 char msg[];
01955 #endif
01956 {
01957 (void) fprintf( stderr, "%s\n", msg );
01958 exit( YY_EXIT_FAILURE );
01959 }
01960
01961
01962
01963
01964
01965 #undef yyless
01966 #define yyless(n) \
01967 do \
01968 { \
01969 \
01970 yytext[yyleng] = yy_hold_char; \
01971 yy_c_buf_p = yytext + n; \
01972 yy_hold_char = *yy_c_buf_p; \
01973 *yy_c_buf_p = '\0'; \
01974 yyleng = n; \
01975 } \
01976 while ( 0 )
01977
01978
01979
01980
01981 #ifndef yytext_ptr
01982 #ifdef YY_USE_PROTOS
01983 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
01984 #else
01985 static void yy_flex_strncpy( s1, s2, n )
01986 char *s1;
01987 yyconst char *s2;
01988 int n;
01989 #endif
01990 {
01991 register int i;
01992 for ( i = 0; i < n; ++i )
01993 s1[i] = s2[i];
01994 }
01995 #endif
01996
01997 #ifdef YY_NEED_STRLEN
01998 #ifdef YY_USE_PROTOS
01999 static int yy_flex_strlen( yyconst char *s )
02000 #else
02001 static int yy_flex_strlen( s )
02002 yyconst char *s;
02003 #endif
02004 {
02005 register int n;
02006 for ( n = 0; s[n]; ++n )
02007 ;
02008
02009 return n;
02010 }
02011 #endif
02012
02013
02014 #ifdef YY_USE_PROTOS
02015 static void *yy_flex_alloc( yy_size_t size )
02016 #else
02017 static void *yy_flex_alloc( size )
02018 yy_size_t size;
02019 #endif
02020 {
02021 return (void *) malloc( size );
02022 }
02023
02024 #ifdef YY_USE_PROTOS
02025 static void *yy_flex_realloc( void *ptr, yy_size_t size )
02026 #else
02027 static void *yy_flex_realloc( ptr, size )
02028 void *ptr;
02029 yy_size_t size;
02030 #endif
02031 {
02032
02033
02034
02035
02036
02037
02038
02039 return (void *) realloc( (char *) ptr, size );
02040 }
02041
02042 #ifdef YY_USE_PROTOS
02043 static void yy_flex_free( void *ptr )
02044 #else
02045 static void yy_flex_free( ptr )
02046 void *ptr;
02047 #endif
02048 {
02049 free( ptr );
02050 }
02051
02052 #if YY_MAIN
02053 int main()
02054 {
02055 yylex();
02056 return 0;
02057 }
02058 #endif
02059 #line 243 "AtomLexer.l"
02060
02061
02062 #include "SymbolTable.h"
02063
02064 int atomparser_yylookup(const char *s, int)
02065 {
02066 return atomparser_symbols->find_attribute(s);
02067 }
02068
02069
02070 char *atomparser_yystring;
02071
02072
02073 SymbolTable *atomparser_symbols;
02074
02075