Main Page   Packages   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

Lexer.java

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 }

Generated at Thu Feb 7 06:49:22 2002 for Bandera by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001