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