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_NO_INPUT 1
00558 #define YY_NO_UNPUT 1
00559 #define YY_DECL extern "C" int yylex YY_PROTO(( void ))
00560
00561
00562 #undef YY_INPUT
00563 #define YY_INPUT(buf,result,max) { \
00564 int c = *atomparser_yystring; \
00565 result = (c == 0) ? YY_NULL : \
00566 (buf[0] = c, atomparser_yystring++, 1); \
00567 }
00568 #else
00569
00570 #define input() (*atomparser_yystring++)
00571 #define unput(c) (*--atomparser_yystring = c)
00572 #endif
00573
00574
00575
00576 #if 0
00577
00578 #undef lex_input
00579 #define lex_input() input()
00580 #endif
00581
00582
00583
00584
00585 #if defined(ARCH_SOLARIS2) || defined(ARCH_SOLARIS2_64) || defined(ARCH_SOLARISX86)
00586 #undef unput
00587 #define unput lex_unput_only_if_needed
00588
00589 int lex_unput_only_if_needed(int c) {
00590 atomparser_yystring--;
00591 if (c != *atomparser_yystring) {
00592 *atomparser_yystring = c;
00593 }
00594 return c;
00595 }
00596 #endif
00597
00598 #line 95 "AtomLexer.l"
00599
00600
00601
00602
00603
00604
00605
00606
00607
00608
00609
00610 #line 608 "lex.yy.c"
00611
00612
00613
00614
00615
00616 #ifndef YY_SKIP_YYWRAP
00617 #ifdef __cplusplus
00618 extern "C" int yywrap YY_PROTO(( void ));
00619 #else
00620 extern int yywrap YY_PROTO(( void ));
00621 #endif
00622 #endif
00623
00624 #ifndef YY_NO_UNPUT
00625 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
00626 #endif
00627
00628 #ifndef yytext_ptr
00629 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
00630 #endif
00631
00632 #ifdef YY_NEED_STRLEN
00633 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
00634 #endif
00635
00636 #ifndef YY_NO_INPUT
00637 #ifdef __cplusplus
00638 static int yyinput YY_PROTO(( void ));
00639 #else
00640 static int input YY_PROTO(( void ));
00641 #endif
00642 #endif
00643
00644 #if YY_STACK_USED
00645 static int yy_start_stack_ptr = 0;
00646 static int yy_start_stack_depth = 0;
00647 static int *yy_start_stack = 0;
00648 #ifndef YY_NO_PUSH_STATE
00649 static void yy_push_state YY_PROTO(( int new_state ));
00650 #endif
00651 #ifndef YY_NO_POP_STATE
00652 static void yy_pop_state YY_PROTO(( void ));
00653 #endif
00654 #ifndef YY_NO_TOP_STATE
00655 static int yy_top_state YY_PROTO(( void ));
00656 #endif
00657
00658 #else
00659 #define YY_NO_PUSH_STATE 1
00660 #define YY_NO_POP_STATE 1
00661 #define YY_NO_TOP_STATE 1
00662 #endif
00663
00664 #ifdef YY_MALLOC_DECL
00665 YY_MALLOC_DECL
00666 #else
00667 #if __STDC__
00668 #ifndef __cplusplus
00669 #include <stdlib.h>
00670 #endif
00671 #else
00672
00673
00674
00675
00676 #endif
00677 #endif
00678
00679
00680 #ifndef YY_READ_BUF_SIZE
00681 #define YY_READ_BUF_SIZE 8192
00682 #endif
00683
00684
00685
00686 #ifndef ECHO
00687
00688
00689
00690 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
00691 #endif
00692
00693
00694
00695
00696 #ifndef YY_INPUT
00697 #define YY_INPUT(buf,result,max_size) \
00698 if ( yy_current_buffer->yy_is_interactive ) \
00699 { \
00700 int c = '*', n; \
00701 for ( n = 0; n < max_size && \
00702 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
00703 buf[n] = (char) c; \
00704 if ( c == '\n' ) \
00705 buf[n++] = (char) c; \
00706 if ( c == EOF && ferror( yyin ) ) \
00707 YY_FATAL_ERROR( "input in flex scanner failed" ); \
00708 result = n; \
00709 } \
00710 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
00711 && ferror( yyin ) ) \
00712 YY_FATAL_ERROR( "input in flex scanner failed" );
00713 #endif
00714
00715
00716
00717
00718
00719 #ifndef yyterminate
00720 #define yyterminate() return YY_NULL
00721 #endif
00722
00723
00724 #ifndef YY_START_STACK_INCR
00725 #define YY_START_STACK_INCR 25
00726 #endif
00727
00728
00729 #ifndef YY_FATAL_ERROR
00730 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
00731 #endif
00732
00733
00734
00735
00736 #ifndef YY_DECL
00737 #define YY_DECL int yylex YY_PROTO(( void ))
00738 #endif
00739
00740
00741
00742
00743 #ifndef YY_USER_ACTION
00744 #define YY_USER_ACTION
00745 #endif
00746
00747
00748 #ifndef YY_BREAK
00749 #define YY_BREAK break;
00750 #endif
00751
00752 #define YY_RULE_SETUP \
00753 YY_USER_ACTION
00754
00755 YY_DECL
00756 {
00757 register yy_state_type yy_current_state;
00758 register char *yy_cp, *yy_bp;
00759 register int yy_act;
00760
00761 #line 112 "AtomLexer.l"
00762
00763 #line 761 "lex.yy.c"
00764
00765 if ( yy_init )
00766 {
00767 yy_init = 0;
00768
00769 #ifdef YY_USER_INIT
00770 YY_USER_INIT;
00771 #endif
00772
00773 if ( ! yy_start )
00774 yy_start = 1;
00775
00776 if ( ! yyin )
00777 yyin = stdin;
00778
00779 if ( ! yyout )
00780 yyout = stdout;
00781
00782 if ( ! yy_current_buffer )
00783 yy_current_buffer =
00784 yy_create_buffer( yyin, YY_BUF_SIZE );
00785
00786 yy_load_buffer_state();
00787 }
00788
00789 while ( 1 )
00790 {
00791 yy_cp = yy_c_buf_p;
00792
00793
00794 *yy_cp = yy_hold_char;
00795
00796
00797
00798
00799 yy_bp = yy_cp;
00800
00801 yy_current_state = yy_start;
00802 yy_match:
00803 do
00804 {
00805 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
00806 if ( yy_accept[yy_current_state] )
00807 {
00808 yy_last_accepting_state = yy_current_state;
00809 yy_last_accepting_cpos = yy_cp;
00810 }
00811 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
00812 {
00813 yy_current_state = (int) yy_def[yy_current_state];
00814 if ( yy_current_state >= 155 )
00815 yy_c = yy_meta[(unsigned int) yy_c];
00816 }
00817 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
00818 ++yy_cp;
00819 }
00820 while ( yy_base[yy_current_state] != 386 );
00821
00822 yy_find_action:
00823 yy_act = yy_accept[yy_current_state];
00824 if ( yy_act == 0 )
00825 {
00826 yy_cp = yy_last_accepting_cpos;
00827 yy_current_state = yy_last_accepting_state;
00828 yy_act = yy_accept[yy_current_state];
00829 }
00830
00831 YY_DO_BEFORE_ACTION;
00832
00833
00834 do_action:
00835
00836
00837 switch ( yy_act )
00838 {
00839 case 0:
00840
00841 *yy_cp = yy_hold_char;
00842 yy_cp = yy_last_accepting_cpos;
00843 yy_current_state = yy_last_accepting_state;
00844 goto yy_find_action;
00845
00846 case 1:
00847 YY_RULE_SETUP
00848 #line 113 "AtomLexer.l"
00849 {
00850 yylval.dval = atof((char *) yytext);
00851 return(FLOATVAL);
00852 }
00853 YY_BREAK
00854 case 2:
00855 YY_RULE_SETUP
00856 #line 117 "AtomLexer.l"
00857 { return('('); }
00858 YY_BREAK
00859 case 3:
00860 YY_RULE_SETUP
00861 #line 118 "AtomLexer.l"
00862 { return(')'); }
00863 YY_BREAK
00864 case 4:
00865 YY_RULE_SETUP
00866 #line 119 "AtomLexer.l"
00867 { return(AND);}
00868 YY_BREAK
00869 case 5:
00870 YY_RULE_SETUP
00871 #line 120 "AtomLexer.l"
00872 { return(OR);}
00873 YY_BREAK
00874 case 6:
00875 YY_RULE_SETUP
00876 #line 121 "AtomLexer.l"
00877 { return(NOT);}
00878 YY_BREAK
00879 case 7:
00880 YY_RULE_SETUP
00881 #line 122 "AtomLexer.l"
00882 { return(WITHIN);}
00883 YY_BREAK
00884 case 8:
00885 YY_RULE_SETUP
00886 #line 123 "AtomLexer.l"
00887 { return(EXWITHIN);}
00888 YY_BREAK
00889 case 9:
00890 YY_RULE_SETUP
00891 #line 124 "AtomLexer.l"
00892 { return(PBWITHIN);}
00893 YY_BREAK
00894 case 10:
00895 YY_RULE_SETUP
00896 #line 125 "AtomLexer.l"
00897 { return(WITHINBONDS);}
00898 YY_BREAK
00899 case 11:
00900 YY_RULE_SETUP
00901 #line 126 "AtomLexer.l"
00902 { return(MAXRINGSIZE);}
00903 YY_BREAK
00904 case 12:
00905 YY_RULE_SETUP
00906 #line 127 "AtomLexer.l"
00907 { return(RINGSIZE);}
00908 YY_BREAK
00909 case 13:
00910 YY_RULE_SETUP
00911 #line 128 "AtomLexer.l"
00912 { return(OF);}
00913 YY_BREAK
00914 case 14:
00915 YY_RULE_SETUP
00916 #line 129 "AtomLexer.l"
00917 { return(FROM);}
00918 YY_BREAK
00919 case 15:
00920 YY_RULE_SETUP
00921 #line 130 "AtomLexer.l"
00922 { return(SAME);}
00923 YY_BREAK
00924 case 16:
00925 YY_RULE_SETUP
00926 #line 131 "AtomLexer.l"
00927 { return(AS);}
00928 YY_BREAK
00929 case 17:
00930 YY_RULE_SETUP
00931 #line 132 "AtomLexer.l"
00932 { return(THROUGH);}
00933 YY_BREAK
00934 case 18:
00935 YY_RULE_SETUP
00936 #line 133 "AtomLexer.l"
00937 { return(WHERE);}
00938 YY_BREAK
00939 case 19:
00940 YY_RULE_SETUP
00941 #line 134 "AtomLexer.l"
00942 { return(NEAREST);}
00943 YY_BREAK
00944 case 20:
00945 YY_RULE_SETUP
00946 #line 136 "AtomLexer.l"
00947 { return(RANGE);}
00948 YY_BREAK
00949 case 21:
00950 YY_RULE_SETUP
00951 #line 137 "AtomLexer.l"
00952 {
00953 yylval.node = new atomparser_node(STRWORD);
00954 yylval.node->sele.s = ((char *) yytext)+1;
00955
00956 yylval.node->sele.s.chop(1);
00957
00958 yylval.node->sele.s.gsub("\\\"", "\"");
00959
00960 yylval.node->sele.s.gsub("\\\\", "\\");
00961 yylval.node->sele.st = DQ_STRING;
00962 return STRWORD;
00963 }
00964 YY_BREAK
00965 case 22:
00966 YY_RULE_SETUP
00967 #line 149 "AtomLexer.l"
00968 {
00969
00970 yylval.node = new atomparser_node(STRWORD);
00971 yylval.node->sele.s = ((char *) yytext)+1;
00972
00973 yylval.node->sele.s.chop(1);
00974
00975 yylval.node->sele.s.gsub("\\'", "'");
00976
00977 yylval.node->sele.s.gsub("\\\\", "\\");
00978 yylval.node->sele.st = SQ_STRING;
00979 return STRWORD;
00980 }
00981 YY_BREAK
00982 case 23:
00983 YY_RULE_SETUP
00984 #line 162 "AtomLexer.l"
00985 {
00986 msgErr << "Unterminated double quoted string: "
00987 << (char *) yytext << sendmsg;
00988 return PARSEERROR;
00989 }
00990 YY_BREAK
00991 case 24:
00992 YY_RULE_SETUP
00993 #line 167 "AtomLexer.l"
00994 {
00995 msgErr << "Unterminated single quoted string: "
00996 << (char *) yytext << sendmsg;
00997 return PARSEERROR;
00998 }
00999 YY_BREAK
01000 case 25:
01001 YY_RULE_SETUP
01002 #line 173 "AtomLexer.l"
01003 { return(NLT); }
01004 YY_BREAK
01005 case 26:
01006 YY_RULE_SETUP
01007 #line 174 "AtomLexer.l"
01008 { return(NLE);}
01009 YY_BREAK
01010 case 27:
01011 YY_RULE_SETUP
01012 #line 175 "AtomLexer.l"
01013 { return(NEQ);}
01014 YY_BREAK
01015 case 28:
01016 YY_RULE_SETUP
01017 #line 176 "AtomLexer.l"
01018 { return(NEQ); }
01019 YY_BREAK
01020 case 29:
01021 YY_RULE_SETUP
01022 #line 177 "AtomLexer.l"
01023 { return(NGE);}
01024 YY_BREAK
01025 case 30:
01026 YY_RULE_SETUP
01027 #line 178 "AtomLexer.l"
01028 { return(NGT);}
01029 YY_BREAK
01030 case 31:
01031 YY_RULE_SETUP
01032 #line 179 "AtomLexer.l"
01033 { return(NNE);}
01034 YY_BREAK
01035 case 32:
01036 YY_RULE_SETUP
01037 #line 181 "AtomLexer.l"
01038 { return(SLT); }
01039 YY_BREAK
01040 case 33:
01041 YY_RULE_SETUP
01042 #line 182 "AtomLexer.l"
01043 { return(SLE);}
01044 YY_BREAK
01045 case 34:
01046 YY_RULE_SETUP
01047 #line 183 "AtomLexer.l"
01048 { return(SEQ);}
01049 YY_BREAK
01050 case 35:
01051 YY_RULE_SETUP
01052 #line 184 "AtomLexer.l"
01053 { return(SGE);}
01054 YY_BREAK
01055 case 36:
01056 YY_RULE_SETUP
01057 #line 185 "AtomLexer.l"
01058 { return(SGT);}
01059 YY_BREAK
01060 case 37:
01061 YY_RULE_SETUP
01062 #line 186 "AtomLexer.l"
01063 { return(SNE);}
01064 YY_BREAK
01065 case 38:
01066 YY_RULE_SETUP
01067 #line 187 "AtomLexer.l"
01068 { return(MATCH);}
01069 YY_BREAK
01070 case 39:
01071 YY_RULE_SETUP
01072 #line 189 "AtomLexer.l"
01073 { return(ADD);}
01074 YY_BREAK
01075 case 40:
01076 YY_RULE_SETUP
01077 #line 190 "AtomLexer.l"
01078 { return(SUB);}
01079 YY_BREAK
01080 case 41:
01081 YY_RULE_SETUP
01082 #line 191 "AtomLexer.l"
01083 { return(DIV);}
01084 YY_BREAK
01085 case 42:
01086 YY_RULE_SETUP
01087 #line 192 "AtomLexer.l"
01088 { return(MULT);}
01089 YY_BREAK
01090 case 43:
01091 YY_RULE_SETUP
01092 #line 193 "AtomLexer.l"
01093 { return(MOD);}
01094 YY_BREAK
01095 case 44:
01096 YY_RULE_SETUP
01097 #line 194 "AtomLexer.l"
01098 { return(EXP);}
01099 YY_BREAK
01100 case 45:
01101 YY_RULE_SETUP
01102 #line 195 "AtomLexer.l"
01103 { return(EXP);}
01104 YY_BREAK
01105 case 46:
01106 YY_RULE_SETUP
01107 #line 197 "AtomLexer.l"
01108 ;
01109 YY_BREAK
01110 case 47:
01111 YY_RULE_SETUP
01112 #line 199 "AtomLexer.l"
01113 {
01114
01115 yylval.node = new atomparser_node(STRWORD);
01116 yylval.node->sele.s = (char *) yytext;
01117 yylval.node->sele.st = RAW_STRING;
01118 return STRWORD;
01119 }
01120 YY_BREAK
01121 case 48:
01122 YY_RULE_SETUP
01123 #line 206 "AtomLexer.l"
01124 { yylval.ival = atoi((char *) yytext);
01125 return(INTVAL);
01126 }
01127 YY_BREAK
01128 case 49:
01129 YY_RULE_SETUP
01130 #line 209 "AtomLexer.l"
01131 {
01132
01133 yylval.node = new atomparser_node(STRWORD);
01134 yylval.node->sele.s = (char *) yytext;
01135 yylval.node->sele.st = RAW_STRING;
01136 int len = strlen((char *) yytext);
01137 int i;
01138 if ((i= atomparser_yylookup((char *) yytext, len)) >= 0) {
01139 yylval.node->extra_type = i;
01140 if (atomparser_symbols->fctns.data(i)->is_a ==
01141 SymbolTableElement::FUNCTION) {
01142 yylval.node->node_type = FUNC;
01143 return FUNC;
01144 } else if (atomparser_symbols->fctns.data(i)->is_a ==
01145 SymbolTableElement::KEYWORD) {
01146 yylval.node->node_type = KEY;
01147 return KEY;
01148 } else if (atomparser_symbols->fctns.data(i)->is_a ==
01149 SymbolTableElement::SINGLEWORD) {
01150 yylval.node->node_type = SINGLE;
01151 return SINGLE;
01152 } else if (atomparser_symbols->fctns.data(i)->is_a ==
01153 SymbolTableElement::STRINGFCTN) {
01154 yylval.node->node_type = STRFCTN;
01155 return STRFCTN;
01156 }
01157 }
01158 return STRWORD;
01159 }
01160 YY_BREAK
01161 case 50:
01162 YY_RULE_SETUP
01163 #line 238 "AtomLexer.l"
01164 { msgErr << "Bad character:"
01165 << int(*yytext) << ':'
01166 << *yytext << sendmsg;
01167 return PARSEERROR;
01168 }
01169 YY_BREAK
01170 case 51:
01171 YY_RULE_SETUP
01172 #line 243 "AtomLexer.l"
01173 ECHO;
01174 YY_BREAK
01175 #line 1173 "lex.yy.c"
01176 case YY_STATE_EOF(INITIAL):
01177 yyterminate();
01178
01179 case YY_END_OF_BUFFER:
01180 {
01181
01182 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
01183
01184
01185 *yy_cp = yy_hold_char;
01186 YY_RESTORE_YY_MORE_OFFSET
01187
01188 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
01189 {
01190
01191
01192
01193
01194
01195
01196
01197
01198
01199 yy_n_chars = yy_current_buffer->yy_n_chars;
01200 yy_current_buffer->yy_input_file = yyin;
01201 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
01202 }
01203
01204
01205
01206
01207
01208
01209
01210
01211 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
01212 {
01213 yy_state_type yy_next_state;
01214
01215 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
01216
01217 yy_current_state = yy_get_previous_state();
01218
01219
01220
01221
01222
01223
01224
01225
01226
01227
01228 yy_next_state = yy_try_NUL_trans( yy_current_state );
01229
01230 yy_bp = yytext_ptr + YY_MORE_ADJ;
01231
01232 if ( yy_next_state )
01233 {
01234
01235 yy_cp = ++yy_c_buf_p;
01236 yy_current_state = yy_next_state;
01237 goto yy_match;
01238 }
01239
01240 else
01241 {
01242 yy_cp = yy_c_buf_p;
01243 goto yy_find_action;
01244 }
01245 }
01246
01247 else switch ( yy_get_next_buffer() )
01248 {
01249 case EOB_ACT_END_OF_FILE:
01250 {
01251 yy_did_buffer_switch_on_eof = 0;
01252
01253 if ( yywrap() )
01254 {
01255
01256
01257
01258
01259
01260
01261
01262
01263
01264 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
01265
01266 yy_act = YY_STATE_EOF(YY_START);
01267 goto do_action;
01268 }
01269
01270 else
01271 {
01272 if ( ! yy_did_buffer_switch_on_eof )
01273 YY_NEW_FILE;
01274 }
01275 break;
01276 }
01277
01278 case EOB_ACT_CONTINUE_SCAN:
01279 yy_c_buf_p =
01280 yytext_ptr + yy_amount_of_matched_text;
01281
01282 yy_current_state = yy_get_previous_state();
01283
01284 yy_cp = yy_c_buf_p;
01285 yy_bp = yytext_ptr + YY_MORE_ADJ;
01286 goto yy_match;
01287
01288 case EOB_ACT_LAST_MATCH:
01289 yy_c_buf_p =
01290 &yy_current_buffer->yy_ch_buf[yy_n_chars];
01291
01292 yy_current_state = yy_get_previous_state();
01293
01294 yy_cp = yy_c_buf_p;
01295 yy_bp = yytext_ptr + YY_MORE_ADJ;
01296 goto yy_find_action;
01297 }
01298 break;
01299 }
01300
01301 default:
01302 YY_FATAL_ERROR(
01303 "fatal flex scanner internal error--no action found" );
01304 }
01305 }
01306 }
01307
01308
01309
01310
01311
01312
01313
01314
01315
01316
01317 static int yy_get_next_buffer()
01318 {
01319 register char *dest = yy_current_buffer->yy_ch_buf;
01320 register char *source = yytext_ptr;
01321 register int number_to_move, i;
01322 int ret_val;
01323
01324 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
01325 YY_FATAL_ERROR(
01326 "fatal flex scanner internal error--end of buffer missed" );
01327
01328 if ( yy_current_buffer->yy_fill_buffer == 0 )
01329 {
01330 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
01331 {
01332
01333
01334
01335 return EOB_ACT_END_OF_FILE;
01336 }
01337
01338 else
01339 {
01340
01341
01342
01343 return EOB_ACT_LAST_MATCH;
01344 }
01345 }
01346
01347
01348
01349
01350 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
01351
01352 for ( i = 0; i < number_to_move; ++i )
01353 *(dest++) = *(source++);
01354
01355 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
01356
01357
01358
01359 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
01360
01361 else
01362 {
01363 int num_to_read =
01364 yy_current_buffer->yy_buf_size - number_to_move - 1;
01365
01366 while ( num_to_read <= 0 )
01367 {
01368 #ifdef YY_USES_REJECT
01369 YY_FATAL_ERROR(
01370 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
01371 #else
01372
01373
01374 YY_BUFFER_STATE b = yy_current_buffer;
01375
01376 int yy_c_buf_p_offset =
01377 (int) (yy_c_buf_p - b->yy_ch_buf);
01378
01379 if ( b->yy_is_our_buffer )
01380 {
01381 int new_size = b->yy_buf_size * 2;
01382
01383 if ( new_size <= 0 )
01384 b->yy_buf_size += b->yy_buf_size / 8;
01385 else
01386 b->yy_buf_size *= 2;
01387
01388 b->yy_ch_buf = (char *)
01389
01390 yy_flex_realloc( (void *) b->yy_ch_buf,
01391 b->yy_buf_size + 2 );
01392 }
01393 else
01394
01395 b->yy_ch_buf = 0;
01396
01397 if ( ! b->yy_ch_buf )
01398 YY_FATAL_ERROR(
01399 "fatal error - scanner input buffer overflow" );
01400
01401 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
01402
01403 num_to_read = yy_current_buffer->yy_buf_size -
01404 number_to_move - 1;
01405 #endif
01406 }
01407
01408 if ( num_to_read > YY_READ_BUF_SIZE )
01409 num_to_read = YY_READ_BUF_SIZE;
01410
01411
01412 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
01413 yy_n_chars, num_to_read );
01414
01415 yy_current_buffer->yy_n_chars = yy_n_chars;
01416 }
01417
01418 if ( yy_n_chars == 0 )
01419 {
01420 if ( number_to_move == YY_MORE_ADJ )
01421 {
01422 ret_val = EOB_ACT_END_OF_FILE;
01423 yyrestart( yyin );
01424 }
01425
01426 else
01427 {
01428 ret_val = EOB_ACT_LAST_MATCH;
01429 yy_current_buffer->yy_buffer_status =
01430 YY_BUFFER_EOF_PENDING;
01431 }
01432 }
01433
01434 else
01435 ret_val = EOB_ACT_CONTINUE_SCAN;
01436
01437 yy_n_chars += number_to_move;
01438 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
01439 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
01440
01441 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
01442
01443 return ret_val;
01444 }
01445
01446
01447
01448
01449 static yy_state_type yy_get_previous_state()
01450 {
01451 register yy_state_type yy_current_state;
01452 register char *yy_cp;
01453
01454 yy_current_state = yy_start;
01455
01456 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
01457 {
01458 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
01459 if ( yy_accept[yy_current_state] )
01460 {
01461 yy_last_accepting_state = yy_current_state;
01462 yy_last_accepting_cpos = yy_cp;
01463 }
01464 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01465 {
01466 yy_current_state = (int) yy_def[yy_current_state];
01467 if ( yy_current_state >= 155 )
01468 yy_c = yy_meta[(unsigned int) yy_c];
01469 }
01470 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01471 }
01472
01473 return yy_current_state;
01474 }
01475
01476
01477
01478
01479
01480
01481
01482
01483 #ifdef YY_USE_PROTOS
01484 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
01485 #else
01486 static yy_state_type yy_try_NUL_trans( yy_current_state )
01487 yy_state_type yy_current_state;
01488 #endif
01489 {
01490 register int yy_is_jam;
01491 register char *yy_cp = yy_c_buf_p;
01492
01493 register YY_CHAR yy_c = 1;
01494 if ( yy_accept[yy_current_state] )
01495 {
01496 yy_last_accepting_state = yy_current_state;
01497 yy_last_accepting_cpos = yy_cp;
01498 }
01499 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01500 {
01501 yy_current_state = (int) yy_def[yy_current_state];
01502 if ( yy_current_state >= 155 )
01503 yy_c = yy_meta[(unsigned int) yy_c];
01504 }
01505 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01506 yy_is_jam = (yy_current_state == 154);
01507
01508 return yy_is_jam ? 0 : yy_current_state;
01509 }
01510
01511
01512 #ifndef YY_NO_UNPUT
01513 #ifdef YY_USE_PROTOS
01514 static void yyunput( int c, register char *yy_bp )
01515 #else
01516 static void yyunput( c, yy_bp )
01517 int c;
01518 register char *yy_bp;
01519 #endif
01520 {
01521 register char *yy_cp = yy_c_buf_p;
01522
01523
01524 *yy_cp = yy_hold_char;
01525
01526 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
01527 {
01528
01529 register int number_to_move = yy_n_chars + 2;
01530 register char *dest = &yy_current_buffer->yy_ch_buf[
01531 yy_current_buffer->yy_buf_size + 2];
01532 register char *source =
01533 &yy_current_buffer->yy_ch_buf[number_to_move];
01534
01535 while ( source > yy_current_buffer->yy_ch_buf )
01536 *--dest = *--source;
01537
01538 yy_cp += (int) (dest - source);
01539 yy_bp += (int) (dest - source);
01540 yy_current_buffer->yy_n_chars =
01541 yy_n_chars = yy_current_buffer->yy_buf_size;
01542
01543 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
01544 YY_FATAL_ERROR( "flex scanner push-back overflow" );
01545 }
01546
01547 *--yy_cp = (char) c;
01548
01549
01550 yytext_ptr = yy_bp;
01551 yy_hold_char = *yy_cp;
01552 yy_c_buf_p = yy_cp;
01553 }
01554 #endif
01555
01556
01557 #if !defined(YY_NO_INPUT)
01558 #ifdef __cplusplus
01559 static int yyinput()
01560 #else
01561 static int input()
01562 #endif
01563 {
01564 int c;
01565
01566 *yy_c_buf_p = yy_hold_char;
01567
01568 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
01569 {
01570
01571
01572
01573
01574 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
01575
01576 *yy_c_buf_p = '\0';
01577
01578 else
01579 {
01580 int offset = yy_c_buf_p - yytext_ptr;
01581 ++yy_c_buf_p;
01582
01583 switch ( yy_get_next_buffer() )
01584 {
01585 case EOB_ACT_LAST_MATCH:
01586
01587
01588
01589
01590
01591
01592
01593
01594
01595
01596
01597 yyrestart( yyin );
01598
01599
01600
01601 case EOB_ACT_END_OF_FILE:
01602 {
01603 if ( yywrap() )
01604 return EOF;
01605
01606 if ( ! yy_did_buffer_switch_on_eof )
01607 YY_NEW_FILE;
01608 #ifdef __cplusplus
01609 return yyinput();
01610 #else
01611 return input();
01612 #endif
01613 }
01614
01615 case EOB_ACT_CONTINUE_SCAN:
01616 yy_c_buf_p = yytext_ptr + offset;
01617 break;
01618 }
01619 }
01620 }
01621
01622 c = *(unsigned char *) yy_c_buf_p;
01623 *yy_c_buf_p = '\0';
01624 yy_hold_char = *++yy_c_buf_p;
01625
01626
01627 return c;
01628 }
01629 #endif // yyinput()
01630
01631 #ifdef YY_USE_PROTOS
01632 void yyrestart( FILE *input_file )
01633 #else
01634 void yyrestart( input_file )
01635 FILE *input_file;
01636 #endif
01637 {
01638 if ( ! yy_current_buffer )
01639 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
01640
01641 yy_init_buffer( yy_current_buffer, input_file );
01642 yy_load_buffer_state();
01643 }
01644
01645
01646 #ifdef YY_USE_PROTOS
01647 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
01648 #else
01649 void yy_switch_to_buffer( new_buffer )
01650 YY_BUFFER_STATE new_buffer;
01651 #endif
01652 {
01653 if ( yy_current_buffer == new_buffer )
01654 return;
01655
01656 if ( yy_current_buffer )
01657 {
01658
01659 *yy_c_buf_p = yy_hold_char;
01660 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
01661 yy_current_buffer->yy_n_chars = yy_n_chars;
01662 }
01663
01664 yy_current_buffer = new_buffer;
01665 yy_load_buffer_state();
01666
01667
01668
01669
01670
01671
01672 yy_did_buffer_switch_on_eof = 1;
01673 }
01674
01675
01676 #ifdef YY_USE_PROTOS
01677 void yy_load_buffer_state( void )
01678 #else
01679 void yy_load_buffer_state()
01680 #endif
01681 {
01682 yy_n_chars = yy_current_buffer->yy_n_chars;
01683 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
01684 yyin = yy_current_buffer->yy_input_file;
01685 yy_hold_char = *yy_c_buf_p;
01686 }
01687
01688
01689 #ifdef YY_USE_PROTOS
01690 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
01691 #else
01692 YY_BUFFER_STATE yy_create_buffer( file, size )
01693 FILE *file;
01694 int size;
01695 #endif
01696 {
01697 YY_BUFFER_STATE b;
01698
01699 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
01700 if ( ! b )
01701 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01702
01703 b->yy_buf_size = size;
01704
01705
01706
01707
01708 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
01709 if ( ! b->yy_ch_buf )
01710 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
01711
01712 b->yy_is_our_buffer = 1;
01713
01714 yy_init_buffer( b, file );
01715
01716 return b;
01717 }
01718
01719
01720 #ifdef YY_USE_PROTOS
01721 void yy_delete_buffer( YY_BUFFER_STATE b )
01722 #else
01723 void yy_delete_buffer( b )
01724 YY_BUFFER_STATE b;
01725 #endif
01726 {
01727 if ( ! b )
01728 return;
01729
01730 if ( b == yy_current_buffer )
01731 yy_current_buffer = (YY_BUFFER_STATE) 0;
01732
01733 if ( b->yy_is_our_buffer )
01734 yy_flex_free( (void *) b->yy_ch_buf );
01735
01736 yy_flex_free( (void *) b );
01737 }
01738
01739
01740 #ifndef YY_ALWAYS_INTERACTIVE
01741 #ifndef YY_NEVER_INTERACTIVE
01742 extern int isatty YY_PROTO(( int ));
01743 #endif
01744 #endif
01745
01746 #ifdef YY_USE_PROTOS
01747 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
01748 #else
01749 void yy_init_buffer( b, file )
01750 YY_BUFFER_STATE b;
01751 FILE *file;
01752 #endif
01753
01754
01755 {
01756 yy_flush_buffer( b );
01757
01758 b->yy_input_file = file;
01759 b->yy_fill_buffer = 1;
01760
01761 #if YY_ALWAYS_INTERACTIVE
01762 b->yy_is_interactive = 1;
01763 #else
01764 #if YY_NEVER_INTERACTIVE
01765 b->yy_is_interactive = 0;
01766 #else
01767 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
01768 #endif
01769 #endif
01770 }
01771
01772
01773 #ifdef YY_USE_PROTOS
01774 void yy_flush_buffer( YY_BUFFER_STATE b )
01775 #else
01776 void yy_flush_buffer( b )
01777 YY_BUFFER_STATE b;
01778 #endif
01779
01780 {
01781 if ( ! b )
01782 return;
01783
01784 b->yy_n_chars = 0;
01785
01786
01787
01788
01789
01790 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
01791 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
01792
01793 b->yy_buf_pos = &b->yy_ch_buf[0];
01794
01795 b->yy_at_bol = 1;
01796 b->yy_buffer_status = YY_BUFFER_NEW;
01797
01798 if ( b == yy_current_buffer )
01799 yy_load_buffer_state();
01800 }
01801
01802
01803 #ifndef YY_NO_SCAN_BUFFER
01804 #ifdef YY_USE_PROTOS
01805 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
01806 #else
01807 YY_BUFFER_STATE yy_scan_buffer( base, size )
01808 char *base;
01809 yy_size_t size;
01810 #endif
01811 {
01812 YY_BUFFER_STATE b;
01813
01814 if ( size < 2 ||
01815 base[size-2] != YY_END_OF_BUFFER_CHAR ||
01816 base[size-1] != YY_END_OF_BUFFER_CHAR )
01817
01818 return 0;
01819
01820 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
01821 if ( ! b )
01822 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
01823
01824 b->yy_buf_size = size - 2;
01825 b->yy_buf_pos = b->yy_ch_buf = base;
01826 b->yy_is_our_buffer = 0;
01827 b->yy_input_file = 0;
01828 b->yy_n_chars = b->yy_buf_size;
01829 b->yy_is_interactive = 0;
01830 b->yy_at_bol = 1;
01831 b->yy_fill_buffer = 0;
01832 b->yy_buffer_status = YY_BUFFER_NEW;
01833
01834 yy_switch_to_buffer( b );
01835
01836 return b;
01837 }
01838 #endif
01839
01840
01841 #ifndef YY_NO_SCAN_STRING
01842 #ifdef YY_USE_PROTOS
01843 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
01844 #else
01845 YY_BUFFER_STATE yy_scan_string( yy_str )
01846 yyconst char *yy_str;
01847 #endif
01848 {
01849 int len;
01850 for ( len = 0; yy_str[len]; ++len )
01851 ;
01852
01853 return yy_scan_bytes( yy_str, len );
01854 }
01855 #endif
01856
01857
01858 #ifndef YY_NO_SCAN_BYTES
01859 #ifdef YY_USE_PROTOS
01860 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
01861 #else
01862 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
01863 yyconst char *bytes;
01864 int len;
01865 #endif
01866 {
01867 YY_BUFFER_STATE b;
01868 char *buf;
01869 yy_size_t n;
01870 int i;
01871
01872
01873 n = len + 2;
01874 buf = (char *) yy_flex_alloc( n );
01875 if ( ! buf )
01876 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
01877
01878 for ( i = 0; i < len; ++i )
01879 buf[i] = bytes[i];
01880
01881 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
01882
01883 b = yy_scan_buffer( buf, n );
01884 if ( ! b )
01885 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
01886
01887
01888
01889
01890 b->yy_is_our_buffer = 1;
01891
01892 return b;
01893 }
01894 #endif
01895
01896
01897 #ifndef YY_NO_PUSH_STATE
01898 #ifdef YY_USE_PROTOS
01899 static void yy_push_state( int new_state )
01900 #else
01901 static void yy_push_state( new_state )
01902 int new_state;
01903 #endif
01904 {
01905 if ( yy_start_stack_ptr >= yy_start_stack_depth )
01906 {
01907 yy_size_t new_size;
01908
01909 yy_start_stack_depth += YY_START_STACK_INCR;
01910 new_size = yy_start_stack_depth * sizeof( int );
01911
01912 if ( ! yy_start_stack )
01913 yy_start_stack = (int *) yy_flex_alloc( new_size );
01914
01915 else
01916 yy_start_stack = (int *) yy_flex_realloc(
01917 (void *) yy_start_stack, new_size );
01918
01919 if ( ! yy_start_stack )
01920 YY_FATAL_ERROR(
01921 "out of memory expanding start-condition stack" );
01922 }
01923
01924 yy_start_stack[yy_start_stack_ptr++] = YY_START;
01925
01926 BEGIN(new_state);
01927 }
01928 #endif
01929
01930
01931 #ifndef YY_NO_POP_STATE
01932 static void yy_pop_state()
01933 {
01934 if ( --yy_start_stack_ptr < 0 )
01935 YY_FATAL_ERROR( "start-condition stack underflow" );
01936
01937 BEGIN(yy_start_stack[yy_start_stack_ptr]);
01938 }
01939 #endif
01940
01941
01942 #ifndef YY_NO_TOP_STATE
01943 static int yy_top_state()
01944 {
01945 return yy_start_stack[yy_start_stack_ptr - 1];
01946 }
01947 #endif
01948
01949 #ifndef YY_EXIT_FAILURE
01950 #define YY_EXIT_FAILURE 2
01951 #endif
01952
01953 #ifdef YY_USE_PROTOS
01954 static void yy_fatal_error( yyconst char msg[] )
01955 #else
01956 static void yy_fatal_error( msg )
01957 char msg[];
01958 #endif
01959 {
01960 (void) fprintf( stderr, "%s\n", msg );
01961 exit( YY_EXIT_FAILURE );
01962 }
01963
01964
01965
01966
01967
01968 #undef yyless
01969 #define yyless(n) \
01970 do \
01971 { \
01972 \
01973 yytext[yyleng] = yy_hold_char; \
01974 yy_c_buf_p = yytext + n; \
01975 yy_hold_char = *yy_c_buf_p; \
01976 *yy_c_buf_p = '\0'; \
01977 yyleng = n; \
01978 } \
01979 while ( 0 )
01980
01981
01982
01983
01984 #ifndef yytext_ptr
01985 #ifdef YY_USE_PROTOS
01986 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
01987 #else
01988 static void yy_flex_strncpy( s1, s2, n )
01989 char *s1;
01990 yyconst char *s2;
01991 int n;
01992 #endif
01993 {
01994 register int i;
01995 for ( i = 0; i < n; ++i )
01996 s1[i] = s2[i];
01997 }
01998 #endif
01999
02000 #ifdef YY_NEED_STRLEN
02001 #ifdef YY_USE_PROTOS
02002 static int yy_flex_strlen( yyconst char *s )
02003 #else
02004 static int yy_flex_strlen( s )
02005 yyconst char *s;
02006 #endif
02007 {
02008 register int n;
02009 for ( n = 0; s[n]; ++n )
02010 ;
02011
02012 return n;
02013 }
02014 #endif
02015
02016
02017 #ifdef YY_USE_PROTOS
02018 static void *yy_flex_alloc( yy_size_t size )
02019 #else
02020 static void *yy_flex_alloc( size )
02021 yy_size_t size;
02022 #endif
02023 {
02024 return (void *) malloc( size );
02025 }
02026
02027 #ifdef YY_USE_PROTOS
02028 static void *yy_flex_realloc( void *ptr, yy_size_t size )
02029 #else
02030 static void *yy_flex_realloc( ptr, size )
02031 void *ptr;
02032 yy_size_t size;
02033 #endif
02034 {
02035
02036
02037
02038
02039
02040
02041
02042 return (void *) realloc( (char *) ptr, size );
02043 }
02044
02045 #ifdef YY_USE_PROTOS
02046 static void yy_flex_free( void *ptr )
02047 #else
02048 static void yy_flex_free( ptr )
02049 void *ptr;
02050 #endif
02051 {
02052 free( ptr );
02053 }
02054
02055 #if YY_MAIN
02056 int main()
02057 {
02058 yylex();
02059 return 0;
02060 }
02061 #endif
02062 #line 243 "AtomLexer.l"
02063
02064
02065 #include "SymbolTable.h"
02066
02067 int atomparser_yylookup(const char *s, int)
02068 {
02069 return atomparser_symbols->find_attribute(s);
02070 }
02071
02072
02073 char *atomparser_yystring;
02074
02075
02076 SymbolTable *atomparser_symbols;
02077
02078