00001 package edu.ksu.cis.bandera.jjjc.lexer; 00002 00003 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00004 * Bandera, a Java(TM) analysis and transformation toolkit * 00005 * Copyright (C) 1998-2001 SAnToS Laboratories (santos@cis.ksu.edu) * 00006 00007 * All rights reserved. * 00008 * * 00009 * This work was done as a project in the SAnToS Laboratory, * 00010 * Department of Computing and Information Sciences, Kansas State * 00011 * University, USA (http://www.cis.ksu.edu/santos). * 00012 * It is understood that any modification not identified as such is * 00013 * not covered by the preceding statement. * 00014 * * 00015 * This work is free software; you can redistribute it and/or * 00016 * modify it under the terms of the GNU Library General Public * 00017 * License as published by the Free Software Foundation; either * 00018 * version 2 of the License, or (at your option) any later version. * 00019 * * 00020 * This work is distributed in the hope that it will be useful, * 00021 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00022 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00023 * Library General Public License for more details. * 00024 * * 00025 * You should have received a copy of the GNU Library General Public * 00026 * License along with this toolkit; if not, write to the * 00027 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * 00028 * Boston, MA 02111-1307, USA. * 00029 * * 00030 * Java is a trademark of Sun Microsystems, Inc. * 00031 * * 00032 * To submit a bug report, send a comment, or get the latest news on * 00033 * this project and other SAnToS projects, please visit the web-site * 00034 * http://www.cis.ksu.edu/santos * 00035 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 00036 import java.io.*; 00037 import ca.mcgill.sable.util.*; 00038 import edu.ksu.cis.bandera.jjjc.node.*; 00039 00040 public class Lexer 00041 { 00042 protected Token token; 00043 protected State state = State.INITIAL; 00044 00045 private PushbackReader in; 00046 private int line; 00047 private int pos; 00048 private boolean cr; 00049 private boolean eof; 00050 private final StringBuffer text = new StringBuffer(); 00051 00052 private static int[][][] gotoTable; 00053 /* { 00054 {{9, 9, 1}, {10, 10, 2}, {12, 12, 3}, {13, 13, 4}, {32, 32, 5}, {33, 33, 6}, {34, 34, 7}, {36, 36, 8}, {37, 37, 9}, {38, 38, 10}, {39, 39, 11}, {40, 40, 12}, {41, 41, 13}, {42, 42, 14}, {43, 43, 15}, {44, 44, 16}, {45, 45, 17}, {46, 46, 18}, {47, 47, 19}, {48, 48, 20}, {49, 57, 21}, {58, 58, 22}, {59, 59, 23}, {60, 60, 24}, {61, 61, 25}, {62, 62, 26}, {63, 63, 27}, {65, 90, 28}, {91, 91, 29}, {93, 93, 30}, {94, 94, 31}, {95, 95, 32}, {97, 97, 33}, {98, 98, 34}, {99, 99, 35}, {100, 100, 36}, {101, 101, 37}, {102, 102, 38}, {103, 103, 39}, {104, 104, 40}, {105, 105, 41}, {106, 107, 40}, {108, 108, 42}, {109, 109, 40}, {110, 110, 43}, {111, 111, 40}, {112, 112, 44}, {113, 113, 40}, {114, 114, 45}, {115, 115, 46}, {116, 116, 47}, {117, 117, 40}, {118, 118, 48}, {119, 119, 49}, {120, 122, 40}, {123, 123, 50}, {124, 124, 51}, {125, 125, 52}, {126, 126, 53}, {170, 170, 54}, {181, 181, 55}, {186, 186, 56}, {192, 214, 57}, {216, 246, 58}, {248, 501, 59}, {506, 535, 60}, {592, 680, 61}, {688, 696, 62}, {699, 705, 63}, {720, 721, 64}, {736, 740, 65}, {890, 890, 66}, {902, 902, 67}, {904, 906, 68}, {908, 908, 69}, {910, 929, 70}, {931, 974, 71}, {976, 982, 72}, {986, 986, 73}, {988, 988, 74}, {990, 990, 75}, {992, 992, 76}, {994, 1011, 77}, {1025, 1036, 78}, {1038, 1103, 79}, {1105, 1116, 80}, {1118, 1153, 81}, {1168, 1220, 82}, {1223, 1224, 83}, {1227, 1228, 84}, {1232, 1259, 85}, {1262, 1269, 86}, {1272, 1273, 87}, {1329, 1366, 88}, {1369, 1369, 89}, {1377, 1415, 90}, {1488, 1514, 91}, {1520, 1522, 92}, {1569, 1594, 93}, {1600, 1610, 94}, {1649, 1719, 95}, {1722, 1726, 96}, {1728, 1742, 97}, {1744, 1747, 98}, {1749, 1749, 99}, {1765, 1766, 100}, {2309, 2361, 101}, {2365, 2365, 102}, {2392, 2401, 103}, {2437, 2444, 104}, {2447, 2448, 105}, {2451, 2472, 106}, {2474, 2480, 107}, {2482, 2482, 108}, {2486, 2489, 109}, {2524, 2525, 110}, {2527, 2529, 111}, {2544, 2545, 112}, {2565, 2570, 113}, {2575, 2576, 114}, {2579, 2600, 115}, {2602, 2608, 116}, {2610, 2611, 117}, {2613, 2614, 118}, {2616, 2617, 119}, {2649, 2652, 120}, {2654, 2654, 121}, {2674, 2676, 122}, {2693, 2699, 123}, {2701, 2701, 124}, {2703, 2705, 125}, {2707, 2728, 126}, {2730, 2736, 127}, {2738, 2739, 128}, {2741, 2745, 129}, {2749, 2749, 130}, {2784, 2784, 131}, {2821, 2828, 132}, {2831, 2832, 133}, {2835, 2856, 134}, {2858, 2864, 135}, {2866, 2867, 136}, {2870, 2873, 137}, {2877, 2877, 138}, {2908, 2909, 139}, {2911, 2913, 140}, {2949, 2954, 141}, {2958, 2960, 142}, {2962, 2965, 143}, {2969, 2970, 144}, {2972, 2972, 145}, {2974, 2975, 146}, {2979, 2980, 147}, {2984, 2986, 148}, {2990, 2997, 149}, {2999, 3001, 150}, {3077, 3084, 151}, {3086, 3088, 152}, {3090, 3112, 153}, {3114, 3123, 154}, {3125, 3129, 155}, {3168, 3169, 156}, {3205, 3212, 157}, {3214, 3216, 158}, {3218, 3240, 159}, {3242, 3251, 160}, {3253, 3257, 161}, {3294, 3294, 162}, {3296, 3297, 163}, {3333, 3340, 164}, {3342, 3344, 165}, {3346, 3368, 166}, {3370, 3385, 167}, {3424, 3425, 168}, {3585, 3630, 169}, {3632, 3632, 170}, {3634, 3635, 171}, {3648, 3654, 172}, {3713, 3714, 173}, {3716, 3716, 174}, {3719, 3720, 175}, {3722, 3722, 176}, {3725, 3725, 177}, {3732, 3735, 178}, {3737, 3743, 179}, {3745, 3747, 180}, {3749, 3749, 181}, {3751, 3751, 182}, {3754, 3755, 183}, {3757, 3758, 184}, {3760, 3760, 185}, {3762, 3763, 186}, {3773, 3773, 187}, {3776, 3780, 188}, {3782, 3782, 189}, {3804, 3805, 190}, {3904, 3911, 191}, {3913, 3945, 192}, {4256, 4293, 193}, {4304, 4342, 194}, {4352, 4441, 195}, {4447, 4514, 196}, {4520, 4601, 197}, {7680, 7835, 198}, {7840, 7929, 199}, {7936, 7957, 200}, {7960, 7965, 201}, {7968, 8005, 202}, {8008, 8013, 203}, {8016, 8023, 204}, {8025, 8025, 205}, {8027, 8027, 206}, {8029, 8029, 207}, {8031, 8061, 208}, {8064, 8116, 209}, {8118, 8124, 210}, {8126, 8126, 211}, {8130, 8132, 212}, {8134, 8140, 213}, {8144, 8147, 214}, {8150, 8155, 215}, {8160, 8172, 216}, {8178, 8180, 217}, {8182, 8188, 218}, {8319, 8319, 219}, {8450, 8450, 220}, {8455, 8455, 221}, {8458, 8467, 222}, {8469, 8469, 223}, {8472, 8477, 224}, {8484, 8484, 225}, {8486, 8486, 226}, {8488, 8488, 227}, {8490, 8497, 228}, {8499, 8504, 229}, {12293, 12293, 230}, {12337, 12341, 231}, {12353, 12436, 232}, {12443, 12446, 233}, {12449, 12538, 234}, {12540, 12542, 235}, {12549, 12588, 236}, {12593, 12686, 237}, {19968, 40869, 238}, {44032, 55203, 239}, {63744, 64045, 240}, {64256, 64262, 241}, {64275, 64279, 242}, {64287, 64296, 243}, {64298, 64310, 244}, {64312, 64316, 245}, {64318, 64318, 246}, {64320, 64321, 247}, {64323, 64324, 248}, {64326, 64433, 249}, {64467, 64829, 250}, {64848, 64911, 251}, {64914, 64967, 252}, {65008, 65019, 253}, {65136, 65138, 254}, {65140, 65140, 255}, {65142, 65276, 256}, {65313, 65338, 257}, {65345, 65370, 258}, {65382, 65470, 259}, {65474, 65479, 260}, {65482, 65487, 261}, {65490, 65495, 262}, {65498, 65500, 263}, }, 00055 {{9, 32, -2}, }, 00056 {{9, 32, -2}, }, 00057 {{9, 32, -2}, }, 00058 {{9, 9, 1}, {10, 10, 264}, {12, 32, -2}, }, 00059 {{9, 32, -2}, }, 00060 {{61, 61, 265}, }, 00061 {{0, 9, 266}, {11, 12, 266}, {14, 33, 266}, {34, 34, 267}, {35, 91, 266}, {92, 92, 268}, {93, 65535, 266}, }, 00062 {{36, 36, 269}, {48, 57, 270}, {65, 90, 271}, {95, 95, 272}, {97, 122, 273}, {170, 170, 274}, {181, 181, 275}, {186, 186, 276}, {192, 214, 277}, {216, 246, 278}, {248, 501, 279}, {506, 535, 280}, {592, 680, 281}, {688, 696, 282}, {699, 705, 283}, {720, 721, 284}, {736, 740, 285}, {890, 890, 286}, {902, 902, 287}, {904, 906, 288}, {908, 908, 289}, {910, 929, 290}, {931, 974, 291}, {976, 982, 292}, {986, 986, 293}, {988, 988, 294}, {990, 990, 295}, {992, 992, 296}, {994, 1011, 297}, {1025, 1036, 298}, {1038, 1103, 299}, {1105, 1116, 300}, {1118, 1153, 301}, {1168, 1220, 302}, {1223, 1224, 303}, {1227, 1228, 304}, {1232, 1259, 305}, {1262, 1269, 306}, {1272, 1273, 307}, {1329, 1366, 308}, {1369, 1369, 309}, {1377, 1415, 310}, {1488, 1514, 311}, {1520, 1522, 312}, {1569, 1594, 313}, {1600, 1610, 314}, {1632, 1641, 315}, {1649, 1719, 316}, {1722, 1726, 317}, {1728, 1742, 318}, {1744, 1747, 319}, {1749, 1749, 320}, {1765, 1766, 321}, {1776, 1785, 322}, {2309, 2361, 323}, {2365, 2365, 324}, {2392, 2401, 325}, {2406, 2415, 326}, {2437, 2444, 327}, {2447, 2448, 328}, {2451, 2472, 329}, {2474, 2480, 330}, {2482, 2482, 331}, {2486, 2489, 332}, {2524, 2525, 333}, {2527, 2529, 334}, {2534, 2543, 335}, {2544, 2545, 336}, {2565, 2570, 337}, {2575, 2576, 338}, {2579, 2600, 339}, {2602, 2608, 340}, {2610, 2611, 341}, {2613, 2614, 342}, {2616, 2617, 343}, {2649, 2652, 344}, {2654, 2654, 345}, {2662, 2671, 346}, {2674, 2676, 347}, {2693, 2699, 348}, {2701, 2701, 349}, {2703, 2705, 350}, {2707, 2728, 351}, {2730, 2736, 352}, {2738, 2739, 353}, {2741, 2745, 354}, {2749, 2749, 355}, {2784, 2784, 356}, {2790, 2799, 357}, {2821, 2828, 358}, {2831, 2832, 359}, {2835, 2856, 360}, {2858, 2864, 361}, {2866, 2867, 362}, {2870, 2873, 363}, {2877, 2877, 364}, {2908, 2909, 365}, {2911, 2913, 366}, {2918, 2927, 367}, {2949, 2954, 368}, {2958, 2960, 369}, {2962, 2965, 370}, {2969, 2970, 371}, {2972, 2972, 372}, {2974, 2975, 373}, {2979, 2980, 374}, {2984, 2986, 375}, {2990, 2997, 376}, {2999, 3001, 377}, {3047, 3055, 378}, {3077, 3084, 379}, {3086, 3088, 380}, {3090, 3112, 381}, {3114, 3123, 382}, {3125, 3129, 383}, {3168, 3169, 384}, {3174, 3183, 385}, {3205, 3212, 386}, {3214, 3216, 387}, {3218, 3240, 388}, {3242, 3251, 389}, {3253, 3257, 390}, {3294, 3294, 391}, {3296, 3297, 392}, {3302, 3311, 393}, {3333, 3340, 394}, {3342, 3344, 395}, {3346, 3368, 396}, {3370, 3385, 397}, {3424, 3425, 398}, {3430, 3439, 399}, {3585, 3630, 400}, {3632, 3632, 401}, {3634, 3635, 402}, {3648, 3654, 403}, {3664, 3673, 404}, {3713, 3714, 405}, {3716, 3716, 406}, {3719, 3720, 407}, {3722, 3722, 408}, {3725, 3725, 409}, {3732, 3735, 410}, {3737, 3743, 411}, {3745, 3747, 412}, {3749, 3749, 413}, {3751, 3751, 414}, {3754, 3755, 415}, {3757, 3758, 416}, {3760, 3760, 417}, {3762, 3763, 418}, {3773, 3773, 419}, {3776, 3780, 420}, {3782, 3782, 421}, {3792, 3801, 422}, {3804, 3805, 423}, {3872, 3881, 424}, {3904, 3911, 425}, {3913, 3945, 426}, {4256, 4293, 427}, {4304, 4342, 428}, {4352, 4441, 429}, {4447, 4514, 430}, {4520, 4601, 431}, {7680, 7835, 432}, {7840, 7929, 433}, {7936, 7957, 434}, {7960, 7965, 435}, {7968, 8005, 436}, {8008, 8013, 437}, {8016, 8023, 438}, {8025, 8025, 439}, {8027, 8027, 440}, {8029, 8029, 441}, {8031, 8061, 442}, {8064, 8116, 443}, {8118, 8124, 444}, {8126, 8126, 445}, {8130, 8132, 446}, {8134, 8140, 447}, {8144, 8147, 448}, {8150, 8155, 449}, {8160, 8172, 450}, {8178, 8180, 451}, {8182, 8188, 452}, {8319, 8319, 453}, {8450, 8450, 454}, {8455, 8455, 455}, {8458, 8467, 456}, {8469, 8469, 457}, {8472, 8477, 458}, {8484, 8484, 459}, {8486, 8486, 460}, {8488, 8488, 461}, {8490, 8497, 462}, {8499, 8504, 463}, {12293, 12293, 464}, {12337, 12341, 465}, {12353, 12436, 466}, {12443, 12446, 467}, {12449, 12538, 468}, {12540, 12542, 469}, {12549, 12588, 470}, {12593, 12686, 471}, {19968, 40869, 472}, {44032, 55203, 473}, {63744, 64045, 474}, {64256, 64262, 475}, {64275, 64279, 476}, {64287, 64296, 477}, {64298, 64310, 478}, {64312, 64316, 479}, {64318, 64318, 480}, {64320, 64321, 481}, {64323, 64324, 482}, {64326, 64433, 483}, {64467, 64829, 484}, {64848, 64911, 485}, {64914, 64967, 486}, {65008, 65019, 487}, {65136, 65138, 488}, {65140, 65140, 489}, {65142, 65276, 490}, {65296, 65305, 491}, {65313, 65338, 492}, {65345, 65370, 493}, {65382, 65470, 494}, {65474, 65479, 495}, {65482, 65487, 496}, {65490, 65495, 497}, {65498, 65500, 498}, }, 00063 {{61, 61, 499}, }, 00064 {{38, 38, 500}, {61, 61, 501}, }, 00065 {{0, 9, 502}, {11, 12, 502}, {14, 38, 502}, {40, 91, 502}, {92, 92, 503}, {93, 65535, 502}, }, 00066 {}, 00067 {}, 00068 {{61, 61, 504}, }, 00069 {{43, 43, 505}, {61, 61, 506}, }, 00070 {}, 00071 {{45, 45, 507}, {61, 61, 508}, }, 00072 {{48, 57, 509}, }, 00073 {{42, 42, 510}, {47, 47, 511}, {61, 61, 512}, }, 00074 {{46, 46, 513}, {48, 55, 514}, {56, 57, 515}, {68, 68, 516}, {69, 69, 517}, {70, 70, 518}, {76, 76, 519}, {88, 88, 520}, {100, 100, 521}, {101, 101, 522}, {102, 102, 523}, {108, 108, 524}, {120, 120, 525}, }, 00075 {{46, 46, 513}, {48, 57, 526}, {68, 76, -22}, {100, 108, -22}, }, 00076 {}, 00077 {}, 00078 {{60, 60, 527}, {61, 61, 528}, }, 00079 {{61, 61, 529}, }, 00080 {{61, 61, 530}, {62, 62, 531}, }, 00081 {}, 00082 {{36, 65500, -10}, }, 00083 {}, 00084 {}, 00085 {{61, 61, 532}, }, 00086 {{36, 65500, -10}, }, 00087 {{36, 95, -10}, {97, 97, 273}, {98, 98, 533}, {99, 122, 273}, {170, 65500, -10}, }, 00088 {{36, 95, -10}, {97, 110, 273}, {111, 111, 534}, {112, 113, 273}, {114, 114, 535}, {115, 120, 273}, {121, 121, 536}, {122, 122, 273}, {170, 65500, -10}, }, 00089 {{36, 95, -10}, {97, 97, 537}, {98, 103, 273}, {104, 104, 538}, {105, 107, 273}, {108, 108, 539}, {109, 110, 273}, {111, 111, 540}, {112, 122, 273}, {170, 65500, -10}, }, 00090 {{36, 95, -10}, {97, 100, 273}, {101, 101, 541}, {102, 110, 273}, {111, 111, 542}, {112, 65500, -37}, }, 00091 {{36, 95, -10}, {97, 107, 273}, {108, 108, 543}, {109, 119, 273}, {120, 120, 544}, {121, 122, 273}, {170, 65500, -10}, }, 00092 {{36, 95, -10}, {97, 97, 545}, {98, 104, 273}, {105, 105, 546}, {106, 107, 273}, {108, 108, 547}, {109, 110, 273}, {111, 111, 548}, {112, 65500, -37}, }, 00093 {{36, 110, -36}, {111, 111, 549}, {112, 65500, -37}, }, 00094 {{36, 65500, -10}, }, 00095 {{36, 95, -10}, {97, 101, 273}, {102, 102, 550}, {103, 108, 273}, {109, 109, 551}, {110, 110, 552}, {111, 122, 273}, {170, 65500, -10}, }, 00096 {{36, 110, -36}, {111, 111, 553}, {112, 65500, -37}, }, 00097 {{36, 95, -10}, {97, 97, 554}, {98, 100, 273}, {101, 101, 555}, {102, 116, 273}, {117, 117, 556}, {118, 122, 273}, {170, 65500, -10}, }, 00098 {{36, 95, -10}, {97, 97, 557}, {98, 113, 273}, {114, 114, 558}, {115, 116, 273}, {117, 117, 559}, {118, 65500, -45}, }, 00099 {{36, 100, -38}, {101, 101, 560}, {102, 122, 273}, {170, 65500, -10}, }, 00100 {{36, 95, -10}, {97, 103, 273}, {104, 104, 561}, {105, 115, 273}, {116, 116, 562}, {117, 117, 563}, {118, 118, 273}, {119, 119, 564}, {120, 120, 273}, {121, 121, 565}, {122, 65500, -36}, }, 00101 {{36, 103, -48}, {104, 104, 566}, {105, 113, 273}, {114, 114, 567}, {115, 122, 273}, {170, 65500, -10}, }, 00102 {{36, 110, -36}, {111, 111, 568}, {112, 65500, -37}, }, 00103 {{36, 103, -48}, {104, 104, 569}, {105, 122, 273}, {170, 65500, -10}, }, 00104 {}, 00105 {{61, 61, 570}, {124, 124, 571}, }, 00106 {}, 00107 {}, 00108 {{36, 65500, -10}, }, 00109 {{36, 65500, -10}, }, 00110 {{36, 65500, -10}, }, 00111 {{36, 65500, -10}, }, 00112 {{36, 65500, -10}, }, 00113 {{36, 65500, -10}, }, 00114 {{36, 65500, -10}, }, 00115 {{36, 65500, -10}, }, 00116 {{36, 65500, -10}, }, 00117 {{36, 65500, -10}, }, 00118 {{36, 65500, -10}, }, 00119 {{36, 65500, -10}, }, 00120 {{36, 65500, -10}, }, 00121 {{36, 65500, -10}, }, 00122 {{36, 65500, -10}, }, 00123 {{36, 65500, -10}, }, 00124 {{36, 65500, -10}, }, 00125 {{36, 65500, -10}, }, 00126 {{36, 65500, -10}, }, 00127 {{36, 65500, -10}, }, 00128 {{36, 65500, -10}, }, 00129 {{36, 65500, -10}, }, 00130 {{36, 65500, -10}, }, 00131 {{36, 65500, -10}, }, 00132 {{36, 65500, -10}, }, 00133 {{36, 65500, -10}, }, 00134 {{36, 65500, -10}, }, 00135 {{36, 65500, -10}, }, 00136 {{36, 65500, -10}, }, 00137 {{36, 65500, -10}, }, 00138 {{36, 65500, -10}, }, 00139 {{36, 65500, -10}, }, 00140 {{36, 65500, -10}, }, 00141 {{36, 65500, -10}, }, 00142 {{36, 65500, -10}, }, 00143 {{36, 65500, -10}, }, 00144 {{36, 65500, -10}, }, 00145 {{36, 65500, -10}, }, 00146 {{36, 65500, -10}, }, 00147 {{36, 65500, -10}, }, 00148 {{36, 65500, -10}, }, 00149 {{36, 65500, -10}, }, 00150 {{36, 65500, -10}, }, 00151 {{36, 65500, -10}, }, 00152 {{36, 65500, -10}, }, 00153 {{36, 65500, -10}, }, 00154 {{36, 65500, -10}, }, 00155 {{36, 65500, -10}, }, 00156 {{36, 65500, -10}, }, 00157 {{36, 65500, -10}, }, 00158 {{36, 65500, -10}, }, 00159 {{36, 65500, -10}, }, 00160 {{36, 65500, -10}, }, 00161 {{36, 65500, -10}, }, 00162 {{36, 65500, -10}, }, 00163 {{36, 65500, -10}, }, 00164 {{36, 65500, -10}, }, 00165 {{36, 65500, -10}, }, 00166 {{36, 65500, -10}, }, 00167 {{36, 65500, -10}, }, 00168 {{36, 65500, -10}, }, 00169 {{36, 65500, -10}, }, 00170 {{36, 65500, -10}, }, 00171 {{36, 65500, -10}, }, 00172 {{36, 65500, -10}, }, 00173 {{36, 65500, -10}, }, 00174 {{36, 65500, -10}, }, 00175 {{36, 65500, -10}, }, 00176 {{36, 65500, -10}, }, 00177 {{36, 65500, -10}, }, 00178 {{36, 65500, -10}, }, 00179 {{36, 65500, -10}, }, 00180 {{36, 65500, -10}, }, 00181 {{36, 65500, -10}, }, 00182 {{36, 65500, -10}, }, 00183 {{36, 65500, -10}, }, 00184 {{36, 65500, -10}, }, 00185 {{36, 65500, -10}, }, 00186 {{36, 65500, -10}, }, 00187 {{36, 65500, -10}, }, 00188 {{36, 65500, -10}, }, 00189 {{36, 65500, -10}, }, 00190 {{36, 65500, -10}, }, 00191 {{36, 65500, -10}, }, 00192 {{36, 65500, -10}, }, 00193 {{36, 65500, -10}, }, 00194 {{36, 65500, -10}, }, 00195 {{36, 65500, -10}, }, 00196 {{36, 65500, -10}, }, 00197 {{36, 65500, -10}, }, 00198 {{36, 65500, -10}, }, 00199 {{36, 65500, -10}, }, 00200 {{36, 65500, -10}, }, 00201 {{36, 65500, -10}, }, 00202 {{36, 65500, -10}, }, 00203 {{36, 65500, -10}, }, 00204 {{36, 65500, -10}, }, 00205 {{36, 65500, -10}, }, 00206 {{36, 65500, -10}, }, 00207 {{36, 65500, -10}, }, 00208 {{36, 65500, -10}, }, 00209 {{36, 65500, -10}, }, 00210 {{36, 65500, -10}, }, 00211 {{36, 65500, -10}, }, 00212 {{36, 65500, -10}, }, 00213 {{36, 65500, -10}, }, 00214 {{36, 65500, -10}, }, 00215 {{36, 65500, -10}, }, 00216 {{36, 65500, -10}, }, 00217 {{36, 65500, -10}, }, 00218 {{36, 65500, -10}, }, 00219 {{36, 65500, -10}, }, 00220 {{36, 65500, -10}, }, 00221 {{36, 65500, -10}, }, 00222 {{36, 65500, -10}, }, 00223 {{36, 65500, -10}, }, 00224 {{36, 65500, -10}, }, 00225 {{36, 65500, -10}, }, 00226 {{36, 65500, -10}, }, 00227 {{36, 65500, -10}, }, 00228 {{36, 65500, -10}, }, 00229 {{36, 65500, -10}, }, 00230 {{36, 65500, -10}, }, 00231 {{36, 65500, -10}, }, 00232 {{36, 65500, -10}, }, 00233 {{36, 65500, -10}, }, 00234 {{36, 65500, -10}, }, 00235 {{36, 65500, -10}, }, 00236 {{36, 65500, -10}, }, 00237 {{36, 65500, -10}, }, 00238 {{36, 65500, -10}, }, 00239 {{36, 65500, -10}, }, 00240 {{36, 65500, -10}, }, 00241 {{36, 65500, -10}, }, 00242 {{36, 65500, -10}, }, 00243 {{36, 65500, -10}, }, 00244 {{36, 65500, -10}, }, 00245 {{36, 65500, -10}, }, 00246 {{36, 65500, -10}, }, 00247 {{36, 65500, -10}, }, 00248 {{36, 65500, -10}, }, 00249 {{36, 65500, -10}, }, 00250 {{36, 65500, -10}, }, 00251 {{36, 65500, -10}, }, 00252 {{36, 65500, -10}, }, 00253 {{36, 65500, -10}, }, 00254 {{36, 65500, -10}, }, 00255 {{36, 65500, -10}, }, 00256 {{36, 65500, -10}, }, 00257 {{36, 65500, -10}, }, 00258 {{36, 65500, -10}, }, 00259 {{36, 65500, -10}, }, 00260 {{36, 65500, -10}, }, 00261 {{36, 65500, -10}, }, 00262 {{36, 65500, -10}, }, 00263 {{36, 65500, -10}, }, 00264 {{36, 65500, -10}, }, 00265 {{36, 65500, -10}, }, 00266 {{36, 65500, -10}, }, 00267 {{36, 65500, -10}, }, 00268 {{36, 65500, -10}, }, 00269 {{36, 65500, -10}, }, 00270 {{36, 65500, -10}, }, 00271 {{36, 65500, -10}, }, 00272 {{36, 65500, -10}, }, 00273 {{36, 65500, -10}, }, 00274 {{36, 65500, -10}, }, 00275 {{36, 65500, -10}, }, 00276 {{36, 65500, -10}, }, 00277 {{36, 65500, -10}, }, 00278 {{36, 65500, -10}, }, 00279 {{36, 65500, -10}, }, 00280 {{36, 65500, -10}, }, 00281 {{36, 65500, -10}, }, 00282 {{36, 65500, -10}, }, 00283 {{36, 65500, -10}, }, 00284 {{36, 65500, -10}, }, 00285 {{36, 65500, -10}, }, 00286 {{36, 65500, -10}, }, 00287 {{36, 65500, -10}, }, 00288 {{36, 65500, -10}, }, 00289 {{36, 65500, -10}, }, 00290 {{36, 65500, -10}, }, 00291 {{36, 65500, -10}, }, 00292 {{36, 65500, -10}, }, 00293 {{36, 65500, -10}, }, 00294 {{36, 65500, -10}, }, 00295 {{36, 65500, -10}, }, 00296 {{36, 65500, -10}, }, 00297 {{36, 65500, -10}, }, 00298 {{36, 65500, -10}, }, 00299 {{36, 65500, -10}, }, 00300 {{36, 65500, -10}, }, 00301 {{36, 65500, -10}, }, 00302 {{36, 65500, -10}, }, 00303 {{36, 65500, -10}, }, 00304 {{36, 65500, -10}, }, 00305 {{36, 65500, -10}, }, 00306 {{36, 65500, -10}, }, 00307 {{36, 65500, -10}, }, 00308 {{36, 65500, -10}, }, 00309 {{36, 65500, -10}, }, 00310 {{36, 65500, -10}, }, 00311 {{36, 65500, -10}, }, 00312 {{36, 65500, -10}, }, 00313 {{36, 65500, -10}, }, 00314 {{36, 65500, -10}, }, 00315 {{36, 65500, -10}, }, 00316 {{36, 65500, -10}, }, 00317 {{36, 65500, -10}, }, 00318 {{9, 32, -2}, }, 00319 {}, 00320 {{0, 65535, -9}, }, 00321 {}, 00322 {{34, 34, 572}, {39, 39, 573}, {48, 51, 574}, {52, 55, 575}, {92, 92, 576}, {98, 98, 577}, {102, 102, 578}, {110, 110, 579}, {114, 114, 580}, {116, 116, 581}, }, 00323 {{36, 65500, -10}, }, 00324 {{36, 65500, -10}, }, 00325 {{36, 65500, -10}, }, 00326 {{36, 65500, -10}, }, 00327 {{36, 65500, -10}, }, 00328 {{36, 65500, -10}, }, 00329 {{36, 65500, -10}, }, 00330 {{36, 65500, -10}, }, 00331 {{36, 65500, -10}, }, 00332 {{36, 65500, -10}, }, 00333 {{36, 65500, -10}, }, 00334 {{36, 65500, -10}, }, 00335 {{36, 65500, -10}, }, 00336 {{36, 65500, -10}, }, 00337 {{36, 65500, -10}, }, 00338 {{36, 65500, -10}, }, 00339 {{36, 65500, -10}, }, 00340 {{36, 65500, -10}, }, 00341 {{36, 65500, -10}, }, 00342 {{36, 65500, -10}, }, 00343 {{36, 65500, -10}, }, 00344 {{36, 65500, -10}, }, 00345 {{36, 65500, -10}, }, 00346 {{36, 65500, -10}, }, 00347 {{36, 65500, -10}, }, 00348 {{36, 65500, -10}, }, 00349 {{36, 65500, -10}, }, 00350 {{36, 65500, -10}, }, 00351 {{36, 65500, -10}, }, 00352 {{36, 65500, -10}, }, 00353 {{36, 65500, -10}, }, 00354 {{36, 65500, -10}, }, 00355 {{36, 65500, -10}, }, 00356 {{36, 65500, -10}, }, 00357 {{36, 65500, -10}, }, 00358 {{36, 65500, -10}, }, 00359 {{36, 65500, -10}, }, 00360 {{36, 65500, -10}, }, 00361 {{36, 65500, -10}, }, 00362 {{36, 65500, -10}, }, 00363 {{36, 65500, -10}, }, 00364 {{36, 65500, -10}, }, 00365 {{36, 65500, -10}, }, 00366 {{36, 65500, -10}, }, 00367 {{36, 65500, -10}, }, 00368 {{36, 65500, -10}, }, 00369 {{36, 65500, -10}, }, 00370 {{36, 65500, -10}, }, 00371 {{36, 65500, -10}, }, 00372 {{36, 65500, -10}, }, 00373 {{36, 65500, -10}, }, 00374 {{36, 65500, -10}, }, 00375 {{36, 65500, -10}, }, 00376 {{36, 65500, -10}, }, 00377 {{36, 65500, -10}, }, 00378 {{36, 65500, -10}, }, 00379 {{36, 65500, -10}, }, 00380 {{36, 65500, -10}, }, 00381 {{36, 65500, -10}, }, 00382 {{36, 65500, -10}, }, 00383 {{36, 65500, -10}, }, 00384 {{36, 65500, -10}, }, 00385 {{36, 65500, -10}, }, 00386 {{36, 65500, -10}, }, 00387 {{36, 65500, -10}, }, 00388 {{36, 65500, -10}, }, 00389 {{36, 65500, -10}, }, 00390 {{36, 65500, -10}, }, 00391 {{36, 65500, -10}, }, 00392 {{36, 65500, -10}, }, 00393 {{36, 65500, -10}, }, 00394 {{36, 65500, -10}, }, 00395 {{36, 65500, -10}, }, 00396 {{36, 65500, -10}, }, 00397 {{36, 65500, -10}, }, 00398 {{36, 65500, -10}, }, 00399 {{36, 65500, -10}, }, 00400 {{36, 65500, -10}, }, 00401 {{36, 65500, -10}, }, 00402 {{36, 65500, -10}, }, 00403 {{36, 65500, -10}, }, 00404 {{36, 65500, -10}, }, 00405 {{36, 65500, -10}, }, 00406 {{36, 65500, -10}, }, 00407 {{36, 65500, -10}, }, 00408 {{36, 65500, -10}, }, 00409 {{36, 65500, -10}, }, 00410 {{36, 65500, -10}, }, 00411 {{36, 65500, -10}, }, 00412 {{36, 65500, -10}, }, 00413 {{36, 65500, -10}, }, 00414 {{36, 65500, -10}, }, 00415 {{36, 65500, -10}, }, 00416 {{36, 65500, -10}, }, 00417 {{36, 65500, -10}, }, 00418 {{36, 65500, -10}, }, 00419 {{36, 65500, -10}, }, 00420 {{36, 65500, -10}, }, 00421 {{36, 65500, -10}, }, 00422 {{36, 65500, -10}, }, 00423 {{36, 65500, -10}, }, 00424 {{36, 65500, -10}, }, 00425 {{36, 65500, -10}, }, 00426 {{36, 65500, -10}, }, 00427 {{36, 65500, -10}, }, 00428 {{36, 65500, -10}, }, 00429 {{36, 65500, -10}, }, 00430 {{36, 65500, -10}, }, 00431 {{36, 65500, -10}, }, 00432 {{36, 65500, -10}, }, 00433 {{36, 65500, -10}, }, 00434 {{36, 65500, -10}, }, 00435 {{36, 65500, -10}, }, 00436 {{36, 65500, -10}, }, 00437 {{36, 65500, -10}, }, 00438 {{36, 65500, -10}, }, 00439 {{36, 65500, -10}, }, 00440 {{36, 65500, -10}, }, 00441 {{36, 65500, -10}, }, 00442 {{36, 65500, -10}, }, 00443 {{36, 65500, -10}, }, 00444 {{36, 65500, -10}, }, 00445 {{36, 65500, -10}, }, 00446 {{36, 65500, -10}, }, 00447 {{36, 65500, -10}, }, 00448 {{36, 65500, -10}, }, 00449 {{36, 65500, -10}, }, 00450 {{36, 65500, -10}, }, 00451 {{36, 65500, -10}, }, 00452 {{36, 65500, -10}, }, 00453 {{36, 65500, -10}, }, 00454 {{36, 65500, -10}, }, 00455 {{36, 65500, -10}, }, 00456 {{36, 65500, -10}, }, 00457 {{36, 65500, -10}, }, 00458 {{36, 65500, -10}, }, 00459 {{36, 65500, -10}, }, 00460 {{36, 65500, -10}, }, 00461 {{36, 65500, -10}, }, 00462 {{36, 65500, -10}, }, 00463 {{36, 65500, -10}, }, 00464 {{36, 65500, -10}, }, 00465 {{36, 65500, -10}, }, 00466 {{36, 65500, -10}, }, 00467 {{36, 65500, -10}, }, 00468 {{36, 65500, -10}, }, 00469 {{36, 65500, -10}, }, 00470 {{36, 65500, -10}, }, 00471 {{36, 65500, -10}, }, 00472 {{36, 65500, -10}, }, 00473 {{36, 65500, -10}, }, 00474 {{36, 65500, -10}, }, 00475 {{36, 65500, -10}, }, 00476 {{36, 65500, -10}, }, 00477 {{36, 65500, -10}, }, 00478 {{36, 65500, -10}, }, 00479 {{36, 65500, -10}, }, 00480 {{36, 65500, -10}, }, 00481 {{36, 65500, -10}, }, 00482 {{36, 65500, -10}, }, 00483 {{36, 65500, -10}, }, 00484 {{36, 65500, -10}, }, 00485 {{36, 65500, -10}, }, 00486 {{36, 65500, -10}, }, 00487 {{36, 65500, -10}, }, 00488 {{36, 65500, -10}, }, 00489 {{36, 65500, -10}, }, 00490 {{36, 65500, -10}, }, 00491 {{36, 65500, -10}, }, 00492 {{36, 65500, -10}, }, 00493 {{36, 65500, -10}, }, 00494 {{36, 65500, -10}, }, 00495 {{36, 65500, -10}, }, 00496 {{36, 65500, -10}, }, 00497 {{36, 65500, -10}, }, 00498 {{36, 65500, -10}, }, 00499 {{36, 65500, -10}, }, 00500 {{36, 65500, -10}, }, 00501 {{36, 65500, -10}, }, 00502 {{36, 65500, -10}, }, 00503 {{36, 65500, -10}, }, 00504 {{36, 65500, -10}, }, 00505 {{36, 65500, -10}, }, 00506 {{36, 65500, -10}, }, 00507 {{36, 65500, -10}, }, 00508 {{36, 65500, -10}, }, 00509 {{36, 65500, -10}, }, 00510 {{36, 65500, -10}, }, 00511 {{36, 65500, -10}, }, 00512 {{36, 65500, -10}, }, 00513 {{36, 65500, -10}, }, 00514 {{36, 65500, -10}, }, 00515 {{36, 65500, -10}, }, 00516 {{36, 65500, -10}, }, 00517 {{36, 65500, -10}, }, 00518 {{36, 65500, -10}, }, 00519 {{36, 65500, -10}, }, 00520 {{36, 65500, -10}, }, 00521 {{36, 65500, -10}, }, 00522 {{36, 65500, -10}, }, 00523 {{36, 65500, -10}, }, 00524 {{36, 65500, -10}, }, 00525 {{36, 65500, -10}, }, 00526 {{36, 65500, -10}, }, 00527 {{36, 65500, -10}, }, 00528 {{36, 65500, -10}, }, 00529 {{36, 65500, -10}, }, 00530 {{36, 65500, -10}, }, 00531 {{36, 65500, -10}, }, 00532 {{36, 65500, -10}, }, 00533 {{36, 65500, -10}, }, 00534 {{36, 65500, -10}, }, 00535 {{36, 65500, -10}, }, 00536 {{36, 65500, -10}, }, 00537 {{36, 65500, -10}, }, 00538 {{36, 65500, -10}, }, 00539 {{36, 65500, -10}, }, 00540 {{36, 65500, -10}, }, 00541 {{36, 65500, -10}, }, 00542 {{36, 65500, -10}, }, 00543 {{36, 65500, -10}, }, 00544 {{36, 65500, -10}, }, 00545 {{36, 65500, -10}, }, 00546 {{36, 65500, -10}, }, 00547 {{36, 65500, -10}, }, 00548 {{36, 65500, -10}, }, 00549 {{36, 65500, -10}, }, 00550 {{36, 65500, -10}, }, 00551 {{36, 65500, -10}, }, 00552 {{36, 65500, -10}, }, 00553 {}, 00554 {}, 00555 {}, 00556 {{39, 39, 582}, }, 00557 {{34, 34, 583}, {39, 39, 584}, {48, 51, 585}, {52, 55, 586}, {92, 92, 587}, {98, 98, 588}, {102, 102, 589}, {110, 110, 590}, {114, 114, 591}, {116, 116, 592}, }, 00558 {}, 00559 {}, 00560 {}, 00561 {}, 00562 {}, 00563 {{48, 57, 509}, {68, 68, 593}, {69, 69, 594}, {70, 70, 595}, {100, 100, 596}, {101, 101, 597}, {102, 102, 598}, }, 00564 {{0, 9, 599}, {10, 10, 600}, {11, 12, 599}, {13, 13, 601}, {14, 41, 599}, {42, 42, 602}, {43, 65535, 599}, }, 00565 {{0, 9, 603}, {10, 10, 604}, {11, 12, 603}, {13, 13, 605}, {14, 65535, 603}, }, 00566 {}, 00567 {{48, 57, 606}, {68, 68, 607}, {69, 69, 608}, {70, 70, 609}, {100, 100, 610}, {101, 101, 611}, {102, 102, 612}, }, 00568 {{46, 70, -22}, {76, 76, 613}, {100, 102, -22}, {108, 108, 614}, }, 00569 {{46, 46, 513}, {48, 57, 515}, {68, 70, -22}, {100, 102, -22}, }, 00570 {}, 00571 {{43, 43, 615}, {45, 45, 616}, {48, 57, 617}, }, 00572 {}, 00573 {}, 00574 {{48, 57, 618}, {65, 70, 619}, {97, 102, 620}, }, 00575 {}, 00576 {{43, 57, -519}, }, 00577 {}, 00578 {}, 00579 {{48, 102, -522}, }, 00580 {{46, 108, -23}, }, 00581 {{61, 61, 621}, }, 00582 {}, 00583 {}, 00584 {}, 00585 {{61, 61, 622}, {62, 62, 623}, }, 00586 {}, 00587 {{36, 95, -10}, {97, 114, 273}, {115, 115, 624}, {116, 122, 273}, {170, 65500, -10}, }, 00588 {{36, 110, -36}, {111, 111, 625}, {112, 65500, -37}, }, 00589 {{36, 100, -38}, {101, 101, 626}, {102, 65500, -47}, }, 00590 {{36, 95, -10}, {97, 115, 273}, {116, 116, 627}, {117, 122, 273}, {170, 65500, -10}, }, 00591 {{36, 114, -535}, {115, 115, 628}, {116, 116, 629}, {117, 65500, -538}, }, 00592 {{36, 95, -10}, {97, 97, 630}, {98, 122, 273}, {170, 65500, -10}, }, 00593 {{36, 95, -10}, {97, 97, 631}, {98, 65500, -540}, }, 00594 {{36, 95, -10}, {97, 109, 273}, {110, 110, 632}, {111, 65500, -43}, }, 00595 {{36, 101, -43}, {102, 102, 633}, {103, 122, 273}, {170, 65500, -10}, }, 00596 {{36, 95, -10}, {97, 116, 273}, {117, 117, 634}, {118, 65500, -45}, }, 00597 {{36, 114, -535}, {115, 115, 635}, {116, 65500, -535}, }, 00598 {{36, 115, -538}, {116, 116, 636}, {117, 65500, -538}, }, 00599 {{36, 107, -39}, {108, 108, 637}, {109, 122, 273}, {170, 65500, -10}, }, 00600 {{36, 109, -542}, {110, 110, 638}, {111, 65500, -43}, }, 00601 {{36, 110, -36}, {111, 111, 639}, {112, 65500, -37}, }, 00602 {{36, 95, -10}, {97, 113, 273}, {114, 114, 640}, {115, 65500, -49}, }, 00603 {{36, 115, -538}, {116, 116, 641}, {117, 65500, -538}, }, 00604 {{36, 65500, -10}, }, 00605 {{36, 95, -10}, {97, 111, 273}, {112, 112, 642}, {113, 122, 273}, {170, 65500, -10}, }, 00606 {{36, 114, -535}, {115, 115, 643}, {116, 116, 644}, {117, 65500, -538}, }, 00607 {{36, 109, -542}, {110, 110, 645}, {111, 65500, -43}, }, 00608 {{36, 115, -538}, {116, 116, 646}, {117, 65500, -538}, }, 00609 {{36, 95, -10}, {97, 118, 273}, {119, 119, 647}, {120, 122, 273}, {170, 65500, -10}, }, 00610 {{36, 107, -39}, {108, 108, 648}, {109, 65500, -547}, }, 00611 {{36, 95, -10}, {97, 98, 273}, {99, 99, 649}, {100, 122, 273}, {170, 65500, -10}, }, 00612 {{36, 95, -10}, {97, 104, 273}, {105, 105, 650}, {106, 110, 273}, {111, 111, 651}, {112, 65500, -37}, }, 00613 {{36, 97, -35}, {98, 98, 652}, {99, 65500, -35}, }, 00614 {{36, 115, -538}, {116, 116, 653}, {117, 65500, -538}, }, 00615 {{36, 110, -36}, {111, 111, 654}, {112, 65500, -37}, }, 00616 {{36, 95, -10}, {97, 97, 655}, {98, 65500, -540}, }, 00617 {{36, 111, -553}, {112, 112, 656}, {113, 65500, -553}, }, 00618 {{36, 104, -560}, {105, 105, 657}, {106, 122, 273}, {170, 65500, -10}, }, 00619 {{36, 109, -542}, {110, 110, 658}, {111, 65500, -43}, }, 00620 {{36, 104, -560}, {105, 105, 659}, {106, 113, 273}, {114, 114, 660}, {115, 65500, -49}, }, 00621 {{36, 95, -10}, {97, 97, 661}, {98, 116, 273}, {117, 117, 662}, {118, 120, 273}, {121, 121, 663}, {122, 65500, -36}, }, 00622 {{36, 104, -560}, {105, 105, 664}, {106, 107, 273}, {108, 108, 665}, {109, 65500, -547}, }, 00623 {{36, 104, -560}, {105, 105, 666}, {106, 65500, -566}, }, 00624 {}, 00625 {}, 00626 {{0, 65535, -9}, }, 00627 {{0, 65535, -9}, }, 00628 {{0, 34, -9}, {35, 47, 266}, {48, 55, 667}, {56, 91, 266}, {92, 65535, -9}, }, 00629 {{0, 47, -576}, {48, 55, 668}, {56, 65535, -576}, }, 00630 {{0, 65535, -9}, }, 00631 {{0, 65535, -9}, }, 00632 {{0, 65535, -9}, }, 00633 {{0, 65535, -9}, }, 00634 {{0, 65535, -9}, }, 00635 {{0, 65535, -9}, }, 00636 {}, 00637 {{39, 39, 582}, }, 00638 {{39, 39, 582}, }, 00639 {{39, 39, 582}, {48, 55, 669}, }, 00640 {{39, 39, 582}, {48, 55, 670}, }, 00641 {{39, 39, 582}, }, 00642 {{39, 39, 582}, }, 00643 {{39, 39, 582}, }, 00644 {{39, 39, 582}, }, 00645 {{39, 39, 582}, }, 00646 {{39, 39, 582}, }, 00647 {}, 00648 {{43, 43, 671}, {45, 45, 672}, {48, 57, 673}, }, 00649 {}, 00650 {}, 00651 {{43, 57, -596}, }, 00652 {}, 00653 {{0, 41, -512}, {42, 42, 674}, {43, 65535, 599}, }, 00654 {{0, 65535, -601}, }, 00655 {{0, 9, 599}, {10, 10, 675}, {11, 65535, -601}, }, 00656 {{0, 9, 676}, {10, 10, 677}, {11, 12, 676}, {13, 13, 678}, {14, 41, 676}, {42, 42, 679}, {43, 46, 676}, {47, 47, 680}, {48, 65535, 676}, }, 00657 {{0, 65535, -513}, }, 00658 {}, 00659 {{10, 10, 681}, }, 00660 {{48, 102, -515}, }, 00661 {}, 00662 {{43, 43, 682}, {45, 45, 683}, {48, 57, 684}, }, 00663 {}, 00664 {}, 00665 {{43, 57, -610}, }, 00666 {}, 00667 {}, 00668 {}, 00669 {{48, 57, 617}, }, 00670 {{48, 57, 617}, }, 00671 {{48, 57, 617}, {68, 68, 685}, {70, 70, 686}, {100, 100, 687}, {102, 102, 688}, }, 00672 {{48, 70, -522}, {76, 76, 689}, {97, 102, 620}, {108, 108, 690}, }, 00673 {{48, 108, -620}, }, 00674 {{48, 108, -620}, }, 00675 {}, 00676 {}, 00677 {{61, 61, 691}, }, 00678 {{36, 115, -538}, {116, 116, 692}, {117, 65500, -538}, }, 00679 {{36, 107, -39}, {108, 108, 693}, {109, 65500, -547}, }, 00680 {{36, 95, -10}, {97, 97, 694}, {98, 65500, -540}, }, 00681 {{36, 100, -38}, {101, 101, 695}, {102, 65500, -47}, }, 00682 {{36, 100, -38}, {101, 101, 696}, {102, 65500, -47}, }, 00683 {{36, 98, -559}, {99, 99, 697}, {100, 65500, -559}, }, 00684 {{36, 113, -550}, {114, 114, 698}, {115, 65500, -49}, }, 00685 {{36, 114, -535}, {115, 115, 699}, {116, 65500, -535}, }, 00686 {{36, 114, -535}, {115, 115, 700}, {116, 116, 701}, {117, 65500, -538}, }, 00687 {{36, 95, -10}, {97, 97, 702}, {98, 65500, -540}, }, 00688 {{36, 97, -35}, {98, 98, 703}, {99, 65500, -35}, }, 00689 {{36, 100, -38}, {101, 101, 704}, {102, 65500, -47}, }, 00690 {{36, 100, -38}, {101, 101, 705}, {102, 65500, -47}, }, 00691 {{36, 114, -535}, {115, 115, 706}, {116, 65500, -535}, }, 00692 {{36, 95, -10}, {97, 97, 707}, {98, 65500, -540}, }, 00693 {{36, 95, -10}, {97, 97, 708}, {98, 65500, -540}, }, 00694 {{36, 65500, -10}, }, 00695 {{36, 110, -36}, {111, 111, 709}, {112, 65500, -37}, }, 00696 {{36, 107, -39}, {108, 108, 710}, {109, 110, 273}, {111, 111, 711}, {112, 65500, -37}, }, 00697 {{36, 115, -538}, {116, 116, 712}, {117, 65500, -538}, }, 00698 {{36, 100, -38}, {101, 101, 713}, {102, 65500, -47}, }, 00699 {{36, 95, -10}, {97, 102, 273}, {103, 103, 714}, {104, 122, 273}, {170, 65500, -10}, }, 00700 {{36, 104, -560}, {105, 105, 715}, {106, 65500, -566}, }, 00701 {{36, 65500, -10}, }, 00702 {{36, 107, -39}, {108, 108, 716}, {109, 65500, -547}, }, 00703 {{36, 95, -10}, {97, 106, 273}, {107, 107, 717}, {108, 122, 273}, {170, 65500, -10}, }, 00704 {{36, 95, -10}, {97, 117, 273}, {118, 118, 718}, {119, 122, 273}, {170, 65500, -10}, }, 00705 {{36, 115, -538}, {116, 116, 719}, {117, 65500, -538}, }, 00706 {{36, 107, -39}, {108, 108, 720}, {109, 65500, -547}, }, 00707 {{36, 116, -544}, {117, 117, 721}, {118, 65500, -45}, }, 00708 {{36, 113, -550}, {114, 114, 722}, {115, 65500, -49}, }, 00709 {{36, 115, -538}, {116, 116, 723}, {117, 65500, -538}, }, 00710 {{36, 100, -38}, {101, 101, 724}, {102, 65500, -47}, }, 00711 {{36, 115, -538}, {116, 116, 725}, {117, 65500, -538}, }, 00712 {{36, 98, -559}, {99, 99, 726}, {100, 65500, -559}, }, 00713 {{36, 114, -535}, {115, 115, 727}, {116, 65500, -535}, }, 00714 {{36, 110, -36}, {111, 111, 728}, {112, 65500, -37}, }, 00715 {{36, 109, -542}, {110, 110, 729}, {111, 65500, -43}, }, 00716 {{36, 100, -38}, {101, 101, 730}, {102, 65500, -47}, }, 00717 {{36, 65500, -10}, }, 00718 {{36, 95, -10}, {97, 99, 273}, {100, 100, 731}, {101, 122, 273}, {170, 65500, -10}, }, 00719 {{36, 95, -10}, {97, 97, 732}, {98, 65500, -540}, }, 00720 {{36, 107, -39}, {108, 108, 733}, {109, 65500, -547}, }, 00721 {{0, 47, -576}, {48, 55, 734}, {56, 65535, -576}, }, 00722 {{0, 65535, -9}, }, 00723 {{39, 39, 582}, {48, 55, 735}, }, 00724 {{39, 39, 582}, }, 00725 {{48, 57, 673}, }, 00726 {{48, 57, 673}, }, 00727 {{48, 57, 673}, {68, 68, 593}, {70, 100, -511}, {102, 102, 598}, }, 00728 {{0, 9, 736}, {10, 10, 737}, {11, 12, 736}, {13, 13, 738}, {14, 41, 736}, {42, 42, 674}, {43, 46, 736}, {47, 47, 739}, {48, 65535, 736}, }, 00729 {{0, 65535, -601}, }, 00730 {{0, 9, 740}, {10, 10, 741}, {11, 12, 740}, {13, 13, 742}, {14, 41, 740}, {42, 42, 743}, {43, 65535, 740}, }, 00731 {{0, 65535, -678}, }, 00732 {{0, 9, 740}, {10, 10, 744}, {11, 65535, -678}, }, 00733 {{0, 65535, -604}, }, 00734 {}, 00735 {}, 00736 {{48, 57, 684}, }, 00737 {{48, 57, 684}, }, 00738 {{48, 57, 684}, {68, 68, 607}, {70, 100, -515}, {102, 102, 612}, }, 00739 {}, 00740 {}, 00741 {}, 00742 {}, 00743 {}, 00744 {}, 00745 {}, 00746 {{36, 113, -550}, {114, 114, 745}, {115, 65500, -49}, }, 00747 {{36, 100, -38}, {101, 101, 746}, {102, 65500, -47}, }, 00748 {{36, 106, -651}, {107, 107, 747}, {108, 65500, -651}, }, 00749 {{36, 65500, -10}, }, 00750 {{36, 65500, -10}, }, 00751 {{36, 103, -48}, {104, 104, 748}, {105, 65500, -51}, }, 00752 {{36, 65500, -10}, }, 00753 {{36, 114, -535}, {115, 115, 749}, {116, 65500, -535}, }, 00754 {{36, 115, -538}, {116, 116, 750}, {117, 65500, -538}, }, 00755 {{36, 104, -560}, {105, 105, 751}, {106, 65500, -566}, }, 00756 {{36, 116, -544}, {117, 117, 752}, {118, 65500, -45}, }, 00757 {{36, 107, -39}, {108, 108, 753}, {109, 65500, -547}, }, 00758 {{36, 65500, -10}, }, 00759 {{36, 109, -542}, {110, 110, 754}, {111, 65500, -43}, }, 00760 {{36, 100, -38}, {101, 101, 755}, {102, 65500, -47}, }, 00761 {{36, 107, -39}, {108, 108, 756}, {109, 65500, -547}, }, 00762 {{36, 115, -538}, {116, 116, 757}, {117, 65500, -538}, }, 00763 {{36, 65500, -10}, }, 00764 {{36, 100, -38}, {101, 101, 758}, {102, 65500, -47}, }, 00765 {{36, 113, -550}, {114, 114, 759}, {115, 65500, -49}, }, 00766 {{36, 95, -10}, {97, 97, 760}, {98, 65500, -540}, }, 00767 {{36, 113, -550}, {114, 114, 761}, {115, 65500, -49}, }, 00768 {{36, 65500, -10}, }, 00769 {{36, 117, -652}, {118, 118, 762}, {119, 65500, -652}, }, 00770 {{36, 65500, -10}, }, 00771 {{36, 95, -10}, {97, 97, 763}, {98, 65500, -540}, }, 00772 {{36, 95, -10}, {97, 97, 764}, {98, 65500, -540}, }, 00773 {{36, 100, -38}, {101, 101, 765}, {102, 65500, -47}, }, 00774 {{36, 104, -560}, {105, 105, 766}, {106, 65500, -566}, }, 00775 {{36, 113, -550}, {114, 114, 767}, {115, 65500, -49}, }, 00776 {{36, 115, -538}, {116, 116, 768}, {117, 65500, -538}, }, 00777 {{36, 104, -560}, {105, 105, 769}, {106, 65500, -566}, }, 00778 {{36, 113, -550}, {114, 114, 770}, {115, 65500, -49}, }, 00779 {{36, 98, -559}, {99, 99, 771}, {100, 65500, -559}, }, 00780 {{36, 103, -48}, {104, 104, 772}, {105, 65500, -51}, }, 00781 {{36, 65500, -10}, }, 00782 {{36, 118, -557}, {119, 119, 773}, {120, 65500, -557}, }, 00783 {{36, 114, -535}, {115, 115, 774}, {116, 65500, -535}, }, 00784 {{36, 65500, -10}, }, 00785 {{36, 65500, -10}, }, 00786 {{36, 115, -538}, {116, 116, 775}, {117, 65500, -538}, }, 00787 {{36, 100, -38}, {101, 101, 776}, {102, 65500, -47}, }, 00788 {{0, 65535, -9}, }, 00789 {{39, 39, 582}, }, 00790 {{0, 9, 777}, {10, 10, 778}, {11, 12, 777}, {13, 13, 779}, {14, 41, 777}, {42, 42, 780}, {43, 65535, 777}, }, 00791 {{0, 65535, -738}, }, 00792 {{0, 9, 777}, {10, 10, 781}, {11, 65535, -738}, }, 00793 {}, 00794 {{0, 65535, -678}, }, 00795 {{0, 65535, -678}, }, 00796 {{0, 9, 740}, {10, 10, 782}, {11, 65535, -678}, }, 00797 {{0, 41, -604}, {42, 42, 743}, {43, 65535, -604}, }, 00798 {{0, 65535, -678}, }, 00799 {{36, 95, -10}, {97, 97, 783}, {98, 65500, -540}, }, 00800 {{36, 95, -10}, {97, 97, 784}, {98, 65500, -540}, }, 00801 {{36, 65500, -10}, }, 00802 {{36, 65500, -10}, }, 00803 {{36, 65500, -10}, }, 00804 {{36, 65500, -10}, }, 00805 {{36, 109, -542}, {110, 110, 785}, {111, 65500, -43}, }, 00806 {{36, 107, -39}, {108, 108, 786}, {109, 65500, -547}, }, 00807 {{36, 100, -38}, {101, 101, 787}, {102, 65500, -47}, }, 00808 {{36, 99, -666}, {100, 100, 788}, {101, 65500, -666}, }, 00809 {{36, 65500, -10}, }, 00810 {{36, 107, -39}, {108, 108, 789}, {109, 65500, -547}, }, 00811 {{36, 65500, -10}, }, 00812 {{36, 95, -10}, {97, 108, 273}, {109, 109, 790}, {110, 122, 273}, {170, 65500, -10}, }, 00813 {{36, 115, -538}, {116, 116, 791}, {117, 65500, -538}, }, 00814 {{36, 109, -542}, {110, 110, 792}, {111, 65500, -43}, }, 00815 {{36, 101, -43}, {102, 102, 793}, {103, 65500, -543}, }, 00816 {{36, 100, -38}, {101, 101, 794}, {102, 65500, -47}, }, 00817 {{36, 102, -647}, {103, 103, 795}, {104, 65500, -647}, }, 00818 {{36, 115, -538}, {116, 116, 796}, {117, 65500, -538}, }, 00819 {{36, 98, -559}, {99, 99, 797}, {100, 65500, -559}, }, 00820 {{36, 98, -559}, {99, 99, 798}, {100, 65500, -559}, }, 00821 {{36, 109, -542}, {110, 110, 799}, {111, 65500, -43}, }, 00822 {{36, 65500, -10}, }, 00823 {{36, 98, -559}, {99, 99, 800}, {100, 65500, -559}, }, 00824 {{36, 65500, -10}, }, 00825 {{36, 103, -48}, {104, 104, 801}, {105, 65500, -51}, }, 00826 {{36, 113, -550}, {114, 114, 802}, {115, 65500, -49}, }, 00827 {{36, 114, -535}, {115, 115, 803}, {116, 65500, -535}, }, 00828 {{36, 104, -560}, {105, 105, 804}, {106, 65500, -566}, }, 00829 {{36, 104, -560}, {105, 105, 805}, {106, 65500, -566}, }, 00830 {{36, 65500, -10}, }, 00831 {{0, 65535, -738}, }, 00832 {{0, 65535, -738}, }, 00833 {{0, 9, 777}, {10, 10, 806}, {11, 65535, -738}, }, 00834 {{0, 41, -676}, {42, 42, 780}, {43, 65535, -676}, }, 00835 {{0, 65535, -738}, }, 00836 {{0, 65535, -678}, }, 00837 {{36, 98, -559}, {99, 99, 807}, {100, 65500, -559}, }, 00838 {{36, 109, -542}, {110, 110, 808}, {111, 65500, -43}, }, 00839 {{36, 116, -544}, {117, 117, 809}, {118, 65500, -45}, }, 00840 {{36, 115, -538}, {116, 116, 810}, {117, 65500, -538}, }, 00841 {{36, 65500, -10}, }, 00842 {{36, 114, -535}, {115, 115, 811}, {116, 65500, -535}, }, 00843 {{36, 95, -10}, {97, 120, 273}, {121, 121, 812}, {122, 65500, -36}, }, 00844 {{36, 100, -38}, {101, 101, 813}, {102, 65500, -47}, }, 00845 {{36, 65500, -10}, }, 00846 {{36, 98, -559}, {99, 99, 814}, {100, 65500, -559}, }, 00847 {{36, 95, -10}, {97, 97, 815}, {98, 65500, -540}, }, 00848 {{36, 65500, -10}, }, 00849 {{36, 100, -38}, {101, 101, 816}, {102, 65500, -47}, }, 00850 {{36, 100, -38}, {101, 101, 817}, {102, 65500, -47}, }, 00851 {{36, 115, -538}, {116, 116, 818}, {117, 65500, -538}, }, 00852 {{36, 65500, -10}, }, 00853 {{36, 65500, -10}, }, 00854 {{36, 65500, -10}, }, 00855 {{36, 65500, -10}, }, 00856 {{36, 110, -36}, {111, 111, 819}, {112, 65500, -37}, }, 00857 {{36, 65500, -10}, }, 00858 {{36, 100, -38}, {101, 101, 820}, {102, 65500, -47}, }, 00859 {{36, 107, -39}, {108, 108, 821}, {109, 65500, -547}, }, 00860 {{0, 65535, -738}, }, 00861 {{36, 115, -538}, {116, 116, 822}, {117, 65500, -538}, }, 00862 {{36, 65500, -10}, }, 00863 {{36, 100, -38}, {101, 101, 823}, {102, 65500, -47}, }, 00864 {{36, 65500, -10}, }, 00865 {{36, 65500, -10}, }, 00866 {{36, 65500, -10}, }, 00867 {{36, 109, -542}, {110, 110, 824}, {111, 65500, -43}, }, 00868 {{36, 100, -38}, {101, 101, 825}, {102, 65500, -47}, }, 00869 {{36, 98, -559}, {99, 99, 826}, {100, 65500, -559}, }, 00870 {{36, 65500, -10}, }, 00871 {{36, 65500, -10}, }, 00872 {{36, 100, -38}, {101, 101, 827}, {102, 65500, -47}, }, 00873 {{36, 109, -542}, {110, 110, 828}, {111, 65500, -43}, }, 00874 {{36, 109, -542}, {110, 110, 829}, {111, 65500, -43}, }, 00875 {{36, 100, -38}, {101, 101, 830}, {102, 65500, -47}, }, 00876 {{36, 65500, -10}, }, 00877 {{36, 65500, -10}, }, 00878 {{36, 115, -538}, {116, 116, 831}, {117, 65500, -538}, }, 00879 {{36, 110, -36}, {111, 111, 832}, {112, 65500, -37}, }, 00880 {{36, 100, -38}, {101, 101, 833}, {102, 65500, -47}, }, 00881 {{36, 99, -666}, {100, 100, 834}, {101, 65500, -666}, }, 00882 {{36, 104, -560}, {105, 105, 835}, {106, 65500, -566}, }, 00883 {{36, 115, -538}, {116, 116, 836}, {117, 65500, -538}, }, 00884 {{36, 65500, -10}, }, 00885 {{36, 114, -535}, {115, 115, 837}, {116, 65500, -535}, }, 00886 {{36, 101, -43}, {102, 102, 838}, {103, 65500, -543}, }, 00887 {{36, 65500, -10}, }, 00888 {{36, 65500, -10}, }, 00889 {{36, 95, -10}, {97, 121, 273}, {122, 122, 839}, {170, 65500, -10}, }, 00890 {{36, 65500, -10}, }, 00891 {{36, 65500, -10}, }, 00892 {{36, 65500, -10}, }, 00893 {{36, 100, -38}, {101, 101, 840}, {102, 65500, -47}, }, 00894 {{36, 99, -666}, {100, 100, 841}, {101, 65500, -666}, }, 00895 {{36, 65500, -10}, }, 00896 };*/ 00897 00898 private static int[][] accept; 00899 /* { 00900 {0, 0, 0, 0, 0, 0, 66, -1, 106, 85, 82, -1, 54, 55, 80, 78, 61, 79, 62, 81, 100, 100, 69, 60, 64, 63, 65, 68, 106, 58, 59, 84, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 56, 83, 57, 67, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 0, 73, -1, 105, -1, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 96, 74, 93, -1, -1, 91, 76, 89, 77, 90, 103, -1, 3, 92, 103, 102, -1, 103, -1, 103, 100, -1, 103, -1, 103, 100, -1, 100, 86, 71, 70, 72, 87, 95, 106, 106, 106, 106, 106, 106, 106, 106, 106, 10, 106, 106, 106, 106, 106, 106, 106, 6, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 94, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, -1, 103, 103, -1, 103, -1, -1, -1, -1, 3, 3, 3, 103, 103, -1, 103, 103, -1, 103, 102, 102, -1, -1, 103, 101, 101, 101, 97, 98, 88, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 44, 106, 106, 106, 26, 106, 106, 45, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 23, 106, 106, 106, -1, -1, -1, -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, 2, 3, -1, -1, 103, 103, 103, 103, 103, 101, 101, 99, 106, 106, 106, 19, 24, 106, 34, 106, 106, 106, 106, 106, 20, 106, 106, 106, 106, 48, 106, 106, 106, 106, 36, 106, 53, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 50, 106, 106, 51, 28, 106, 106, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 106, 106, 14, 29, 39, 43, 106, 106, 106, 106, 52, 30, 40, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 27, 106, 37, 106, 106, 8, 106, 106, 38, -1, -1, -1, -1, -1, -1, 106, 106, 106, 106, 15, 106, 106, 106, 16, 106, 106, 41, 106, 106, 106, 17, 22, 32, 42, 106, 13, 106, 106, -1, 106, 9, 106, 5, 25, 35, 106, 106, 106, 49, 7, 106, 106, 106, 106, 4, 47, 106, 106, 106, 106, 106, 106, 33, 106, 106, 31, 12, 106, 18, 11, 21, 106, 106, 46, }, 00901 00902 };*/ 00903 00904 public static class State 00905 { 00906 public final static State INITIAL = new State(0); 00907 00908 private int id; 00909 00910 private State(int id) 00911 { 00912 this.id = id; 00913 } 00914 00915 public int id() 00916 { 00917 return id; 00918 } 00919 } 00920 public Lexer(PushbackReader in) 00921 { 00922 this.in = in; 00923 00924 if(gotoTable == null) 00925 { 00926 try 00927 { 00928 DataInputStream s = new DataInputStream( 00929 new BufferedInputStream( 00930 Lexer.class.getResourceAsStream("lexer.dat"))); 00931 00932 // read gotoTable 00933 int length = s.readInt(); 00934 gotoTable = new int[length][][]; 00935 for(int i = 0; i < gotoTable.length; i++) 00936 { 00937 length = s.readInt(); 00938 gotoTable[i] = new int[length][3]; 00939 for(int j = 0; j < gotoTable[i].length; j++) 00940 { 00941 for(int k = 0; k < 3; k++) 00942 { 00943 gotoTable[i][j][k] = s.readInt(); 00944 } 00945 } 00946 } 00947 00948 // read accept 00949 length = s.readInt(); 00950 accept = new int[length][]; 00951 for(int i = 0; i < accept.length; i++) 00952 { 00953 length = s.readInt(); 00954 accept[i] = new int[length]; 00955 for(int j = 0; j < accept[i].length; j++) 00956 { 00957 accept[i][j] = s.readInt(); 00958 } 00959 } 00960 00961 s.close(); 00962 } 00963 catch(Exception e) 00964 { 00965 throw new RuntimeException("Unable to read lexer.dat."); 00966 } 00967 } 00968 } 00969 protected void filter() throws LexerException, IOException 00970 { 00971 } 00972 private int getChar() throws IOException 00973 { 00974 if(eof) 00975 { 00976 return -1; 00977 } 00978 00979 int result = in.read(); 00980 00981 if(result == -1) 00982 { 00983 eof = true; 00984 } 00985 00986 return result; 00987 } 00988 private String getText(int acceptLength) 00989 { 00990 StringBuffer s = new StringBuffer(acceptLength); 00991 for(int i = 0; i < acceptLength; i++) 00992 { 00993 s.append(text.charAt(i)); 00994 } 00995 00996 return s.toString(); 00997 } 00998 protected Token getToken() throws IOException, LexerException 00999 { 01000 int dfa_state = 0; 01001 01002 int start_pos = pos; 01003 int start_line = line; 01004 01005 int accept_state = -1; 01006 int accept_token = -1; 01007 int accept_length = -1; 01008 int accept_pos = -1; 01009 int accept_line = -1; 01010 01011 text.setLength(0); 01012 01013 while(true) 01014 { 01015 int c = getChar(); 01016 01017 if(c != -1) 01018 { 01019 switch(c) 01020 { 01021 case 10: 01022 if(cr) 01023 { 01024 cr = false; 01025 } 01026 else 01027 { 01028 line++; 01029 pos = 0; 01030 } 01031 break; 01032 case 13: 01033 line++; 01034 pos = 0; 01035 cr = true; 01036 break; 01037 default: 01038 pos++; 01039 cr = false; 01040 break; 01041 }; 01042 01043 text.append((char) c); 01044 01045 do 01046 { 01047 int oldState = (dfa_state < -1) ? (-2 -dfa_state) : dfa_state; 01048 01049 dfa_state = -1; 01050 01051 int low = 0; 01052 int high = gotoTable[oldState].length - 1; 01053 01054 while(low <= high) 01055 { 01056 int middle = (low + high) / 2; 01057 01058 if(c < gotoTable[oldState][middle][0]) 01059 { 01060 high = middle - 1; 01061 } 01062 else if(c > gotoTable[oldState][middle][1]) 01063 { 01064 low = middle + 1; 01065 } 01066 else 01067 { 01068 dfa_state = gotoTable[oldState][middle][2]; 01069 break; 01070 } 01071 } 01072 }while(dfa_state < -1); 01073 } 01074 else 01075 { 01076 dfa_state = -1; 01077 } 01078 01079 if(dfa_state >= 0) 01080 { 01081 if(accept[state.id()][dfa_state] != -1) 01082 { 01083 accept_state = dfa_state; 01084 accept_token = accept[state.id()][dfa_state]; 01085 accept_length = text.length(); 01086 accept_pos = pos; 01087 accept_line = line; 01088 } 01089 } 01090 else 01091 { 01092 if(accept_state != -1) 01093 { 01094 switch(accept_token) 01095 { 01096 case 0: 01097 { 01098 Token token = new0( 01099 getText(accept_length), 01100 start_line + 1, 01101 start_pos + 1); 01102 pushBack(accept_length); 01103 pos = accept_pos; 01104 line = accept_line; 01105 return token; 01106 } 01107 case 1: 01108 { 01109 Token token = new1( 01110 getText(accept_length), 01111 start_line + 1, 01112 start_pos + 1); 01113 pushBack(accept_length); 01114 pos = accept_pos; 01115 line = accept_line; 01116 return token; 01117 } 01118 case 2: 01119 { 01120 Token token = new2( 01121 getText(accept_length), 01122 start_line + 1, 01123 start_pos + 1); 01124 pushBack(accept_length); 01125 pos = accept_pos; 01126 line = accept_line; 01127 return token; 01128 } 01129 case 3: 01130 { 01131 Token token = new3( 01132 getText(accept_length), 01133 start_line + 1, 01134 start_pos + 1); 01135 pushBack(accept_length); 01136 pos = accept_pos; 01137 line = accept_line; 01138 return token; 01139 } 01140 case 4: 01141 { 01142 Token token = new4( 01143 start_line + 1, 01144 start_pos + 1); 01145 pushBack(accept_length); 01146 pos = accept_pos; 01147 line = accept_line; 01148 return token; 01149 } 01150 case 5: 01151 { 01152 Token token = new5( 01153 start_line + 1, 01154 start_pos + 1); 01155 pushBack(accept_length); 01156 pos = accept_pos; 01157 line = accept_line; 01158 return token; 01159 } 01160 case 6: 01161 { 01162 Token token = new6( 01163 start_line + 1, 01164 start_pos + 1); 01165 pushBack(accept_length); 01166 pos = accept_pos; 01167 line = accept_line; 01168 return token; 01169 } 01170 case 7: 01171 { 01172 Token token = new7( 01173 start_line + 1, 01174 start_pos + 1); 01175 pushBack(accept_length); 01176 pos = accept_pos; 01177 line = accept_line; 01178 return token; 01179 } 01180 case 8: 01181 { 01182 Token token = new8( 01183 start_line + 1, 01184 start_pos + 1); 01185 pushBack(accept_length); 01186 pos = accept_pos; 01187 line = accept_line; 01188 return token; 01189 } 01190 case 9: 01191 { 01192 Token token = new9( 01193 start_line + 1, 01194 start_pos + 1); 01195 pushBack(accept_length); 01196 pos = accept_pos; 01197 line = accept_line; 01198 return token; 01199 } 01200 case 10: 01201 { 01202 Token token = new10( 01203 start_line + 1, 01204 start_pos + 1); 01205 pushBack(accept_length); 01206 pos = accept_pos; 01207 line = accept_line; 01208 return token; 01209 } 01210 case 11: 01211 { 01212 Token token = new11( 01213 start_line + 1, 01214 start_pos + 1); 01215 pushBack(accept_length); 01216 pos = accept_pos; 01217 line = accept_line; 01218 return token; 01219 } 01220 case 12: 01221 { 01222 Token token = new12( 01223 start_line + 1, 01224 start_pos + 1); 01225 pushBack(accept_length); 01226 pos = accept_pos; 01227 line = accept_line; 01228 return token; 01229 } 01230 case 13: 01231 { 01232 Token token = new13( 01233 start_line + 1, 01234 start_pos + 1); 01235 pushBack(accept_length); 01236 pos = accept_pos; 01237 line = accept_line; 01238 return token; 01239 } 01240 case 14: 01241 { 01242 Token token = new14( 01243 start_line + 1, 01244 start_pos + 1); 01245 pushBack(accept_length); 01246 pos = accept_pos; 01247 line = accept_line; 01248 return token; 01249 } 01250 case 15: 01251 { 01252 Token token = new15( 01253 start_line + 1, 01254 start_pos + 1); 01255 pushBack(accept_length); 01256 pos = accept_pos; 01257 line = accept_line; 01258 return token; 01259 } 01260 case 16: 01261 { 01262 Token token = new16( 01263 start_line + 1, 01264 start_pos + 1); 01265 pushBack(accept_length); 01266 pos = accept_pos; 01267 line = accept_line; 01268 return token; 01269 } 01270 case 17: 01271 { 01272 Token token = new17( 01273 start_line + 1, 01274 start_pos + 1); 01275 pushBack(accept_length); 01276 pos = accept_pos; 01277 line = accept_line; 01278 return token; 01279 } 01280 case 18: 01281 { 01282 Token token = new18( 01283 start_line + 1, 01284 start_pos + 1); 01285 pushBack(accept_length); 01286 pos = accept_pos; 01287 line = accept_line; 01288 return token; 01289 } 01290 case 19: 01291 { 01292 Token token = new19( 01293 start_line + 1, 01294 start_pos + 1); 01295 pushBack(accept_length); 01296 pos = accept_pos; 01297 line = accept_line; 01298 return token; 01299 } 01300 case 20: 01301 { 01302 Token token = new20( 01303 start_line + 1, 01304 start_pos + 1); 01305 pushBack(accept_length); 01306 pos = accept_pos; 01307 line = accept_line; 01308 return token; 01309 } 01310 case 21: 01311 { 01312 Token token = new21( 01313 start_line + 1, 01314 start_pos + 1); 01315 pushBack(accept_length); 01316 pos = accept_pos; 01317 line = accept_line; 01318 return token; 01319 } 01320 case 22: 01321 { 01322 Token token = new22( 01323 start_line + 1, 01324 start_pos + 1); 01325 pushBack(accept_length); 01326 pos = accept_pos; 01327 line = accept_line; 01328 return token; 01329 } 01330 case 23: 01331 { 01332 Token token = new23( 01333 start_line + 1, 01334 start_pos + 1); 01335 pushBack(accept_length); 01336 pos = accept_pos; 01337 line = accept_line; 01338 return token; 01339 } 01340 case 24: 01341 { 01342 Token token = new24( 01343 start_line + 1, 01344 start_pos + 1); 01345 pushBack(accept_length); 01346 pos = accept_pos; 01347 line = accept_line; 01348 return token; 01349 } 01350 case 25: 01351 { 01352 Token token = new25( 01353 start_line + 1, 01354 start_pos + 1); 01355 pushBack(accept_length); 01356 pos = accept_pos; 01357 line = accept_line; 01358 return token; 01359 } 01360 case 26: 01361 { 01362 Token token = new26( 01363 start_line + 1, 01364 start_pos + 1); 01365 pushBack(accept_length); 01366 pos = accept_pos; 01367 line = accept_line; 01368 return token; 01369 } 01370 case 27: 01371 { 01372 Token token = new27( 01373 start_line + 1, 01374 start_pos + 1); 01375 pushBack(accept_length); 01376 pos = accept_pos; 01377 line = accept_line; 01378 return token; 01379 } 01380 case 28: 01381 { 01382 Token token = new28( 01383 start_line + 1, 01384 start_pos + 1); 01385 pushBack(accept_length); 01386 pos = accept_pos; 01387 line = accept_line; 01388 return token; 01389 } 01390 case 29: 01391 { 01392 Token token = new29( 01393 start_line + 1, 01394 start_pos + 1); 01395 pushBack(accept_length); 01396 pos = accept_pos; 01397 line = accept_line; 01398 return token; 01399 } 01400 case 30: 01401 { 01402 Token token = new30( 01403 start_line + 1, 01404 start_pos + 1); 01405 pushBack(accept_length); 01406 pos = accept_pos; 01407 line = accept_line; 01408 return token; 01409 } 01410 case 31: 01411 { 01412 Token token = new31( 01413 start_line + 1, 01414 start_pos + 1); 01415 pushBack(accept_length); 01416 pos = accept_pos; 01417 line = accept_line; 01418 return token; 01419 } 01420 case 32: 01421 { 01422 Token token = new32( 01423 start_line + 1, 01424 start_pos + 1); 01425 pushBack(accept_length); 01426 pos = accept_pos; 01427 line = accept_line; 01428 return token; 01429 } 01430 case 33: 01431 { 01432 Token token = new33( 01433 start_line + 1, 01434 start_pos + 1); 01435 pushBack(accept_length); 01436 pos = accept_pos; 01437 line = accept_line; 01438 return token; 01439 } 01440 case 34: 01441 { 01442 Token token = new34( 01443 start_line + 1, 01444 start_pos + 1); 01445 pushBack(accept_length); 01446 pos = accept_pos; 01447 line = accept_line; 01448 return token; 01449 } 01450 case 35: 01451 { 01452 Token token = new35( 01453 start_line + 1, 01454 start_pos + 1); 01455 pushBack(accept_length); 01456 pos = accept_pos; 01457 line = accept_line; 01458 return token; 01459 } 01460 case 36: 01461 { 01462 Token token = new36( 01463 start_line + 1, 01464 start_pos + 1); 01465 pushBack(accept_length); 01466 pos = accept_pos; 01467 line = accept_line; 01468 return token; 01469 } 01470 case 37: 01471 { 01472 Token token = new37( 01473 start_line + 1, 01474 start_pos + 1); 01475 pushBack(accept_length); 01476 pos = accept_pos; 01477 line = accept_line; 01478 return token; 01479 } 01480 case 38: 01481 { 01482 Token token = new38( 01483 start_line + 1, 01484 start_pos + 1); 01485 pushBack(accept_length); 01486 pos = accept_pos; 01487 line = accept_line; 01488 return token; 01489 } 01490 case 39: 01491 { 01492 Token token = new39( 01493 start_line + 1, 01494 start_pos + 1); 01495 pushBack(accept_length); 01496 pos = accept_pos; 01497 line = accept_line; 01498 return token; 01499 } 01500 case 40: 01501 { 01502 Token token = new40( 01503 start_line + 1, 01504 start_pos + 1); 01505 pushBack(accept_length); 01506 pos = accept_pos; 01507 line = accept_line; 01508 return token; 01509 } 01510 case 41: 01511 { 01512 Token token = new41( 01513 start_line + 1, 01514 start_pos + 1); 01515 pushBack(accept_length); 01516 pos = accept_pos; 01517 line = accept_line; 01518 return token; 01519 } 01520 case 42: 01521 { 01522 Token token = new42( 01523 start_line + 1, 01524 start_pos + 1); 01525 pushBack(accept_length); 01526 pos = accept_pos; 01527 line = accept_line; 01528 return token; 01529 } 01530 case 43: 01531 { 01532 Token token = new43( 01533 start_line + 1, 01534 start_pos + 1); 01535 pushBack(accept_length); 01536 pos = accept_pos; 01537 line = accept_line; 01538 return token; 01539 } 01540 case 44: 01541 { 01542 Token token = new44( 01543 start_line + 1, 01544 start_pos + 1); 01545 pushBack(accept_length); 01546 pos = accept_pos; 01547 line = accept_line; 01548 return token; 01549 } 01550 case 45: 01551 { 01552 Token token = new45( 01553 start_line + 1, 01554 start_pos + 1); 01555 pushBack(accept_length); 01556 pos = accept_pos; 01557 line = accept_line; 01558 return token; 01559 } 01560 case 46: 01561 { 01562 Token token = new46( 01563 start_line + 1, 01564 start_pos + 1); 01565 pushBack(accept_length); 01566 pos = accept_pos; 01567 line = accept_line; 01568 return token; 01569 } 01570 case 47: 01571 { 01572 Token token = new47( 01573 start_line + 1, 01574 start_pos + 1); 01575 pushBack(accept_length); 01576 pos = accept_pos; 01577 line = accept_line; 01578 return token; 01579 } 01580 case 48: 01581 { 01582 Token token = new48( 01583 start_line + 1, 01584 start_pos + 1); 01585 pushBack(accept_length); 01586 pos = accept_pos; 01587 line = accept_line; 01588 return token; 01589 } 01590 case 49: 01591 { 01592 Token token = new49( 01593 start_line + 1, 01594 start_pos + 1); 01595 pushBack(accept_length); 01596 pos = accept_pos; 01597 line = accept_line; 01598 return token; 01599 } 01600 case 50: 01601 { 01602 Token token = new50( 01603 start_line + 1, 01604 start_pos + 1); 01605 pushBack(accept_length); 01606 pos = accept_pos; 01607 line = accept_line; 01608 return token; 01609 } 01610 case 51: 01611 { 01612 Token token = new51( 01613 start_line + 1, 01614 start_pos + 1); 01615 pushBack(accept_length); 01616 pos = accept_pos; 01617 line = accept_line; 01618 return token; 01619 } 01620 case 52: 01621 { 01622 Token token = new52( 01623 start_line + 1, 01624 start_pos + 1); 01625 pushBack(accept_length); 01626 pos = accept_pos; 01627 line = accept_line; 01628 return token; 01629 } 01630 case 53: 01631 { 01632 Token token = new53( 01633 start_line + 1, 01634 start_pos + 1); 01635 pushBack(accept_length); 01636 pos = accept_pos; 01637 line = accept_line; 01638 return token; 01639 } 01640 case 54: 01641 { 01642 Token token = new54( 01643 start_line + 1, 01644 start_pos + 1); 01645 pushBack(accept_length); 01646 pos = accept_pos; 01647 line = accept_line; 01648 return token; 01649 } 01650 case 55: 01651 { 01652 Token token = new55( 01653 start_line + 1, 01654 start_pos + 1); 01655 pushBack(accept_length); 01656 pos = accept_pos; 01657 line = accept_line; 01658 return token; 01659 } 01660 case 56: 01661 { 01662 Token token = new56( 01663 start_line + 1, 01664 start_pos + 1); 01665 pushBack(accept_length); 01666 pos = accept_pos; 01667 line = accept_line; 01668 return token; 01669 } 01670 case 57: 01671 { 01672 Token token = new57( 01673 start_line + 1, 01674 start_pos + 1); 01675 pushBack(accept_length); 01676 pos = accept_pos; 01677 line = accept_line; 01678 return token; 01679 } 01680 case 58: 01681 { 01682 Token token = new58( 01683 start_line + 1, 01684 start_pos + 1); 01685 pushBack(accept_length); 01686 pos = accept_pos; 01687 line = accept_line; 01688 return token; 01689 } 01690 case 59: 01691 { 01692 Token token = new59( 01693 start_line + 1, 01694 start_pos + 1); 01695 pushBack(accept_length); 01696 pos = accept_pos; 01697 line = accept_line; 01698 return token; 01699 } 01700 case 60: 01701 { 01702 Token token = new60( 01703 start_line + 1, 01704 start_pos + 1); 01705 pushBack(accept_length); 01706 pos = accept_pos; 01707 line = accept_line; 01708 return token; 01709 } 01710 case 61: 01711 { 01712 Token token = new61( 01713 start_line + 1, 01714 start_pos + 1); 01715 pushBack(accept_length); 01716 pos = accept_pos; 01717 line = accept_line; 01718 return token; 01719 } 01720 case 62: 01721 { 01722 Token token = new62( 01723 start_line + 1, 01724 start_pos + 1); 01725 pushBack(accept_length); 01726 pos = accept_pos; 01727 line = accept_line; 01728 return token; 01729 } 01730 case 63: 01731 { 01732 Token token = new63( 01733 start_line + 1, 01734 start_pos + 1); 01735 pushBack(accept_length); 01736 pos = accept_pos; 01737 line = accept_line; 01738 return token; 01739 } 01740 case 64: 01741 { 01742 Token token = new64( 01743 start_line + 1, 01744 start_pos + 1); 01745 pushBack(accept_length); 01746 pos = accept_pos; 01747 line = accept_line; 01748 return token; 01749 } 01750 case 65: 01751 { 01752 Token token = new65( 01753 start_line + 1, 01754 start_pos + 1); 01755 pushBack(accept_length); 01756 pos = accept_pos; 01757 line = accept_line; 01758 return token; 01759 } 01760 case 66: 01761 { 01762 Token token = new66( 01763 start_line + 1, 01764 start_pos + 1); 01765 pushBack(accept_length); 01766 pos = accept_pos; 01767 line = accept_line; 01768 return token; 01769 } 01770 case 67: 01771 { 01772 Token token = new67( 01773 start_line + 1, 01774 start_pos + 1); 01775 pushBack(accept_length); 01776 pos = accept_pos; 01777 line = accept_line; 01778 return token; 01779 } 01780 case 68: 01781 { 01782 Token token = new68( 01783 start_line + 1, 01784 start_pos + 1); 01785 pushBack(accept_length); 01786 pos = accept_pos; 01787 line = accept_line; 01788 return token; 01789 } 01790 case 69: 01791 { 01792 Token token = new69( 01793 start_line + 1, 01794 start_pos + 1); 01795 pushBack(accept_length); 01796 pos = accept_pos; 01797 line = accept_line; 01798 return token; 01799 } 01800 case 70: 01801 { 01802 Token token = new70( 01803 start_line + 1, 01804 start_pos + 1); 01805 pushBack(accept_length); 01806 pos = accept_pos; 01807 line = accept_line; 01808 return token; 01809 } 01810 case 71: 01811 { 01812 Token token = new71( 01813 start_line + 1, 01814 start_pos + 1); 01815 pushBack(accept_length); 01816 pos = accept_pos; 01817 line = accept_line; 01818 return token; 01819 } 01820 case 72: 01821 { 01822 Token token = new72( 01823 start_line + 1, 01824 start_pos + 1); 01825 pushBack(accept_length); 01826 pos = accept_pos; 01827 line = accept_line; 01828 return token; 01829 } 01830 case 73: 01831 { 01832 Token token = new73( 01833 start_line + 1, 01834 start_pos + 1); 01835 pushBack(accept_length); 01836 pos = accept_pos; 01837 line = accept_line; 01838 return token; 01839 } 01840 case 74: 01841 { 01842 Token token = new74( 01843 start_line + 1, 01844 start_pos + 1); 01845 pushBack(accept_length); 01846 pos = accept_pos; 01847 line = accept_line; 01848 return token; 01849 } 01850 case 75: 01851 { 01852 Token token = new75( 01853 start_line + 1, 01854 start_pos + 1); 01855 pushBack(accept_length); 01856 pos = accept_pos; 01857 line = accept_line; 01858 return token; 01859 } 01860 case 76: 01861 { 01862 Token token = new76( 01863 start_line + 1, 01864 start_pos + 1); 01865 pushBack(accept_length); 01866 pos = accept_pos; 01867 line = accept_line; 01868 return token; 01869 } 01870 case 77: 01871 { 01872 Token token = new77( 01873 start_line + 1, 01874 start_pos + 1); 01875 pushBack(accept_length); 01876 pos = accept_pos; 01877 line = accept_line; 01878 return token; 01879 } 01880 case 78: 01881 { 01882 Token token = new78( 01883 start_line + 1, 01884 start_pos + 1); 01885 pushBack(accept_length); 01886 pos = accept_pos; 01887 line = accept_line; 01888 return token; 01889 } 01890 case 79: 01891 { 01892 Token token = new79( 01893 start_line + 1, 01894 start_pos + 1); 01895 pushBack(accept_length); 01896 pos = accept_pos; 01897 line = accept_line; 01898 return token; 01899 } 01900 case 80: 01901 { 01902 Token token = new80( 01903 start_line + 1, 01904 start_pos + 1); 01905 pushBack(accept_length); 01906 pos = accept_pos; 01907 line = accept_line; 01908 return token; 01909 } 01910 case 81: 01911 { 01912 Token token = new81( 01913 start_line + 1, 01914 start_pos + 1); 01915 pushBack(accept_length); 01916 pos = accept_pos; 01917 line = accept_line; 01918 return token; 01919 } 01920 case 82: 01921 { 01922 Token token = new82( 01923 start_line + 1, 01924 start_pos + 1); 01925 pushBack(accept_length); 01926 pos = accept_pos; 01927 line = accept_line; 01928 return token; 01929 } 01930 case 83: 01931 { 01932 Token token = new83( 01933 start_line + 1, 01934 start_pos + 1); 01935 pushBack(accept_length); 01936 pos = accept_pos; 01937 line = accept_line; 01938 return token; 01939 } 01940 case 84: 01941 { 01942 Token token = new84( 01943 start_line + 1, 01944 start_pos + 1); 01945 pushBack(accept_length); 01946 pos = accept_pos; 01947 line = accept_line; 01948 return token; 01949 } 01950 case 85: 01951 { 01952 Token token = new85( 01953 start_line + 1, 01954 start_pos + 1); 01955 pushBack(accept_length); 01956 pos = accept_pos; 01957 line = accept_line; 01958 return token; 01959 } 01960 case 86: 01961 { 01962 Token token = new86( 01963 start_line + 1, 01964 start_pos + 1); 01965 pushBack(accept_length); 01966 pos = accept_pos; 01967 line = accept_line; 01968 return token; 01969 } 01970 case 87: 01971 { 01972 Token token = new87( 01973 start_line + 1, 01974 start_pos + 1); 01975 pushBack(accept_length); 01976 pos = accept_pos; 01977 line = accept_line; 01978 return token; 01979 } 01980 case 88: 01981 { 01982 Token token = new88( 01983 start_line + 1, 01984 start_pos + 1); 01985 pushBack(accept_length); 01986 pos = accept_pos; 01987 line = accept_line; 01988 return token; 01989 } 01990 case 89: 01991 { 01992 Token token = new89( 01993 start_line + 1, 01994 start_pos + 1); 01995 pushBack(accept_length); 01996 pos = accept_pos; 01997 line = accept_line; 01998 return token; 01999 } 02000 case 90: 02001 { 02002 Token token = new90( 02003 start_line + 1, 02004 start_pos + 1); 02005 pushBack(accept_length); 02006 pos = accept_pos; 02007 line = accept_line; 02008 return token; 02009 } 02010 case 91: 02011 { 02012 Token token = new91( 02013 start_line + 1, 02014 start_pos + 1); 02015 pushBack(accept_length); 02016 pos = accept_pos; 02017 line = accept_line; 02018 return token; 02019 } 02020 case 92: 02021 { 02022 Token token = new92( 02023 start_line + 1, 02024 start_pos + 1); 02025 pushBack(accept_length); 02026 pos = accept_pos; 02027 line = accept_line; 02028 return token; 02029 } 02030 case 93: 02031 { 02032 Token token = new93( 02033 start_line + 1, 02034 start_pos + 1); 02035 pushBack(accept_length); 02036 pos = accept_pos; 02037 line = accept_line; 02038 return token; 02039 } 02040 case 94: 02041 { 02042 Token token = new94( 02043 start_line + 1, 02044 start_pos + 1); 02045 pushBack(accept_length); 02046 pos = accept_pos; 02047 line = accept_line; 02048 return token; 02049 } 02050 case 95: 02051 { 02052 Token token = new95( 02053 start_line + 1, 02054 start_pos + 1); 02055 pushBack(accept_length); 02056 pos = accept_pos; 02057 line = accept_line; 02058 return token; 02059 } 02060 case 96: 02061 { 02062 Token token = new96( 02063 start_line + 1, 02064 start_pos + 1); 02065 pushBack(accept_length); 02066 pos = accept_pos; 02067 line = accept_line; 02068 return token; 02069 } 02070 case 97: 02071 { 02072 Token token = new97( 02073 start_line + 1, 02074 start_pos + 1); 02075 pushBack(accept_length); 02076 pos = accept_pos; 02077 line = accept_line; 02078 return token; 02079 } 02080 case 98: 02081 { 02082 Token token = new98( 02083 start_line + 1, 02084 start_pos + 1); 02085 pushBack(accept_length); 02086 pos = accept_pos; 02087 line = accept_line; 02088 return token; 02089 } 02090 case 99: 02091 { 02092 Token token = new99( 02093 start_line + 1, 02094 start_pos + 1); 02095 pushBack(accept_length); 02096 pos = accept_pos; 02097 line = accept_line; 02098 return token; 02099 } 02100 case 100: 02101 { 02102 Token token = new100( 02103 getText(accept_length), 02104 start_line + 1, 02105 start_pos + 1); 02106 pushBack(accept_length); 02107 pos = accept_pos; 02108 line = accept_line; 02109 return token; 02110 } 02111 case 101: 02112 { 02113 Token token = new101( 02114 getText(accept_length), 02115 start_line + 1, 02116 start_pos + 1); 02117 pushBack(accept_length); 02118 pos = accept_pos; 02119 line = accept_line; 02120 return token; 02121 } 02122 case 102: 02123 { 02124 Token token = new102( 02125 getText(accept_length), 02126 start_line + 1, 02127 start_pos + 1); 02128 pushBack(accept_length); 02129 pos = accept_pos; 02130 line = accept_line; 02131 return token; 02132 } 02133 case 103: 02134 { 02135 Token token = new103( 02136 getText(accept_length), 02137 start_line + 1, 02138 start_pos + 1); 02139 pushBack(accept_length); 02140 pos = accept_pos; 02141 line = accept_line; 02142 return token; 02143 } 02144 case 104: 02145 { 02146 Token token = new104( 02147 getText(accept_length), 02148 start_line + 1, 02149 start_pos + 1); 02150 pushBack(accept_length); 02151 pos = accept_pos; 02152 line = accept_line; 02153 return token; 02154 } 02155 case 105: 02156 { 02157 Token token = new105( 02158 getText(accept_length), 02159 start_line + 1, 02160 start_pos + 1); 02161 pushBack(accept_length); 02162 pos = accept_pos; 02163 line = accept_line; 02164 return token; 02165 } 02166 case 106: 02167 { 02168 Token token = new106( 02169 getText(accept_length), 02170 start_line + 1, 02171 start_pos + 1); 02172 pushBack(accept_length); 02173 pos = accept_pos; 02174 line = accept_line; 02175 return token; 02176 } 02177 } 02178 } 02179 else 02180 { 02181 if(text.length() > 0) 02182 { 02183 throw new LexerException( 02184 "[" + (start_line + 1) + "," + (start_pos + 1) + "]" + 02185 " Unknown token: " + text); 02186 } 02187 else 02188 { 02189 EOF token = new EOF( 02190 start_line + 1, 02191 start_pos + 1); 02192 return token; 02193 } 02194 } 02195 } 02196 } 02197 } 02198 Token new0(String text, int line, int pos) { return new TWhiteSpace(text, line, pos); } 02199 Token new1(String text, int line, int pos) { return new TTraditionalComment(text, line, pos); } 02200 Token new10(int line, int pos) { return new TDo(line, pos); } 02201 Token new100(String text, int line, int pos) { return new TDecimalIntegerLiteral(text, line, pos); } 02202 Token new101(String text, int line, int pos) { return new THexIntegerLiteral(text, line, pos); } 02203 Token new102(String text, int line, int pos) { return new TOctalIntegerLiteral(text, line, pos); } 02204 Token new103(String text, int line, int pos) { return new TFloatingPointLiteral(text, line, pos); } 02205 Token new104(String text, int line, int pos) { return new TCharacterLiteral(text, line, pos); } 02206 Token new105(String text, int line, int pos) { return new TStringLiteral(text, line, pos); } 02207 Token new106(String text, int line, int pos) { return new TId(text, line, pos); } 02208 Token new11(int line, int pos) { return new TImplements(line, pos); } 02209 Token new12(int line, int pos) { return new TProtected(line, pos); } 02210 Token new13(int line, int pos) { return new TThrows(line, pos); } 02211 Token new14(int line, int pos) { return new TBreak(line, pos); } 02212 Token new15(int line, int pos) { return new TDouble(line, pos); } 02213 Token new16(int line, int pos) { return new TImport(line, pos); } 02214 Token new17(int line, int pos) { return new TPublic(line, pos); } 02215 Token new18(int line, int pos) { return new TTransient(line, pos); } 02216 Token new19(int line, int pos) { return new TByte(line, pos); } 02217 Token new2(String text, int line, int pos) { return new TDocumentationComment(text, line, pos); } 02218 Token new20(int line, int pos) { return new TElse(line, pos); } 02219 Token new21(int line, int pos) { return new TInstanceof(line, pos); } 02220 Token new22(int line, int pos) { return new TReturn(line, pos); } 02221 Token new23(int line, int pos) { return new TTry(line, pos); } 02222 Token new24(int line, int pos) { return new TCase(line, pos); } 02223 Token new25(int line, int pos) { return new TExtends(line, pos); } 02224 Token new26(int line, int pos) { return new TInt(line, pos); } 02225 Token new27(int line, int pos) { return new TShort(line, pos); } 02226 Token new28(int line, int pos) { return new TVoid(line, pos); } 02227 Token new29(int line, int pos) { return new TCatch(line, pos); } 02228 Token new3(String text, int line, int pos) { return new TEndOfLineComment(text, line, pos); } 02229 Token new30(int line, int pos) { return new TFinal(line, pos); } 02230 Token new31(int line, int pos) { return new TInterface(line, pos); } 02231 Token new32(int line, int pos) { return new TStatic(line, pos); } 02232 Token new33(int line, int pos) { return new TVolatile(line, pos); } 02233 Token new34(int line, int pos) { return new TChar(line, pos); } 02234 Token new35(int line, int pos) { return new TFinally(line, pos); } 02235 Token new36(int line, int pos) { return new TLong(line, pos); } 02236 Token new37(int line, int pos) { return new TSuper(line, pos); } 02237 Token new38(int line, int pos) { return new TWhile(line, pos); } 02238 Token new39(int line, int pos) { return new TClass(line, pos); } 02239 Token new4(int line, int pos) { return new TAbstract(line, pos); } 02240 Token new40(int line, int pos) { return new TFloat(line, pos); } 02241 Token new41(int line, int pos) { return new TNative(line, pos); } 02242 Token new42(int line, int pos) { return new TSwitch(line, pos); } 02243 Token new43(int line, int pos) { return new TConst(line, pos); } 02244 Token new44(int line, int pos) { return new TFor(line, pos); } 02245 Token new45(int line, int pos) { return new TNew(line, pos); } 02246 Token new46(int line, int pos) { return new TSynchronized(line, pos); } 02247 Token new47(int line, int pos) { return new TContinue(line, pos); } 02248 Token new48(int line, int pos) { return new TGoto(line, pos); } 02249 Token new49(int line, int pos) { return new TPackage(line, pos); } 02250 Token new5(int line, int pos) { return new TDefault(line, pos); } 02251 Token new50(int line, int pos) { return new TThis(line, pos); } 02252 Token new51(int line, int pos) { return new TTrue(line, pos); } 02253 Token new52(int line, int pos) { return new TFalse(line, pos); } 02254 Token new53(int line, int pos) { return new TNull(line, pos); } 02255 Token new54(int line, int pos) { return new TLPar(line, pos); } 02256 Token new55(int line, int pos) { return new TRPar(line, pos); } 02257 Token new56(int line, int pos) { return new TLBrace(line, pos); } 02258 Token new57(int line, int pos) { return new TRBrace(line, pos); } 02259 Token new58(int line, int pos) { return new TLBracket(line, pos); } 02260 Token new59(int line, int pos) { return new TRBracket(line, pos); } 02261 Token new6(int line, int pos) { return new TIf(line, pos); } 02262 Token new60(int line, int pos) { return new TSemicolon(line, pos); } 02263 Token new61(int line, int pos) { return new TComma(line, pos); } 02264 Token new62(int line, int pos) { return new TDot(line, pos); } 02265 Token new63(int line, int pos) { return new TAssign(line, pos); } 02266 Token new64(int line, int pos) { return new TLt(line, pos); } 02267 Token new65(int line, int pos) { return new TGt(line, pos); } 02268 Token new66(int line, int pos) { return new TComplement(line, pos); } 02269 Token new67(int line, int pos) { return new TBitComplement(line, pos); } 02270 Token new68(int line, int pos) { return new TQuestion(line, pos); } 02271 Token new69(int line, int pos) { return new TColon(line, pos); } 02272 Token new7(int line, int pos) { return new TPrivate(line, pos); } 02273 Token new70(int line, int pos) { return new TEq(line, pos); } 02274 Token new71(int line, int pos) { return new TLteq(line, pos); } 02275 Token new72(int line, int pos) { return new TGteq(line, pos); } 02276 Token new73(int line, int pos) { return new TNeq(line, pos); } 02277 Token new74(int line, int pos) { return new TAnd(line, pos); } 02278 Token new75(int line, int pos) { return new TOr(line, pos); } 02279 Token new76(int line, int pos) { return new TPlusPlus(line, pos); } 02280 Token new77(int line, int pos) { return new TMinusMinus(line, pos); } 02281 Token new78(int line, int pos) { return new TPlus(line, pos); } 02282 Token new79(int line, int pos) { return new TMinus(line, pos); } 02283 Token new8(int line, int pos) { return new TThrow(line, pos); } 02284 Token new80(int line, int pos) { return new TStar(line, pos); } 02285 Token new81(int line, int pos) { return new TDiv(line, pos); } 02286 Token new82(int line, int pos) { return new TBitAnd(line, pos); } 02287 Token new83(int line, int pos) { return new TBitOr(line, pos); } 02288 Token new84(int line, int pos) { return new TBitXor(line, pos); } 02289 Token new85(int line, int pos) { return new TMod(line, pos); } 02290 Token new86(int line, int pos) { return new TShiftLeft(line, pos); } 02291 Token new87(int line, int pos) { return new TSignedShiftRight(line, pos); } 02292 Token new88(int line, int pos) { return new TUnsignedShiftRight(line, pos); } 02293 Token new89(int line, int pos) { return new TPlusAssign(line, pos); } 02294 Token new9(int line, int pos) { return new TBoolean(line, pos); } 02295 Token new90(int line, int pos) { return new TMinusAssign(line, pos); } 02296 Token new91(int line, int pos) { return new TStarAssign(line, pos); } 02297 Token new92(int line, int pos) { return new TDivAssign(line, pos); } 02298 Token new93(int line, int pos) { return new TBitAndAssign(line, pos); } 02299 Token new94(int line, int pos) { return new TBitOrAssign(line, pos); } 02300 Token new95(int line, int pos) { return new TBitXorAssign(line, pos); } 02301 Token new96(int line, int pos) { return new TModAssign(line, pos); } 02302 Token new97(int line, int pos) { return new TShiftLeftAssign(line, pos); } 02303 Token new98(int line, int pos) { return new TSignedShiftRightAssign(line, pos); } 02304 Token new99(int line, int pos) { return new TUnsignedShiftRightAssign(line, pos); } 02305 public Token next() throws LexerException, IOException 02306 { 02307 while(token == null) 02308 { 02309 token = getToken(); 02310 filter(); 02311 } 02312 02313 Token result = token; 02314 token = null; 02315 return result; 02316 } 02317 public Token peek() throws LexerException, IOException 02318 { 02319 while(token == null) 02320 { 02321 token = getToken(); 02322 filter(); 02323 } 02324 02325 return token; 02326 } 02327 private void pushBack(int acceptLength) throws IOException 02328 { 02329 int length = text.length(); 02330 for(int i = length - 1; i >= acceptLength; i--) 02331 { 02332 eof = false; 02333 02334 in.unread(text.charAt(i)); 02335 } 02336 } 02337 protected void unread(Token token) throws IOException 02338 { 02339 String text = token.getText(); 02340 int length = text.length(); 02341 02342 for(int i = length - 1; i >= 0; i--) 02343 { 02344 eof = false; 02345 02346 in.unread(text.charAt(i)); 02347 } 02348 02349 pos = token.getPos() - 1; 02350 line = token.getLine() - 1; 02351 } 02352 }