001    /* The following code was generated by JFlex 1.3.5 on 7/3/08 11:06 AM */
002    
003    package toolbus.parsercup;
004    
005    
006    /* Lexical syntax for ToolBus scripts */
007    import java.io.IOException;
008    
009    import java_cup.runtime.Symbol;
010    import toolbus.exceptions.SyntaxErrorException;
011    
012    
013    /**
014     * This class is a scanner generated by 
015     * <a href="http://www.jflex.de/">JFlex</a> 1.3.5
016     * on 7/3/08 11:06 AM from the specification file
017     * <tt>file:/export/scratch1/lankamp/metaClipse/toolbus-ng/src/toolbus/parsercup/toolbus.jflex</tt>
018     */
019    public class Lexer implements java_cup.runtime.Scanner {
020    
021      /** This character denotes the end of file */
022      final public static int YYEOF = -1;
023    
024      /** initial size of the lookahead buffer */
025      final private static int YY_BUFFERSIZE = 16384;
026    
027      /** lexical states */
028      final public static int STRING = 1;
029      final public static int YYINITIAL = 0;
030      final public static int INCLUDE = 2;
031    
032      /** 
033       * Translates characters to character classes
034       */
035      final private static String yycmap_packed = 
036        "\11\0\1\3\1\2\1\0\1\3\1\1\22\0\1\3\1\0\1\54"+
037        "\1\50\1\0\1\6\2\0\1\55\1\56\1\5\1\20\1\57\1\13"+
038        "\1\15\1\4\1\14\11\10\1\64\1\0\1\51\1\65\1\53\1\67"+
039        "\1\0\4\12\1\17\25\12\1\62\1\52\1\63\1\0\1\11\1\0"+
040        "\1\37\1\33\1\27\1\23\1\16\1\36\1\25\1\44\1\34\1\7"+
041        "\1\41\1\43\1\24\1\22\1\30\1\35\1\42\1\26\1\21\1\31"+
042        "\1\32\1\40\1\46\1\45\1\47\1\7\1\60\1\66\1\61\uff82\0";
043    
044      /** 
045       * Translates characters to character classes
046       */
047      final private static char [] yycmap = yy_unpack_cmap(yycmap_packed);
048    
049      /** 
050       * Translates a state to a row index in the transition table
051       */
052      final private static int yy_rowMap [] = { 
053            0,    56,   112,   168,   224,   168,   280,   168,   336,   392, 
054          448,   504,   560,   616,   168,   672,   728,   784,   840,   896, 
055          952,  1008,  1064,  1120,  1176,  1232,  1288,  1344,  1400,  1456, 
056         1512,  1568,  1624,  1680,  1736,   168,   168,   168,   168,   168, 
057          168,   168,   168,  1792,   168,  1848,   168,  1904,  1960,   168, 
058         2016,   168,   168,  2072,  2128,  2184,   616,  2240,  2296,  2352, 
059          168,  2408,  2464,  2520,  2576,  2632,  2688,  2744,  2800,  2856, 
060         2912,  2968,  3024,  3080,  3136,  3192,  3248,   392,   392,   392, 
061         3304,   392,  3360,  3416,  3472,  3528,  3584,  3640,  3696,  3752, 
062          168,   168,   168,   168,   168,   168,   168,   168,  3808,  3864, 
063         3920,  3976,  4032,  4088,  4144,  4200,  4256,  4312,  4368,  4424, 
064         4480,  4536,  4592,  4648,  4704,  4760,  4816,  4872,   392,  4928, 
065         4984,  5040,  5096,  5152,  5208,  5264,  5320,   392,  5376,  5432, 
066         5488,  5544,  5600,  5656,  3808,  5712,  5768,   392,  5824,  5880, 
067         5936,  5992,  6048,  6104,  6160,  6216,  6272,   392,  6328,  6384, 
068         6440,   392,  6496,  6552,   392,  6608,  6664,  6720,  6776,  6832, 
069         6888,   392,   392,  6944,  7000,  7056,  7112,  7168,  7224,  7224, 
070         7280,  7336,  7392,  7448,  7504,  7560,  7616,  7672,  7728,  7784, 
071         7840,  7896,  7952,  8008,   392,   392,  8064,  8120,  8176,  8232, 
072         8288,  8344,  8400,  8456,  8512,  8568,  8624,   392,  8680,  8736, 
073         8792,  8848,  8904,  8960,   392,  9016,  9072,  9128,  9184,  9240, 
074         9296,  9352,   392,  9408,  9464,  9520,   392,  9576,  9632,  9688, 
075         9744,  9800,  9856,  9912,  9968, 10024, 10080, 10136, 10192, 10248, 
076        10304, 10360, 10416, 10472, 10528,   392, 10584, 10640, 10696, 10752, 
077        10808, 10864,   392, 10920, 10976,   168, 11032, 11088, 11144,   168, 
078          392, 11200, 11256,   392, 11312, 11368, 11424, 11480, 11536, 11592, 
079        11648,   392, 11704, 11760, 11816, 11872,   392, 11928, 11984, 12040, 
080        12096,   392,   392,   392, 12152, 12208,   392, 12264, 12320,   168, 
081        12376,   168,   392,   392, 12432, 12488, 12544, 12600,   392, 12656, 
082          392, 12712, 12768,   392, 12824, 12880, 12936, 12992, 13048, 13104, 
083        13160, 13216, 13272,   168, 13328, 13384, 13440, 13496,   392, 13552, 
084          392, 13608, 13664, 13720, 13776,   392, 13832,   392,   392, 13888, 
085        13944,   392, 14000, 14056, 14112, 14168, 14224, 14280, 14336, 14392, 
086        14448, 14504, 14560, 14616, 14672, 14728,   392,   392, 14784,   392, 
087          392,   392, 14840, 14896, 14952, 15008, 15064,   392,   392, 15120, 
088        15176, 15232,   392,   392,   392
089      };
090    
091      /** 
092       * The packed transition table of the DFA (part 0)
093       */
094      final private static String yy_packed0 = 
095        "\1\4\1\5\2\6\1\7\1\10\1\11\1\12\1\13"+
096        "\2\14\1\15\1\16\1\17\1\20\1\14\1\21\1\22"+
097        "\1\23\1\24\1\12\1\25\1\26\1\27\1\12\1\30"+
098        "\1\31\1\12\1\32\1\33\1\34\1\35\1\12\1\36"+
099        "\1\12\1\37\1\40\3\12\1\41\1\42\1\4\1\43"+
100        "\1\44\1\45\1\46\1\47\1\50\1\51\1\52\1\53"+
101        "\1\54\1\55\1\56\1\57\1\60\2\4\47\60\1\61"+
102        "\1\60\1\62\13\60\1\63\2\4\46\63\1\64\1\4"+
103        "\1\65\1\4\13\63\72\0\1\6\71\0\1\66\1\67"+
104        "\70\0\1\66\70\0\2\12\1\0\3\12\1\0\2\12"+
105        "\1\0\27\12\30\0\1\13\3\0\1\13\1\70\61\0"+
106        "\6\14\1\0\2\14\1\0\27\14\30\0\1\13\3\0"+
107        "\1\16\63\0\1\71\3\0\1\71\1\70\61\0\2\12"+
108        "\1\0\3\12\1\0\2\12\1\0\1\12\1\72\20\12"+
109        "\1\73\1\12\1\74\2\12\73\0\1\75\23\0\2\12"+
110        "\1\0\3\12\1\0\2\12\1\0\1\12\1\76\7\12"+
111        "\1\77\11\12\1\100\3\12\27\0\2\12\1\0\3\12"+
112        "\1\0\2\12\1\0\7\12\1\101\17\12\27\0\2\12"+
113        "\1\0\3\12\1\0\1\102\1\12\1\0\27\12\27\0"+
114        "\2\12\1\0\3\12\1\0\1\103\1\12\1\0\27\12"+
115        "\27\0\2\12\1\0\3\12\1\0\1\104\1\12\1\0"+
116        "\27\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
117        "\5\12\1\105\1\12\1\106\12\12\1\107\4\12\27\0"+
118        "\2\12\1\0\3\12\1\0\2\12\1\0\5\12\1\110"+
119        "\1\12\1\111\3\12\1\112\2\12\1\113\4\12\1\114"+
120        "\3\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
121        "\1\12\1\115\25\12\27\0\2\12\1\0\3\12\1\0"+
122        "\2\12\1\0\1\116\1\117\13\12\1\120\11\12\27\0"+
123        "\2\12\1\0\3\12\1\0\2\12\1\0\5\12\1\121"+
124        "\21\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
125        "\13\12\1\122\2\12\1\123\10\12\27\0\2\12\1\0"+
126        "\3\12\1\0\2\12\1\0\12\12\1\124\14\12\27\0"+
127        "\2\12\1\0\3\12\1\0\2\12\1\0\13\12\1\125"+
128        "\13\12\27\0\2\12\1\0\3\12\1\0\1\126\1\12"+
129        "\1\0\27\12\27\0\2\12\1\0\3\12\1\0\2\12"+
130        "\1\0\7\12\1\127\17\12\36\0\1\130\4\0\1\131"+
131        "\10\0\1\132\53\0\1\133\122\0\1\134\101\0\1\135"+
132        "\70\0\1\136\1\0\1\60\2\0\47\60\1\0\1\60"+
133        "\1\0\13\60\22\0\1\137\3\0\1\140\2\0\1\141"+
134        "\22\0\1\142\13\0\1\63\2\0\46\63\4\0\13\63"+
135        "\1\66\1\5\1\6\65\66\5\143\1\144\62\143\10\0"+
136        "\1\145\3\0\1\145\62\0\2\12\1\0\3\12\1\0"+
137        "\2\12\1\0\2\12\1\146\24\12\27\0\2\12\1\0"+
138        "\3\12\1\0\2\12\1\0\1\147\26\12\27\0\2\12"+
139        "\1\0\3\12\1\0\1\150\1\12\1\0\27\12\27\0"+
140        "\2\12\1\0\3\12\1\0\2\12\1\0\2\12\1\151"+
141        "\24\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
142        "\12\12\1\152\14\12\27\0\2\12\1\0\3\12\1\0"+
143        "\2\12\1\0\11\12\1\153\15\12\27\0\2\12\1\0"+
144        "\1\12\1\154\1\12\1\0\2\12\1\0\27\12\27\0"+
145        "\2\12\1\0\3\12\1\0\2\12\1\0\22\12\1\155"+
146        "\4\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
147        "\10\12\1\156\16\12\27\0\2\12\1\0\3\12\1\0"+
148        "\2\12\1\0\6\12\1\157\7\12\1\160\10\12\27\0"+
149        "\2\12\1\0\3\12\1\0\1\161\1\12\1\0\27\12"+
150        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\3\12"+
151        "\1\162\23\12\27\0\2\12\1\0\3\12\1\0\2\12"+
152        "\1\0\16\12\1\163\10\12\27\0\2\12\1\0\3\12"+
153        "\1\0\2\12\1\0\11\12\1\164\15\12\27\0\2\12"+
154        "\1\0\3\12\1\0\2\12\1\0\7\12\1\165\17\12"+
155        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\3\12"+
156        "\1\166\23\12\27\0\2\12\1\0\3\12\1\0\2\12"+
157        "\1\0\11\12\1\167\15\12\27\0\2\12\1\0\3\12"+
158        "\1\0\1\170\1\12\1\0\27\12\27\0\2\12\1\0"+
159        "\3\12\1\0\2\12\1\0\1\171\1\12\1\172\24\12"+
160        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\7\12"+
161        "\1\173\3\12\1\174\13\12\27\0\2\12\1\0\3\12"+
162        "\1\0\2\12\1\0\22\12\1\175\4\12\27\0\2\12"+
163        "\1\0\3\12\1\0\2\12\1\0\1\176\26\12\27\0"+
164        "\2\12\1\0\3\12\1\0\2\12\1\0\1\12\1\177"+
165        "\25\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
166        "\10\12\1\200\16\12\27\0\2\12\1\0\3\12\1\0"+
167        "\2\12\1\0\1\201\26\12\42\0\1\202\63\0\1\203"+
168        "\73\0\1\204\13\0\1\205\31\0\5\143\1\206\66\143"+
169        "\1\207\1\206\62\143\10\0\1\145\3\0\1\145\1\0"+
170        "\2\210\57\0\2\12\1\0\3\12\1\0\2\12\1\0"+
171        "\22\12\1\211\4\12\27\0\2\12\1\0\3\12\1\0"+
172        "\1\212\1\12\1\0\27\12\27\0\2\12\1\0\3\12"+
173        "\1\0\2\12\1\0\6\12\1\213\20\12\27\0\2\12"+
174        "\1\0\1\12\1\214\1\12\1\0\2\12\1\0\27\12"+
175        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\1\215"+
176        "\26\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
177        "\10\12\1\216\16\12\27\0\2\12\1\0\3\12\1\0"+
178        "\2\12\1\0\1\12\1\217\25\12\27\0\2\12\1\0"+
179        "\3\12\1\0\2\12\1\0\10\12\1\220\5\12\1\221"+
180        "\10\12\27\0\2\12\1\0\1\12\1\222\1\12\1\0"+
181        "\2\12\1\0\27\12\27\0\2\12\1\0\1\12\1\223"+
182        "\1\12\1\0\2\12\1\0\27\12\27\0\2\12\1\0"+
183        "\3\12\1\0\2\12\1\0\2\12\1\224\24\12\27\0"+
184        "\2\12\1\0\3\12\1\0\2\12\1\0\16\12\1\225"+
185        "\10\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
186        "\3\12\1\226\23\12\27\0\2\12\1\0\3\12\1\0"+
187        "\2\12\1\0\1\227\26\12\27\0\2\12\1\0\3\12"+
188        "\1\0\1\230\1\12\1\0\27\12\27\0\2\12\1\0"+
189        "\3\12\1\0\2\12\1\0\22\12\1\231\4\12\27\0"+
190        "\2\12\1\0\3\12\1\0\1\232\1\12\1\0\27\12"+
191        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\1\12"+
192        "\1\233\25\12\27\0\2\12\1\0\3\12\1\0\2\12"+
193        "\1\0\11\12\1\234\15\12\27\0\2\12\1\0\3\12"+
194        "\1\0\1\235\1\12\1\0\27\12\27\0\2\12\1\0"+
195        "\3\12\1\0\2\12\1\0\6\12\1\236\20\12\27\0"+
196        "\2\12\1\0\3\12\1\0\2\12\1\0\1\12\1\237"+
197        "\25\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
198        "\1\240\26\12\27\0\2\12\1\0\1\12\1\241\1\12"+
199        "\1\0\2\12\1\0\27\12\27\0\2\12\1\0\3\12"+
200        "\1\0\2\12\1\0\2\12\1\242\24\12\27\0\2\12"+
201        "\1\0\3\12\1\0\2\12\1\0\10\12\1\243\16\12"+
202        "\43\0\1\244\102\0\1\245\60\0\1\246\62\0\1\247"+
203        "\1\250\44\0\4\143\1\6\1\206\62\143\10\0\1\251"+
204        "\2\0\1\252\1\251\3\0\1\252\56\0\2\12\1\0"+
205        "\3\12\1\0\1\253\1\12\1\0\27\12\27\0\2\12"+
206        "\1\0\3\12\1\0\2\12\1\0\11\12\1\254\15\12"+
207        "\27\0\2\12\1\0\3\12\1\0\1\255\1\12\1\0"+
208        "\1\12\1\256\1\257\1\260\1\12\1\261\1\262\1\12"+
209        "\1\263\5\12\1\264\1\12\1\265\6\12\27\0\2\12"+
210        "\1\0\3\12\1\0\2\12\1\0\6\12\1\266\20\12"+
211        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\2\12"+
212        "\1\267\24\12\27\0\2\12\1\0\3\12\1\0\2\12"+
213        "\1\0\7\12\1\270\17\12\27\0\2\12\1\0\3\12"+
214        "\1\0\2\12\1\0\16\12\1\271\10\12\27\0\2\12"+
215        "\1\0\3\12\1\0\2\12\1\0\26\12\1\272\27\0"+
216        "\2\12\1\0\3\12\1\0\2\12\1\0\14\12\1\273"+
217        "\12\12\27\0\2\12\1\0\3\12\1\0\1\274\1\12"+
218        "\1\0\1\12\1\275\1\276\1\277\1\12\1\300\1\301"+
219        "\5\12\1\302\2\12\1\303\7\12\27\0\2\12\1\0"+
220        "\3\12\1\0\2\12\1\0\10\12\1\304\16\12\27\0"+
221        "\2\12\1\0\3\12\1\0\2\12\1\0\16\12\1\305"+
222        "\10\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
223        "\1\306\26\12\27\0\2\12\1\0\3\12\1\0\2\12"+
224        "\1\0\12\12\1\307\14\12\27\0\2\12\1\0\3\12"+
225        "\1\0\2\12\1\0\7\12\1\310\17\12\27\0\2\12"+
226        "\1\0\3\12\1\0\2\12\1\0\12\12\1\311\14\12"+
227        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\15\12"+
228        "\1\312\11\12\27\0\2\12\1\0\3\12\1\0\1\313"+
229        "\1\12\1\0\27\12\27\0\2\12\1\0\3\12\1\0"+
230        "\2\12\1\0\10\12\1\314\16\12\27\0\2\12\1\0"+
231        "\3\12\1\0\1\315\1\12\1\0\27\12\27\0\2\12"+
232        "\1\0\3\12\1\0\2\12\1\0\2\12\1\316\5\12"+
233        "\1\317\16\12\54\0\1\320\67\0\1\321\76\0\1\322"+
234        "\47\0\1\323\62\0\1\324\61\0\1\251\3\0\1\251"+
235        "\62\0\2\12\1\0\3\12\1\0\2\12\1\0\10\12"+
236        "\1\325\16\12\27\0\2\12\1\0\3\12\1\0\2\12"+
237        "\1\0\10\12\1\326\16\12\27\0\2\12\1\0\3\12"+
238        "\1\0\2\12\1\0\17\12\1\327\7\12\27\0\2\12"+
239        "\1\0\3\12\1\0\2\12\1\0\7\12\1\330\17\12"+
240        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\7\12"+
241        "\1\331\17\12\27\0\2\12\1\0\3\12\1\0\2\12"+
242        "\1\0\1\332\26\12\27\0\2\12\1\0\3\12\1\0"+
243        "\1\333\1\12\1\0\27\12\27\0\2\12\1\0\3\12"+
244        "\1\0\2\12\1\0\16\12\1\334\10\12\27\0\2\12"+
245        "\1\0\3\12\1\0\1\335\1\12\1\0\27\12\27\0"+
246        "\2\12\1\0\3\12\1\0\2\12\1\0\6\12\1\336"+
247        "\20\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
248        "\13\12\1\337\13\12\27\0\2\12\1\0\3\12\1\0"+
249        "\2\12\1\0\5\12\1\340\21\12\27\0\2\12\1\0"+
250        "\3\12\1\0\2\12\1\0\7\12\1\341\17\12\27\0"+
251        "\2\12\1\0\3\12\1\0\2\12\1\0\10\12\1\342"+
252        "\16\12\27\0\2\12\1\0\3\12\1\0\1\343\1\12"+
253        "\1\0\27\12\27\0\2\12\1\0\3\12\1\0\2\12"+
254        "\1\0\17\12\1\344\7\12\27\0\2\12\1\0\3\12"+
255        "\1\0\2\12\1\0\7\12\1\345\17\12\27\0\2\12"+
256        "\1\0\3\12\1\0\2\12\1\0\13\12\1\346\13\12"+
257        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\1\347"+
258        "\26\12\27\0\2\12\1\0\3\12\1\0\1\350\1\12"+
259        "\1\0\27\12\27\0\2\12\1\0\3\12\1\0\2\12"+
260        "\1\0\7\12\1\351\17\12\27\0\2\12\1\0\3\12"+
261        "\1\0\1\352\1\12\1\0\27\12\27\0\2\12\1\0"+
262        "\3\12\1\0\2\12\1\0\16\12\1\353\10\12\27\0"+
263        "\2\12\1\0\3\12\1\0\1\354\1\12\1\0\27\12"+
264        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\1\12"+
265        "\1\355\25\12\27\0\2\12\1\0\3\12\1\0\2\12"+
266        "\1\0\11\12\1\356\15\12\27\0\2\12\1\0\3\12"+
267        "\1\0\2\12\1\0\11\12\1\357\15\12\27\0\2\12"+
268        "\1\0\3\12\1\0\2\12\1\0\1\360\26\12\27\0"+
269        "\2\12\1\0\3\12\1\0\2\12\1\0\13\12\1\361"+
270        "\13\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
271        "\1\362\26\12\27\0\2\12\1\0\3\12\1\0\2\12"+
272        "\1\0\15\12\1\363\11\12\27\0\2\12\1\0\3\12"+
273        "\1\0\1\364\1\12\1\0\27\12\27\0\2\12\1\0"+
274        "\3\12\1\0\2\12\1\0\13\12\1\365\13\12\56\0"+
275        "\1\366\53\0\1\367\77\0\1\370\53\0\1\371\107\0"+
276        "\1\372\40\0\2\12\1\0\3\12\1\0\1\373\1\12"+
277        "\1\0\27\12\27\0\2\12\1\0\3\12\1\0\2\12"+
278        "\1\0\16\12\1\374\10\12\27\0\2\12\1\0\3\12"+
279        "\1\0\2\12\1\0\10\12\1\375\16\12\27\0\2\12"+
280        "\1\0\3\12\1\0\2\12\1\0\4\12\1\376\22\12"+
281        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\1\377"+
282        "\26\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
283        "\1\12\1\u0100\25\12\27\0\2\12\1\0\3\12\1\0"+
284        "\2\12\1\0\5\12\1\u0101\21\12\27\0\2\12\1\0"+
285        "\3\12\1\0\2\12\1\0\20\12\1\u0102\6\12\27\0"+
286        "\2\12\1\0\3\12\1\0\2\12\1\0\22\12\1\u0103"+
287        "\4\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
288        "\13\12\1\u0104\13\12\27\0\2\12\1\0\3\12\1\0"+
289        "\2\12\1\0\25\12\1\u0105\1\12\27\0\2\12\1\0"+
290        "\3\12\1\0\1\u0106\1\12\1\0\27\12\27\0\2\12"+
291        "\1\0\3\12\1\0\2\12\1\0\5\12\1\u0107\21\12"+
292        "\27\0\2\12\1\0\3\12\1\0\1\u0108\1\12\1\0"+
293        "\27\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
294        "\10\12\1\u0109\16\12\27\0\2\12\1\0\3\12\1\0"+
295        "\2\12\1\0\1\u010a\26\12\27\0\2\12\1\0\3\12"+
296        "\1\0\2\12\1\0\4\12\1\u010b\22\12\27\0\2\12"+
297        "\1\0\3\12\1\0\2\12\1\0\21\12\1\u010c\5\12"+
298        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\1\12"+
299        "\1\u010d\25\12\27\0\2\12\1\0\3\12\1\0\2\12"+
300        "\1\0\5\12\1\u010e\21\12\27\0\2\12\1\0\3\12"+
301        "\1\0\2\12\1\0\22\12\1\u010f\4\12\27\0\2\12"+
302        "\1\0\3\12\1\0\2\12\1\0\2\12\1\u0110\24\12"+
303        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\1\u0111"+
304        "\26\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
305        "\10\12\1\u0112\16\12\27\0\2\12\1\0\3\12\1\0"+
306        "\2\12\1\0\6\12\1\u0113\20\12\27\0\2\12\1\0"+
307        "\3\12\1\0\2\12\1\0\1\12\1\u0114\25\12\27\0"+
308        "\2\12\1\0\3\12\1\0\2\12\1\0\1\u0115\26\12"+
309        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\22\12"+
310        "\1\u0116\4\12\27\0\2\12\1\0\3\12\1\0\2\12"+
311        "\1\0\3\12\1\u0117\23\12\36\0\1\u0118\74\0\1\u0119"+
312        "\102\0\1\u011a\40\0\2\12\1\0\3\12\1\0\2\12"+
313        "\1\0\22\12\1\u011b\4\12\27\0\2\12\1\0\3\12"+
314        "\1\0\1\u011c\1\12\1\0\27\12\27\0\2\12\1\0"+
315        "\3\12\1\0\2\12\1\0\14\12\1\u011d\12\12\27\0"+
316        "\2\12\1\0\3\12\1\0\2\12\1\0\6\12\1\u011e"+
317        "\20\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
318        "\3\12\1\u011f\23\12\27\0\2\12\1\0\1\12\1\u0120"+
319        "\1\12\1\0\2\12\1\0\27\12\27\0\2\12\1\0"+
320        "\3\12\1\0\2\12\1\0\22\12\1\u0121\4\12\27\0"+
321        "\2\12\1\0\3\12\1\0\2\12\1\0\12\12\1\u0122"+
322        "\14\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
323        "\1\12\1\u0123\25\12\27\0\2\12\1\0\3\12\1\0"+
324        "\2\12\1\0\15\12\1\u0124\11\12\27\0\2\12\1\0"+
325        "\3\12\1\0\2\12\1\0\1\12\1\u0125\25\12\27\0"+
326        "\2\12\1\0\3\12\1\0\1\u0126\1\12\1\0\27\12"+
327        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\6\12"+
328        "\1\u0127\20\12\27\0\2\12\1\0\3\12\1\0\2\12"+
329        "\1\0\11\12\1\u0128\15\12\27\0\2\12\1\0\3\12"+
330        "\1\0\2\12\1\0\1\12\1\u0129\25\12\27\0\2\12"+
331        "\1\0\3\12\1\0\2\12\1\0\15\12\1\u012a\11\12"+
332        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\11\12"+
333        "\1\u012b\15\12\27\0\2\12\1\0\3\12\1\0\2\12"+
334        "\1\0\5\12\1\u012c\21\12\27\0\2\12\1\0\3\12"+
335        "\1\0\1\u012d\1\12\1\0\27\12\27\0\2\12\1\0"+
336        "\3\12\1\0\2\12\1\0\16\12\1\u012e\10\12\27\0"+
337        "\2\12\1\0\3\12\1\0\1\u012f\1\12\1\0\27\12"+
338        "\36\0\1\u0130\60\0\2\12\1\0\3\12\1\0\2\12"+
339        "\1\0\7\12\1\u0131\17\12\27\0\2\12\1\0\3\12"+
340        "\1\0\1\u0132\1\12\1\0\27\12\27\0\2\12\1\0"+
341        "\3\12\1\0\2\12\1\0\13\12\1\u0133\13\12\27\0"+
342        "\2\12\1\0\3\12\1\0\1\u0134\1\12\1\0\27\12"+
343        "\27\0\2\12\1\0\3\12\1\0\1\u0135\1\12\1\0"+
344        "\27\12\27\0\2\12\1\0\1\12\1\u0136\1\12\1\0"+
345        "\2\12\1\0\27\12\27\0\2\12\1\0\3\12\1\0"+
346        "\2\12\1\0\10\12\1\u0137\16\12\27\0\2\12\1\0"+
347        "\3\12\1\0\2\12\1\0\7\12\1\u0138\17\12\27\0"+
348        "\2\12\1\0\3\12\1\0\1\u0139\1\12\1\0\27\12"+
349        "\27\0\2\12\1\0\3\12\1\0\1\u013a\1\12\1\0"+
350        "\27\12\27\0\2\12\1\0\1\12\1\u013b\1\12\1\0"+
351        "\2\12\1\0\27\12\27\0\2\12\1\0\3\12\1\0"+
352        "\1\u013c\1\12\1\0\27\12\27\0\2\12\1\0\3\12"+
353        "\1\0\2\12\1\0\13\12\1\u013d\13\12\27\0\2\12"+
354        "\1\0\3\12\1\0\2\12\1\0\2\12\1\u013e\24\12"+
355        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\26\12"+
356        "\1\u013f\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
357        "\7\12\1\u0140\17\12\27\0\2\12\1\0\3\12\1\0"+
358        "\2\12\1\0\1\12\1\u0141\25\12\27\0\2\12\1\0"+
359        "\3\12\1\0\2\12\1\0\22\12\1\u0142\4\12\27\0"+
360        "\2\12\1\0\3\12\1\0\2\12\1\0\1\12\1\u0143"+
361        "\25\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
362        "\17\12\1\u0144\7\12\27\0\2\12\1\0\3\12\1\0"+
363        "\2\12\1\0\1\u0145\26\12\27\0\2\12\1\0\3\12"+
364        "\1\0\2\12\1\0\1\12\1\u0146\25\12\27\0\2\12"+
365        "\1\0\3\12\1\0\2\12\1\0\1\u0147\26\12\27\0"+
366        "\2\12\1\0\3\12\1\0\2\12\1\0\6\12\1\u0148"+
367        "\20\12\27\0\2\12\1\0\3\12\1\0\2\12\1\0"+
368        "\1\u0149\26\12\27\0\2\12\1\0\3\12\1\0\2\12"+
369        "\1\0\12\12\1\u014a\14\12\27\0\2\12\1\0\3\12"+
370        "\1\0\2\12\1\0\11\12\1\u014b\15\12\27\0\2\12"+
371        "\1\0\3\12\1\0\2\12\1\0\1\u014c\26\12\27\0"+
372        "\2\12\1\0\3\12\1\0\2\12\1\0\16\12\1\u014d"+
373        "\10\12\27\0\2\12\1\0\3\12\1\0\1\u014e\1\12"+
374        "\1\0\27\12\27\0\2\12\1\0\3\12\1\0\2\12"+
375        "\1\0\10\12\1\u014f\16\12\27\0\2\12\1\0\3\12"+
376        "\1\0\2\12\1\0\1\12\1\u0150\25\12\27\0\2\12"+
377        "\1\0\3\12\1\0\2\12\1\0\10\12\1\u0151\16\12"+
378        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\10\12"+
379        "\1\u0152\16\12\27\0\2\12\1\0\3\12\1\0\2\12"+
380        "\1\0\10\12\1\u0153\16\12\27\0\2\12\1\0\3\12"+
381        "\1\0\1\u0154\1\12\1\0\27\12\27\0\2\12\1\0"+
382        "\3\12\1\0\2\12\1\0\10\12\1\u0155\16\12\27\0"+
383        "\2\12\1\0\3\12\1\0\1\u0156\1\12\1\0\27\12"+
384        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\10\12"+
385        "\1\u0157\16\12\27\0\2\12\1\0\3\12\1\0\2\12"+
386        "\1\0\1\12\1\u0158\25\12\27\0\2\12\1\0\3\12"+
387        "\1\0\2\12\1\0\16\12\1\u0159\10\12\27\0\2\12"+
388        "\1\0\3\12\1\0\1\u015a\1\12\1\0\27\12\27\0"+
389        "\2\12\1\0\3\12\1\0\2\12\1\0\16\12\1\u015b"+
390        "\10\12\27\0\2\12\1\0\3\12\1\0\1\u015c\1\12"+
391        "\1\0\27\12\27\0\2\12\1\0\3\12\1\0\2\12"+
392        "\1\0\10\12\1\u015d\16\12\27\0\2\12\1\0\3\12"+
393        "\1\0\2\12\1\0\10\12\1\u015e\16\12\27\0\2\12"+
394        "\1\0\3\12\1\0\2\12\1\0\6\12\1\u015f\20\12"+
395        "\27\0\2\12\1\0\3\12\1\0\2\12\1\0\10\12"+
396        "\1\u0160\16\12\27\0\2\12\1\0\3\12\1\0\2\12"+
397        "\1\0\1\u0161\26\12\27\0\2\12\1\0\3\12\1\0"+
398        "\2\12\1\0\10\12\1\u0162\16\12\27\0\2\12\1\0"+
399        "\3\12\1\0\2\12\1\0\1\u0163\26\12\20\0";
400    
401      /** 
402       * The transition table of the DFA
403       */
404      final private static int yytrans [] = yy_unpack();
405    
406    
407      /* error codes */
408      final private static int YY_UNKNOWN_ERROR = 0;
409      final private static int YY_NO_MATCH = 2;
410    
411      /* error messages for the codes above */
412      final private static String YY_ERROR_MSG[] = {
413        "Unkown internal scanner error",
414        "Internal error: unknown state",
415        "Error: could not match input",
416        "Error: pushback value was too large"
417      };
418    
419      /**
420       * YY_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
421       */
422      private final static byte YY_ATTRIBUTE[] = {
423         0,  0,  0,  9,  1,  9,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1, 
424         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
425         1,  1,  1,  9,  9,  9,  9,  9,  9,  9,  9,  1,  9,  1,  9,  1, 
426         1,  9,  1,  9,  9,  0,  0,  0,  0,  1,  1,  1,  9,  1,  1,  1, 
427         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
428         1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  9,  9,  9,  9,  9,  9, 
429         9,  9,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
430         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
431         1,  0,  0,  0,  0,  0,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1, 
432         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
433         1,  1,  1,  0,  0,  0,  0,  0,  1,  0,  1,  1,  1,  1,  1,  1, 
434         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
435         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0, 
436         0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
437         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
438         1,  1,  1,  1,  1,  9,  0,  0,  0,  9,  1,  1,  1,  1,  1,  1, 
439         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
440         1,  1,  1,  1,  1,  1,  1,  9,  0,  9,  1,  1,  1,  1,  1,  1, 
441         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9, 
442         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
443         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
444         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
445         1,  1,  1
446      };
447    
448      /** the input device */
449      private java.io.Reader yy_reader;
450    
451      /** the current state of the DFA */
452      private int yy_state;
453    
454      /** the current lexical state */
455      private int yy_lexical_state = YYINITIAL;
456    
457      /** this buffer contains the current text to be matched and is
458          the source of the yytext() string */
459      private char yy_buffer[] = new char[YY_BUFFERSIZE];
460    
461      /** the textposition at the last accepting state */
462      private int yy_markedPos;
463    
464      /** the textposition at the last state to be included in yytext */
465      private int yy_pushbackPos;
466    
467      /** the current text position in the buffer */
468      private int yy_currentPos;
469    
470      /** startRead marks the beginning of the yytext() string in the buffer */
471      private int yy_startRead;
472    
473      /** endRead marks the last character in the buffer, that has been read
474          from input */
475      private int yy_endRead;
476    
477      /** number of newlines encountered up to the start of the matched text */
478      private int yyline;
479    
480      /** the number of characters up to the start of the matched text */
481      private int yychar;
482    
483      /**
484       * the number of characters from the last newline up to the start of the 
485       * matched text
486       */
487      private int yycolumn;
488    
489      /** yy_atEOF == true <=> the scanner is at the EOF */
490      private boolean yy_atEOF;
491    
492      /** denotes if the user-EOF-code has already been executed */
493      private boolean yy_eof_done;
494    
495      /* user code: */
496      private StringBuilder string = new StringBuilder();
497    
498      private Symbol symbol(int type){
499        return new Symbol(type, yyline, yycolumn);
500      }
501      
502      private Symbol symbol(int type, Object value){
503        return new Symbol(type, yyline, yycolumn, value);
504      }
505      
506      private volatile int previousYYchar = 0;
507      
508      public int getPreviousPosition(){
509              return previousYYchar;
510      }
511      
512      public int getPosition(){
513              return yychar;
514      }
515    
516    
517      /**
518       * Creates a new scanner
519       * There is also a java.io.InputStream version of this constructor.
520       *
521       * @param   in  the java.io.Reader to read input from.
522       */
523      public Lexer(java.io.Reader in) {
524        this.yy_reader = in;
525      }
526    
527      /**
528       * Creates a new scanner.
529       * There is also java.io.Reader version of this constructor.
530       *
531       * @param   in  the java.io.Inputstream to read input from.
532       */
533      public Lexer(java.io.InputStream in) {
534        this(new java.io.InputStreamReader(in));
535      }
536    
537      /** 
538       * Unpacks the split, compressed DFA transition table.
539       *
540       * @return the unpacked transition table
541       */
542      private static int [] yy_unpack() {
543        int [] trans = new int[15288];
544        int offset = 0;
545        offset = yy_unpack(yy_packed0, offset, trans);
546        return trans;
547      }
548    
549      /** 
550       * Unpacks the compressed DFA transition table.
551       *
552       * @param packed   the packed transition table
553       * @return         the index of the last entry
554       */
555      private static int yy_unpack(String packed, int offset, int [] trans) {
556        int i = 0;       /* index in packed string  */
557        int j = offset;  /* index in unpacked array */
558        int l = packed.length();
559        while (i < l) {
560          int count = packed.charAt(i++);
561          int value = packed.charAt(i++);
562          value--;
563          do trans[j++] = value; while (--count > 0);
564        }
565        return j;
566      }
567    
568      /** 
569       * Unpacks the compressed character translation table.
570       *
571       * @param packed   the packed character translation table
572       * @return         the unpacked character translation table
573       */
574      private static char [] yy_unpack_cmap(String packed) {
575        char [] map = new char[0x10000];
576        int i = 0;  /* index in packed string  */
577        int j = 0;  /* index in unpacked array */
578        while (i < 140) {
579          int  count = packed.charAt(i++);
580          char value = packed.charAt(i++);
581          do map[j++] = value; while (--count > 0);
582        }
583        return map;
584      }
585    
586    
587      /**
588       * Refills the input buffer.
589       *
590       * @return      <code>false</code>, iff there was new input.
591       * 
592       * @exception   IOException  if any I/O-Error occurs
593       */
594      private boolean yy_refill() throws java.io.IOException {
595    
596        /* first: make room (if you can) */
597        if (yy_startRead > 0) {
598          System.arraycopy(yy_buffer, yy_startRead, 
599                           yy_buffer, 0, 
600                           yy_endRead-yy_startRead);
601    
602          /* translate stored positions */
603          yy_endRead-= yy_startRead;
604          yy_currentPos-= yy_startRead;
605          yy_markedPos-= yy_startRead;
606          yy_pushbackPos-= yy_startRead;
607          yy_startRead = 0;
608        }
609    
610        /* is the buffer big enough? */
611        if (yy_currentPos >= yy_buffer.length) {
612          /* if not: blow it up */
613          char newBuffer[] = new char[yy_currentPos*2];
614          System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length);
615          yy_buffer = newBuffer;
616        }
617    
618        /* finally: fill the buffer with new input */
619        int numRead = yy_reader.read(yy_buffer, yy_endRead, 
620                                                yy_buffer.length-yy_endRead);
621    
622        if (numRead < 0) {
623          return true;
624        }
625        yy_endRead+= numRead;  
626        return false;
627      }
628    
629    
630      /**
631       * Closes the input stream.
632       */
633      final public void yyclose() throws java.io.IOException {
634        yy_atEOF = true;            /* indicate end of file */
635        yy_endRead = yy_startRead;  /* invalidate buffer    */
636    
637        if (yy_reader != null)
638          yy_reader.close();
639      }
640    
641    
642      /**
643       * Closes the current stream, and resets the
644       * scanner to read from a new input stream.
645       *
646       * All internal variables are reset, the old input stream 
647       * <b>cannot</b> be reused (internal buffer is discarded and lost).
648       * Lexical state is set to <tt>YY_INITIAL</tt>.
649       *
650       * @param reader   the new input stream 
651       */
652      final public void yyreset(java.io.Reader reader) throws java.io.IOException {
653        yyclose();
654        yy_reader = reader;
655        yy_atEOF  = false;
656        yy_endRead = yy_startRead = 0;
657        yy_currentPos = yy_markedPos = yy_pushbackPos = 0;
658        yyline = yychar = yycolumn = 0;
659        yy_lexical_state = YYINITIAL;
660      }
661    
662    
663      /**
664       * Returns the current lexical state.
665       */
666      final public int yystate() {
667        return yy_lexical_state;
668      }
669    
670    
671      /**
672       * Enters a new lexical state
673       *
674       * @param newState the new lexical state
675       */
676      final public void yybegin(int newState) {
677        yy_lexical_state = newState;
678      }
679    
680    
681      /**
682       * Returns the text matched by the current regular expression.
683       */
684      final public String yytext() {
685        return new String( yy_buffer, yy_startRead, yy_markedPos-yy_startRead );
686      }
687    
688    
689      /**
690       * Returns the character at position <tt>pos</tt> from the 
691       * matched text. 
692       * 
693       * It is equivalent to yytext().charAt(pos), but faster
694       *
695       * @param pos the position of the character to fetch. 
696       *            A value from 0 to yylength()-1.
697       *
698       * @return the character at position pos
699       */
700      final public char yycharat(int pos) {
701        return yy_buffer[yy_startRead+pos];
702      }
703    
704    
705      /**
706       * Returns the length of the matched text region.
707       */
708      final public int yylength() {
709        return yy_markedPos-yy_startRead;
710      }
711    
712    
713      /**
714       * Reports an error that occured while scanning.
715       *
716       * In a wellformed scanner (no or only correct usage of 
717       * yypushback(int) and a match-all fallback rule) this method 
718       * will only be called with things that "Can't Possibly Happen".
719       * If this method is called, something is seriously wrong
720       * (e.g. a JFlex bug producing a faulty scanner etc.).
721       *
722       * Usual syntax/scanner level error handling should be done
723       * in error fallback rules.
724       *
725       * @param   errorCode  the code of the errormessage to display
726       */
727      private void yy_ScanError(int errorCode) {
728        String message;
729        try {
730          message = YY_ERROR_MSG[errorCode];
731        }
732        catch (ArrayIndexOutOfBoundsException e) {
733          message = YY_ERROR_MSG[YY_UNKNOWN_ERROR];
734        }
735    
736        throw new Error(message);
737      }
738    
739      /**
740       * Contains user EOF-code, which will be executed exactly once,
741       * when the end of file is reached
742       */
743      private void yy_do_eof() throws java.io.IOException {
744        if (!yy_eof_done) {
745          yy_eof_done = true;
746          yyclose();
747        }
748      }
749    
750    
751      /**
752       * Resumes scanning until the next regular expression is matched,
753       * the end of input is encountered or an I/O-Error occurs.
754       *
755       * @return      the next token
756       * @exception   IOException  if any I/O-Error occurs
757       */
758      public java_cup.runtime.Symbol next_token() throws java.io.IOException {
759              previousYYchar = yychar;
760              
761        int yy_input;
762        int yy_action;
763    
764        // cached fields:
765        int yy_currentPos_l;
766        int yy_markedPos_l;
767        int yy_endRead_l = yy_endRead;
768        char [] yy_buffer_l = yy_buffer;
769        char [] yycmap_l = yycmap;
770    
771        int [] yytrans_l = yytrans;
772        int [] yy_rowMap_l = yy_rowMap;
773        byte [] yy_attr_l = YY_ATTRIBUTE;
774    
775        while (true) {
776          yy_markedPos_l = yy_markedPos;
777    
778          yychar+= yy_markedPos_l-yy_startRead;
779    
780          boolean yy_r = false;
781          for (yy_currentPos_l = yy_startRead; yy_currentPos_l < yy_markedPos_l;
782                                                                 yy_currentPos_l++) {
783            switch (yy_buffer_l[yy_currentPos_l]) {
784            case '\u000B':
785            case '\u000C':
786            case '\u0085':
787            case '\u2028':
788            case '\u2029':
789              yyline++;
790              yycolumn = 0;
791              yy_r = false;
792              break;
793            case '\r':
794              yyline++;
795              yycolumn = 0;
796              yy_r = true;
797              break;
798            case '\n':
799              if (yy_r)
800                yy_r = false;
801              else {
802                yyline++;
803                yycolumn = 0;
804              }
805              break;
806            default:
807              yy_r = false;
808              yycolumn++;
809            }
810          }
811    
812          if (yy_r) {
813            // peek one character ahead if it is \n (if we have counted one line too much)
814            boolean yy_peek;
815            if (yy_markedPos_l < yy_endRead_l)
816              yy_peek = yy_buffer_l[yy_markedPos_l] == '\n';
817            else if (yy_atEOF)
818              yy_peek = false;
819            else {
820              boolean eof = yy_refill();
821              yy_markedPos_l = yy_markedPos;
822              yy_buffer_l = yy_buffer;
823              if (eof) 
824                yy_peek = false;
825              else 
826                yy_peek = yy_buffer_l[yy_markedPos_l] == '\n';
827            }
828            if (yy_peek) yyline--;
829          }
830          yy_action = -1;
831    
832          yy_currentPos_l = yy_currentPos = 
833                           yy_startRead = yy_markedPos_l;
834    
835          yy_state = yy_lexical_state;
836    
837    
838          yy_forAction: {
839            while (true) {
840    
841              if (yy_currentPos_l < yy_endRead_l)
842                yy_input = yy_buffer_l[yy_currentPos_l++];
843              else if (yy_atEOF) {
844                yy_input = YYEOF;
845                break yy_forAction;
846              }
847              else {
848                // store back cached positions
849                yy_currentPos  = yy_currentPos_l;
850                yy_markedPos   = yy_markedPos_l;
851                boolean eof = yy_refill();
852                // get translated positions and possibly new buffer
853                yy_currentPos_l  = yy_currentPos;
854                yy_markedPos_l   = yy_markedPos;
855                yy_buffer_l      = yy_buffer;
856                yy_endRead_l     = yy_endRead;
857                if (eof) {
858                  yy_input = YYEOF;
859                  break yy_forAction;
860                }
861                yy_input = yy_buffer_l[yy_currentPos_l++];
862              }
863              int yy_next = yytrans_l[ yy_rowMap_l[yy_state] + yycmap_l[yy_input] ];
864              if (yy_next == -1) break yy_forAction;
865              yy_state = yy_next;
866    
867              int yy_attributes = yy_attr_l[yy_state];
868              if ( (yy_attributes & 1) == 1 ) {
869                yy_action = yy_state; 
870                yy_markedPos_l = yy_currentPos_l; 
871                if ( (yy_attributes & 8) == 8 ) break yy_forAction;
872              }
873    
874            }
875          }
876    
877          // store back cached position
878          yy_markedPos = yy_markedPos_l;
879    
880          switch (yy_action) {
881    
882            case 340: 
883              {  return symbol(sym.ABS_TIMEOUT);  }
884            case 356: break;
885            case 339: 
886              {  return symbol(sym.UNSUBSCRIBE);  }
887            case 357: break;
888            case 337: 
889              {  return symbol(sym.REC_CONNECT);  }
890            case 358: break;
891            case 336: 
892              {  return symbol(sym.REC_REQUEST);  }
893            case 359: break;
894            case 321: 
895              {  return symbol(sym.SND_CANCEL);  }
896            case 360: break;
897            case 90: 
898              {  return symbol(sym.LEFTCHOICE);  }
899            case 361: break;
900            case 60: 
901              {  return symbol(sym.RIGHTCHOICE);  }
902            case 362: break;
903            case 273: 
904              {  return symbol(sym.REL_TIMEOUT);  }
905            case 363: break;
906            case 10: 
907            case 13: 
908              {  return symbol(sym.INT, new Integer(yytext()));  }
909            case 364: break;
910            case 318: 
911              {  return symbol(sym.ABS_DELAY);  }
912            case 365: break;
913            case 317: 
914              {  return symbol(sym.UNDEFINED);  }
915            case 366: break;
916            case 315: 
917              {  return symbol(sym.REC_VALUE);  }
918            case 367: break;
919            case 310: 
920              {  return symbol(sym.REC_EVENT);  }
921            case 368: break;
922            case 308: 
923              {  return symbol(sym.SUBSCRIBE);  }
924            case 369: break;
925            case 293: 
926              {  return symbol(sym.REC_NOTE);  }
927            case 370: break;
928            case 290: 
929              {  return symbol(sym.SHUTDOWN);  }
930            case 371: break;
931            case 288: 
932              {  return symbol(sym.SND_KILL);  }
933            case 372: break;
934            case 283: 
935              {  return symbol(sym.SND_NOTE);  }
936            case 373: break;
937            case 282: 
938              {  return symbol(sym.SND_EVAL);  }
939            case 374: break;
940            case 46: 
941              {  return symbol(sym.QUESTION);  }
942            case 375: break;
943            case 185: 
944              {  return symbol(sym.REL_DELAY);  }
945            case 376: break;
946            case 303: 
947              {  yybegin(INCLUDE); return symbol(sym.INCLUDE);  }
948            case 377: break;
949            case 81: 
950              {  return symbol(sym.FI);  }
951            case 378: break;
952            case 79: 
953              {  return symbol(sym.IF);  }
954            case 379: break;
955            case 78: 
956              {  return symbol(sym.IN);  }
957            case 380: break;
958            case 77: 
959              {  return symbol(sym.IS);  }
960            case 381: break;
961            case 14: 
962              {  return symbol(sym.SEQ);  }
963            case 382: break;
964            case 4: 
965            case 5: 
966              {  /* ignore */  }
967            case 383: break;
968            case 118: 
969              {  return symbol(sym.TAU);  }
970            case 384: break;
971            case 127: 
972              {  return symbol(sym.LET);  }
973            case 385: break;
974            case 134: 
975              {  /* ignore */  }
976            case 386: break;
977            case 348: 
978              {  return symbol(sym.SND_ACK_EVENT);  }
979            case 387: break;
980            case 347: 
981              {  return symbol(sym.SND_TERMINATE);  }
982            case 388: break;
983            case 341: 
984              {  return symbol(sym.SND_RESPONSE);  }
985            case 389: break;
986            case 49: 
987              {  yybegin(YYINITIAL); return symbol(sym.STRING, string.toString());  }
988            case 390: break;
989            case 43: 
990              {  return symbol(sym.COLON);  }
991            case 391: break;
992            case 7: 
993              {  return symbol(sym.ITER);  }
994            case 392: break;
995            case 36: 
996              {  return symbol(sym.LPAR);  }
997            case 393: break;
998            case 37: 
999              {  return symbol(sym.RPAR);  }
1000            case 394: break;
1001            case 38: 
1002              {  return symbol(sym.COMMA);  }
1003            case 395: break;
1004            case 137: 
1005              {  return symbol(sym.ELSE);  }
1006            case 396: break;
1007            case 147: 
1008              {  return symbol(sym.READ);  }
1009            case 397: break;
1010            case 151: 
1011              {  return symbol(sym.TRUE);  }
1012            case 398: break;
1013            case 152: 
1014              {  return symbol(sym.TOOL);  }
1015            case 399: break;
1016            case 154: 
1017              {  return symbol(sym.THEN);  }
1018            case 400: break;
1019            case 161: 
1020              {  return symbol(sym.KIND);  }
1021            case 401: break;
1022            case 162: 
1023              {  return symbol(sym.HOST);  }
1024            case 402: break;
1025            case 184: 
1026              {  return symbol(sym.DELTA);  }
1027            case 403: break;
1028            case 197: 
1029              {  return symbol(sym.CLASS);  }
1030            case 404: break;
1031            case 204: 
1032              {  return symbol(sym.FALSE);  }
1033            case 405: break;
1034            case 245: 
1035              {  return symbol(sym.ENDIF);  }
1036            case 406: break;
1037            case 249: 
1038              {  return symbol(sym.IFDEF);  }
1039            case 407: break;
1040            case 3: 
1041            case 6: 
1042            case 8: 
1043            case 12: 
1044            case 32: 
1045            case 45: 
1046              {  throw new SyntaxErrorException(yyline, yycolumn, yychar, yy_action);  }
1047            case 408: break;
1048            case 48: 
1049              {  string.append('\\');  }
1050            case 409: break;
1051            case 94: 
1052              {  string.append('\n');  }
1053            case 410: break;
1054            case 95: 
1055              {  string.append('\r');  }
1056            case 411: break;
1057            case 96: 
1058              {  string.append('\t');  }
1059            case 412: break;
1060            case 97: 
1061              {  string.append('\"');  }
1062            case 413: break;
1063            case 51: 
1064              {  string.setLength(0);  }
1065            case 414: break;
1066            case 354: 
1067              {  return symbol(sym.REC_PERF_STATS);  }
1068            case 415: break;
1069            case 353: 
1070              {  return symbol(sym.REC_DISCONNECT);  }
1071            case 416: break;
1072            case 352: 
1073              {  return symbol(sym.GET_PERF_STATS);  }
1074            case 417: break;
1075            case 11: 
1076              {  return symbol(sym.NAME, yytext());  }
1077            case 418: break;
1078            case 9: 
1079            case 15: 
1080            case 17: 
1081            case 18: 
1082            case 19: 
1083            case 20: 
1084            case 21: 
1085            case 22: 
1086            case 23: 
1087            case 24: 
1088            case 25: 
1089            case 26: 
1090            case 27: 
1091            case 28: 
1092            case 29: 
1093            case 30: 
1094            case 31: 
1095            case 57: 
1096            case 58: 
1097            case 59: 
1098            case 61: 
1099            case 62: 
1100            case 63: 
1101            case 64: 
1102            case 65: 
1103            case 66: 
1104            case 67: 
1105            case 68: 
1106            case 69: 
1107            case 70: 
1108            case 71: 
1109            case 72: 
1110            case 73: 
1111            case 74: 
1112            case 75: 
1113            case 76: 
1114            case 80: 
1115            case 82: 
1116            case 83: 
1117            case 84: 
1118            case 85: 
1119            case 86: 
1120            case 101: 
1121            case 102: 
1122            case 103: 
1123            case 104: 
1124            case 105: 
1125            case 106: 
1126            case 107: 
1127            case 108: 
1128            case 109: 
1129            case 110: 
1130            case 111: 
1131            case 112: 
1132            case 113: 
1133            case 114: 
1134            case 115: 
1135            case 116: 
1136            case 117: 
1137            case 119: 
1138            case 120: 
1139            case 121: 
1140            case 122: 
1141            case 123: 
1142            case 124: 
1143            case 125: 
1144            case 126: 
1145            case 128: 
1146            case 136: 
1147            case 138: 
1148            case 139: 
1149            case 140: 
1150            case 141: 
1151            case 142: 
1152            case 143: 
1153            case 144: 
1154            case 145: 
1155            case 146: 
1156            case 148: 
1157            case 149: 
1158            case 150: 
1159            case 153: 
1160            case 155: 
1161            case 156: 
1162            case 157: 
1163            case 158: 
1164            case 159: 
1165            case 160: 
1166            case 170: 
1167            case 171: 
1168            case 172: 
1169            case 173: 
1170            case 174: 
1171            case 175: 
1172            case 176: 
1173            case 177: 
1174            case 178: 
1175            case 179: 
1176            case 180: 
1177            case 181: 
1178            case 182: 
1179            case 183: 
1180            case 186: 
1181            case 187: 
1182            case 188: 
1183            case 189: 
1184            case 190: 
1185            case 191: 
1186            case 192: 
1187            case 193: 
1188            case 194: 
1189            case 195: 
1190            case 196: 
1191            case 198: 
1192            case 199: 
1193            case 200: 
1194            case 201: 
1195            case 202: 
1196            case 203: 
1197            case 205: 
1198            case 206: 
1199            case 213: 
1200            case 214: 
1201            case 215: 
1202            case 217: 
1203            case 218: 
1204            case 219: 
1205            case 220: 
1206            case 221: 
1207            case 222: 
1208            case 223: 
1209            case 224: 
1210            case 225: 
1211            case 226: 
1212            case 227: 
1213            case 228: 
1214            case 229: 
1215            case 230: 
1216            case 231: 
1217            case 232: 
1218            case 233: 
1219            case 234: 
1220            case 236: 
1221            case 237: 
1222            case 238: 
1223            case 239: 
1224            case 240: 
1225            case 241: 
1226            case 243: 
1227            case 244: 
1228            case 251: 
1229            case 252: 
1230            case 254: 
1231            case 255: 
1232            case 256: 
1233            case 257: 
1234            case 258: 
1235            case 259: 
1236            case 260: 
1237            case 262: 
1238            case 263: 
1239            case 264: 
1240            case 265: 
1241            case 267: 
1242            case 268: 
1243            case 269: 
1244            case 270: 
1245            case 274: 
1246            case 275: 
1247            case 277: 
1248            case 278: 
1249            case 284: 
1250            case 285: 
1251            case 286: 
1252            case 287: 
1253            case 289: 
1254            case 291: 
1255            case 292: 
1256            case 294: 
1257            case 295: 
1258            case 296: 
1259            case 297: 
1260            case 298: 
1261            case 299: 
1262            case 300: 
1263            case 301: 
1264            case 302: 
1265            case 304: 
1266            case 305: 
1267            case 306: 
1268            case 307: 
1269            case 309: 
1270            case 311: 
1271            case 312: 
1272            case 313: 
1273            case 314: 
1274            case 316: 
1275            case 319: 
1276            case 320: 
1277            case 322: 
1278            case 323: 
1279            case 324: 
1280            case 325: 
1281            case 326: 
1282            case 327: 
1283            case 328: 
1284            case 329: 
1285            case 330: 
1286            case 331: 
1287            case 332: 
1288            case 333: 
1289            case 334: 
1290            case 335: 
1291            case 338: 
1292            case 342: 
1293            case 343: 
1294            case 344: 
1295            case 345: 
1296            case 346: 
1297            case 349: 
1298            case 350: 
1299            case 351: 
1300              {  return symbol(sym.IDENT, yytext());  }
1301            case 419: break;
1302            case 100: 
1303            case 168: 
1304              {  return symbol(sym.REAL, yytext());  }
1305            case 420: break;
1306            case 35: 
1307              {  string.setLength(0); yybegin(STRING);  }
1308            case 421: break;
1309            case 92: 
1310              {  return symbol(sym.ASSIGN);  }
1311            case 422: break;
1312            case 91: 
1313              {  return symbol(sym.DISRUPT);  }
1314            case 423: break;
1315            case 52: 
1316              {  yybegin(YYINITIAL); return symbol(sym.FILENAME, string.toString());  }
1317            case 424: break;
1318            case 50: 
1319              {  string.append( yytext() );  }
1320            case 425: break;
1321            case 47: 
1322              {  string.append( yytext() );  }
1323            case 426: break;
1324            case 44: 
1325              {  return symbol(sym.EQUALS);  }
1326            case 427: break;
1327            case 42: 
1328              {  return symbol(sym.RSQUARE);  }
1329            case 428: break;
1330            case 16: 
1331              {  return symbol(sym.CHOICE);  }
1332            case 429: break;
1333            case 33: 
1334              {  return symbol(sym.LANGLE);  }
1335            case 430: break;
1336            case 34: 
1337              {  return symbol(sym.RANGLE);  }
1338            case 431: break;
1339            case 39: 
1340              {  return symbol(sym.LBRACE);  }
1341            case 432: break;
1342            case 40: 
1343              {  return symbol(sym.RBRACE);  }
1344            case 433: break;
1345            case 41: 
1346              {  return symbol(sym.LSQUARE);  }
1347            case 434: break;
1348            case 93: 
1349              {  return symbol(sym.FMERGE);  }
1350            case 435: break;
1351            case 212: 
1352              {  return symbol(sym.ENDLET);  }
1353            case 436: break;
1354            case 216: 
1355              {  return symbol(sym.SND_DO);  }
1356            case 437: break;
1357            case 235: 
1358              {  return symbol(sym.CREATE);  }
1359            case 438: break;
1360            case 242: 
1361              {  return symbol(sym.PRINTF);  }
1362            case 439: break;
1363            case 250: 
1364              {  return symbol(sym.EXECUTE);  }
1365            case 440: break;
1366            case 253: 
1367              {  return symbol(sym.SND_MSG);  }
1368            case 441: break;
1369            case 261: 
1370              {  return symbol(sym.NO_NOTE);  }
1371            case 442: break;
1372            case 266: 
1373              {  return symbol(sym.REC_MSG);  }
1374            case 443: break;
1375            case 271: 
1376              {  return symbol(sym.COMMAND);  }
1377            case 444: break;
1378            case 272: 
1379              {  return symbol(sym.TOOLBUS);  }
1380            case 445: break;
1381            case 276: 
1382              {  return symbol(sym.PROCESS);  }
1383            case 446: break;
1384            case 279: 
1385              {  return symbol(sym.DEFINE);  }
1386            case 447: break;
1387            case 281: 
1388              {  return symbol(sym.IFNDEF);  }
1389            case 448: break;
1390            default: 
1391              if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
1392                yy_atEOF = true;
1393                yy_do_eof();
1394                  { return new java_cup.runtime.Symbol(sym.EOF); }
1395              }
1396              yy_ScanError(YY_NO_MATCH);
1397          }
1398        }
1399      }
1400    
1401    
1402    }