compiler/bootstrap: Updated the bootstrap to reflect latest fixes
[sdk] / compiler / bootstrap / libec / bootstrap / lexer.c
1 #if defined(__GNUC__)
2 typedef long long int64;
3 typedef unsigned long long uint64;
4 #elif defined(__TINYC__)
5 #include <stdarg.h>
6 #define __builtin_va_list va_list
7 #define __builtin_va_start va_start
8 #define __builtin_va_end va_end
9 #ifdef _WIN32
10 #define strcasecmp stricmp
11 #define strncasecmp strnicmp
12 #define __declspec(x) __attribute__((x))
13 #endif
14 typedef long long int64;
15 typedef unsigned long long uint64;
16 #else
17 typedef __int64 int64;
18 typedef unsigned __int64 uint64;
19 #endif
20 #ifdef __BIG_ENDIAN__
21 #define __ENDIAN_PAD(x) (8 - (x))
22 #else
23 #define __ENDIAN_PAD(x) 0
24 #endif
25 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
26
27 struct __ecereNameSpace__ecere__sys__BTNode;
28
29 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
30
31 struct __ecereNameSpace__ecere__sys__BinaryTree
32 {
33 struct __ecereNameSpace__ecere__sys__BTNode * root;
34 int count;
35 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, unsigned int a, unsigned int b);
36 void (*  FreeKey)(void *  key);
37 };
38
39 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
40
41 struct __ecereNameSpace__ecere__sys__OldList
42 {
43 void *  first;
44 void *  last;
45 int count;
46 unsigned int offset;
47 unsigned int circ;
48 };
49
50 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
51
52 struct __ecereNameSpace__ecere__com__Method
53 {
54 char *  name;
55 struct __ecereNameSpace__ecere__com__Method * parent;
56 struct __ecereNameSpace__ecere__com__Method * left;
57 struct __ecereNameSpace__ecere__com__Method * right;
58 int depth;
59 int (*  function)();
60 int vid;
61 int type;
62 struct __ecereNameSpace__ecere__com__Class * _class;
63 void *  symbol;
64 char *  dataTypeString;
65 struct Type * dataType;
66 int memberAccess;
67 };
68
69 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
70
71 struct __ecereNameSpace__ecere__com__Property
72 {
73 struct __ecereNameSpace__ecere__com__Property * prev;
74 struct __ecereNameSpace__ecere__com__Property * next;
75 char *  name;
76 unsigned int isProperty;
77 int memberAccess;
78 int id;
79 struct __ecereNameSpace__ecere__com__Class * _class;
80 char *  dataTypeString;
81 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
82 struct Type * dataType;
83 void (*  Set)();
84 int (*  Get)();
85 unsigned int (*  IsSet)();
86 void *  data;
87 void *  symbol;
88 int vid;
89 unsigned int conversion;
90 unsigned int watcherOffset;
91 char *  category;
92 unsigned int compiled;
93 unsigned int selfWatchable;
94 unsigned int isWatchable;
95 };
96
97 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_CodePosition;
98
99 struct CodePosition
100 {
101 int line;
102 int charPos;
103 int pos;
104 unsigned int included;
105 };
106
107 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Location;
108
109 struct Location
110 {
111 struct CodePosition start;
112 struct CodePosition end;
113 };
114
115 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attrib;
116
117 struct Attrib;
118
119 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExtDecl;
120
121 struct ExtDecl;
122
123 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDefinition;
124
125 struct ClassDefinition;
126
127 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
128
129 struct Context;
130
131 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Instantiation;
132
133 struct Instantiation;
134
135 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declaration;
136
137 struct Declaration;
138
139 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Statement;
140
141 struct Statement;
142
143 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
144
145 struct TypeName;
146
147 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Initializer;
148
149 struct Initializer;
150
151 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
152
153 struct __ecereNameSpace__ecere__com__DataValue
154 {
155 union
156 {
157 char c;
158 unsigned char uc;
159 short s;
160 unsigned short us;
161 int i;
162 unsigned int ui;
163 void *  p;
164 float f;
165 double d;
166 long long i64;
167 uint64 ui64;
168 };
169 };
170
171 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
172
173 struct Expression;
174
175 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
176
177 struct TemplateDatatype;
178
179 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
180
181 struct TemplateArgument;
182
183 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
184
185 struct TemplateParameter;
186
187 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
188
189 struct Specifier;
190
191 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
192
193 struct Identifier;
194
195 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Pointer;
196
197 struct Pointer;
198
199 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
200
201 struct Declarator;
202
203 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
204
205 struct FunctionDefinition;
206
207 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
208
209 struct DBTableDef;
210
211 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
212
213 struct External;
214
215 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
216
217 struct ModuleImport;
218
219 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
220
221 struct ClassImport;
222
223 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
224
225 struct Symbol;
226
227 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
228
229 struct Type;
230
231 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
232
233 struct __ecereNameSpace__ecere__com__Class
234 {
235 struct __ecereNameSpace__ecere__com__Class * prev;
236 struct __ecereNameSpace__ecere__com__Class * next;
237 char *  name;
238 int offset;
239 int structSize;
240 int (* *  _vTbl)();
241 int vTblSize;
242 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
243 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
244 int offsetClass;
245 int sizeClass;
246 struct __ecereNameSpace__ecere__com__Class * base;
247 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
248 struct __ecereNameSpace__ecere__sys__BinaryTree members;
249 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
250 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
251 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
252 struct __ecereNameSpace__ecere__sys__OldList derivatives;
253 int memberID;
254 int startMemberID;
255 int type;
256 struct __ecereNameSpace__ecere__com__Instance * module;
257 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
258 char *  dataTypeString;
259 struct Type * dataType;
260 int typeSize;
261 int defaultAlignment;
262 void (*  Initialize)();
263 int memberOffset;
264 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
265 char *  designerClass;
266 unsigned int noExpansion;
267 char *  defaultProperty;
268 unsigned int comRedefinition;
269 int count;
270 unsigned int isRemote;
271 unsigned int internalDecl;
272 void *  data;
273 unsigned int computeSize;
274 int structAlignment;
275 int destructionWatchOffset;
276 unsigned int fixed;
277 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
278 int inheritanceAccess;
279 char *  fullName;
280 void *  symbol;
281 struct __ecereNameSpace__ecere__sys__OldList conversions;
282 struct __ecereNameSpace__ecere__sys__OldList templateParams;
283 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
284 struct __ecereNameSpace__ecere__com__Class * templateClass;
285 struct __ecereNameSpace__ecere__sys__OldList templatized;
286 int numParams;
287 };
288
289 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
290
291 struct __ecereNameSpace__ecere__com__Instance
292 {
293 int (* *  _vTbl)();
294 struct __ecereNameSpace__ecere__com__Class * _class;
295 int _refCount;
296 };
297
298 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
299
300 struct __ecereNameSpace__ecere__com__DataMember
301 {
302 struct __ecereNameSpace__ecere__com__DataMember * prev;
303 struct __ecereNameSpace__ecere__com__DataMember * next;
304 char *  name;
305 unsigned int isProperty;
306 int memberAccess;
307 int id;
308 struct __ecereNameSpace__ecere__com__Class * _class;
309 char *  dataTypeString;
310 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
311 struct Type * dataType;
312 int type;
313 int offset;
314 int memberID;
315 struct __ecereNameSpace__ecere__sys__OldList members;
316 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
317 int memberOffset;
318 int structAlignment;
319 };
320
321 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
322
323 struct __ecereNameSpace__ecere__com__SerialBuffer
324 {
325 unsigned char *  _buffer;
326 unsigned int count;
327 unsigned int _size;
328 unsigned int pos;
329 };
330
331 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
332
333 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
334 {
335 union
336 {
337 struct
338 {
339 char *  dataTypeString;
340 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
341 };
342 struct __ecereNameSpace__ecere__com__DataValue expression;
343 struct
344 {
345 char *  memberString;
346 union
347 {
348 struct __ecereNameSpace__ecere__com__DataMember * member;
349 struct __ecereNameSpace__ecere__com__Property * prop;
350 struct __ecereNameSpace__ecere__com__Method * method;
351 };
352 };
353 };
354 };
355
356 typedef unsigned int size_t;
357
358 void exit(int status);
359
360 void * calloc(size_t nmemb, size_t size);
361
362 void free(void * ptr);
363
364 void * malloc(size_t size);
365
366 void * realloc(void * ptr, size_t size);
367
368 long int strtol(const char * nptr, char ** endptr, int base);
369
370 long long int strtoll(const char * nptr, char ** endptr, int base);
371
372 unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
373
374 typedef __builtin_va_list __gnuc_va_list;
375
376 typedef __gnuc_va_list va_list;
377
378 typedef void FILE;
379
380 FILE * bsl_stdin(void);
381
382 FILE * bsl_stdout(void);
383
384 FILE * bsl_stderr(void);
385
386 char * fgets(char * s, int size, FILE * stream);
387
388 FILE * fopen(const char * path, const char * mode);
389
390 int fclose(FILE * fp);
391
392 int fflush(FILE * stream);
393
394 int fgetc(FILE * stream);
395
396 int fprintf(FILE * stream, const char * format, ...);
397
398 int fputc(int c, FILE * stream);
399
400 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
401
402 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
403
404 int fseek(FILE * stream, long offset, int whence);
405
406 long ftell(FILE * stream);
407
408 int feof(FILE * stream);
409
410 int ferror(FILE * stream);
411
412 int fileno(FILE * stream);
413
414 typedef struct yy_buffer_state * YY_BUFFER_STATE;
415
416 extern int yyleng;
417
418 extern FILE * yyin, * yyout;
419
420 typedef unsigned int yy_size_t;
421
422 struct yy_buffer_state
423 {
424 FILE * yy_input_file;
425 char * yy_ch_buf;
426 char * yy_buf_pos;
427 yy_size_t yy_buf_size;
428 int yy_n_chars;
429 int yy_is_our_buffer;
430 int yy_is_interactive;
431 int yy_at_bol;
432 int yy_fill_buffer;
433 int yy_buffer_status;
434 };
435
436 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_yy_buffer_state;
437
438 static YY_BUFFER_STATE yy_current_buffer = 0;
439
440 static char yy_hold_char;
441
442 static int yy_n_chars;
443
444 int yyleng;
445
446 static char * yy_c_buf_p = (char *)0;
447
448 static int yy_init = 1;
449
450 static int yy_start = 0;
451
452 static int yy_did_buffer_switch_on_eof;
453
454 void yyrestart(FILE * input_file);
455
456 void yy_switch_to_buffer(YY_BUFFER_STATE new_buffer);
457
458 void yy_load_buffer_state(void);
459
460 YY_BUFFER_STATE yy_create_buffer(FILE * file, int size);
461
462 void yy_delete_buffer(YY_BUFFER_STATE b);
463
464 void yy_init_buffer(YY_BUFFER_STATE b, FILE * file);
465
466 void yy_flush_buffer(YY_BUFFER_STATE b);
467
468 YY_BUFFER_STATE yy_scan_buffer(char * base, yy_size_t size);
469
470 YY_BUFFER_STATE yy_scan_string(const char * yy_str);
471
472 YY_BUFFER_STATE yy_scan_bytes(const char * bytes, int len);
473
474 static void * yy_flex_alloc(yy_size_t);
475
476 static void * yy_flex_realloc(void *, yy_size_t);
477
478 static void yy_flex_free(void *);
479
480 typedef unsigned char YY_CHAR;
481
482 FILE * yyin = (FILE *)0, * yyout = (FILE *)0;
483
484 typedef int yy_state_type;
485
486 extern char * yytext;
487
488 static yy_state_type yy_get_previous_state(void);
489
490 static yy_state_type yy_try_NUL_trans(yy_state_type current_state);
491
492 static int yy_get_next_buffer(void);
493
494 static void yy_fatal_error(const char msg[]);
495
496 static const short int yy_accept[661] = 
497 {
498 (short)0, (short)106, (short)106, (short)167, (short)165, (short)164, (short)163, (short)162, (short)149, (short)165, (short)1, (short)161, (short)155, (short)148, (short)165, (short)143, (short)144, (short)153, (short)152, (short)140, (short)151, (short)147, (short)154, (short)109, (short)109, (short)141, (short)137, (short)156, (short)142, (short)157, (short)160, (short)106, (short)106, (short)145, (short)146, (short)158, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)138, (short)159, (short)139, (short)150, (short)136, (short)0, (short)114, (short)0, (short)122, (short)139, (short)131, (short)123, (short)0, (short)0, (short)120, (short)128, (short)118, (short)129, (short)119, (short)130, (short)0, (short)112, (short)2, (short)3, (short)121, (short)113, (short)108, (short)0, (short)109, (short)0, (short)109, (short)106, (short)146, (short)138, (short)145, (short)127, (short)133, (short)135, (short)134, (short)126, (short)0, (short)106, (short)0, (short)0, (short)0, (short)124, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)11, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)19, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)125, (short)132, (short)110, (short)115, (short)0, (short)112, (short)112, (short)0, (short)113, (short)108, (short)0, (short)111, (short)107, (short)106, (short)117, (short)116, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)86, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)17, (short)44, (short)106, (short)106, (short)106, (short)106, (short)20, (short)106, (short)106, (short)106, (short)50, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)43, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)0, (short)112, (short)0, (short)112, (short)0, (short)113, (short)111, (short)107, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)4, (short)106, (short)6, (short)7, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)13, (short)14, (short)106, (short)106, (short)106, (short)18, (short)106, (short)106, (short)106, (short)106, (short)106, (short)22, (short)106, (short)51, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)21, (short)106, (short)106, (short)106, (short)37, (short)106, (short)106, (short)106, (short)0, (short)112, (short)106, (short)87, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)5, (short)46, (short)8, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)16, (short)106, (short)106, (short)106, (short)57, (short)45, (short)106, (short)106, (short)106, (short)106, (short)106, (short)52, (short)106, (short)25, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)35, (short)106, (short)106, (short)106, (short)89, (short)41, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)55, (short)49, (short)106, (short)106, (short)12, (short)15, (short)106, (short)54, (short)82, (short)66, (short)106, (short)106, (short)106, (short)78, (short)106, (short)53, (short)24, (short)26, (short)29, (short)31, (short)106, (short)106, (short)32, (short)106, (short)33, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)85, (short)106, (short)106, (short)70, (short)76, (short)106, (short)106, (short)106, (short)56, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)64, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)103, (short)104, (short)102, (short)10, (short)106, (short)106, (short)106, (short)106, (short)79, (short)106, (short)106, (short)74, (short)106, (short)106, (short)106, (short)106, (short)34, (short)106, (short)48, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)65, (short)106, (short)27, (short)106, (short)88, (short)106, (short)106, (short)73, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)9, (short)106, (short)106, (short)106, (short)106, (short)106, (short)42, (short)23, (short)106, (short)100, (short)106, (short)106, (short)36, (short)38, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)71, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)68, (short)69, (short)106, (short)101, (short)106, (short)106, (short)47, (short)106, (short)92, (short)106, (short)106, (short)106, (short)106, (short)106, (short)63, (short)75, (short)28, (short)106, (short)40, (short)106, (short)81, (short)98, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)30, (short)62, (short)106, (short)0, (short)106, (short)106, (short)72, (short)106, (short)84, (short)106, (short)106, (short)95, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)67, (short)0, (short)106, (short)77, (short)39, (short)106, (short)106, (short)106, (short)106, (short)106, (short)91, (short)106, (short)90, (short)80, (short)61, (short)106, (short)106, (short)83, (short)106, (short)106, (short)106, (short)106, (short)105, (short)106, (short)106, (short)106, (short)106, (short)106, (short)93, (short)106, (short)99, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)59, (short)106, (short)106, (short)106, (short)106, (short)106, (short)58, (short)106, (short)106, (short)97, (short)106, (short)106, (short)94, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)106, (short)96, (short)106, (short)60, (short)0
499 };
500
501 static const int yy_ec[256] = 
502 {
503 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 21, 22, 21, 23, 21, 21, 21, 24, 25, 26, 27, 28, 29, 1, 30, 30, 30, 30, 31, 32, 33, 33, 33, 33, 33, 34, 33, 33, 33, 33, 33, 33, 33, 33, 35, 33, 33, 36, 33, 33, 37, 38, 39, 40, 41, 1, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 33, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
504 };
505
506 static const int yy_meta[71] = 
507 {
508 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 4, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 2, 1, 1, 1, 1, 1, 6, 6, 6, 7, 7, 7, 7, 1, 1, 1, 1, 7, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 1
509 };
510
511 static const short int yy_base[669] = 
512 {
513 (short)0, (short)0, (short)0, (short)216, (short)2195, (short)2195, (short)2195, (short)2195, (short)178, (short)65, (short)2195, (short)2195, (short)45, (short)64, (short)158, (short)2195, (short)2195, (short)160, (short)60, (short)2195, (short)61, (short)59, (short)71, (short)86, (short)133, (short)68, (short)2195, (short)75, (short)156, (short)66, (short)2195, (short)73, (short)104, (short)2195, (short)2195, (short)150, (short)102, (short)76, (short)101, (short)120, (short)139, (short)136, (short)148, (short)147, (short)160, (short)109, (short)164, (short)117, (short)156, (short)187, (short)189, (short)202, (short)199, (short)211, (short)2195, (short)68, (short)2195, (short)2195, (short)2195, (short)107, (short)2195, (short)139, (short)2195, (short)2195, (short)2195, (short)2195, (short)179, (short)113, (short)2195, (short)2195, (short)2195, (short)2195, (short)2195, (short)2195, (short)122, (short)241, (short)2195, (short)2195, (short)2195, (short)245, (short)281, (short)207, (short)236, (short)0, (short)0, (short)0, (short)2195, (short)2195, (short)2195, (short)111, (short)2195, (short)2195, (short)2195, (short)107, (short)105, (short)208, (short)99, (short)202, (short)80, (short)2195, (short)333, (short)210, (short)235, (short)259, (short)215, (short)232, (short)271, (short)272, (short)234, (short)290, (short)296, (short)297, (short)298, (short)299, (short)300, (short)301, (short)320, (short)326, (short)327, (short)338, (short)316, (short)331, (short)346, (short)356, (short)358, (short)362, (short)379, (short)384, (short)386, (short)387, (short)389, (short)390, (short)391, (short)395, (short)402, (short)396, (short)399, (short)411, (short)407, (short)415, (short)422, (short)424, (short)430, (short)451, (short)454, (short)456, (short)457, (short)458, (short)459, (short)2195, (short)2195, (short)2195, (short)2195, (short)469, (short)2195, (short)499, (short)478, (short)2195, (short)462, (short)504, (short)515, (short)505, (short)0, (short)2195, (short)2195, (short)0, (short)518, (short)492, (short)519, (short)524, (short)493, (short)531, (short)541, (short)549, (short)550, (short)557, (short)484, (short)559, (short)566, (short)569, (short)461, (short)570, (short)572, (short)574, (short)578, (short)579, (short)581, (short)582, (short)594, (short)597, (short)606, (short)607, (short)609, (short)613, (short)615, (short)618, (short)619, (short)622, (short)637, (short)643, (short)598, (short)641, (short)646, (short)650, (short)652, (short)662, (short)656, (short)665, (short)667, (short)668, (short)674, (short)671, (short)672, (short)677, (short)689, (short)680, (short)683, (short)693, (short)695, (short)699, (short)710, (short)698, (short)708, (short)711, (short)714, (short)717, (short)718, (short)721, (short)726, (short)727, (short)733, (short)736, (short)738, (short)739, (short)749, (short)755, (short)757, (short)772, (short)780, (short)796, (short)2195, (short)784, (short)800, (short)2195, (short)735, (short)0, (short)761, (short)805, (short)814, (short)766, (short)815, (short)818, (short)820, (short)825, (short)821, (short)826, (short)830, (short)836, (short)827, (short)833, (short)838, (short)842, (short)846, (short)849, (short)853, (short)773, (short)861, (short)868, (short)870, (short)873, (short)877, (short)888, (short)890, (short)893, (short)895, (short)892, (short)894, (short)896, (short)897, (short)898, (short)900, (short)905, (short)901, (short)917, (short)918, (short)920, (short)921, (short)924, (short)926, (short)936, (short)937, (short)942, (short)939, (short)943, (short)946, (short)949, (short)955, (short)961, (short)962, (short)964, (short)965, (short)967, (short)970, (short)980, (short)977, (short)985, (short)990, (short)986, (short)992, (short)993, (short)996, (short)998, (short)1003, (short)1005, (short)1014, (short)1027, (short)1021, (short)1029, (short)1031, (short)1034, (short)1033, (short)1039, (short)1064, (short)1040, (short)1053, (short)1042, (short)1044, (short)1046, (short)1057, (short)1068, (short)1079, (short)1083, (short)1085, (short)1089, (short)1091, (short)1094, (short)1095, (short)1100, (short)1096, (short)1102, (short)1112, (short)1104, (short)1113, (short)1119, (short)1120, (short)1121, (short)1124, (short)1129, (short)1140, (short)1145, (short)1146, (short)1148, (short)1149, (short)1151, (short)1153, (short)1155, (short)1157, (short)1161, (short)1164, (short)1168, (short)1173, (short)1180, (short)1181, (short)1183, (short)1190, (short)1192, (short)1199, (short)1201, (short)1203, (short)1209, (short)1207, (short)1208, (short)1211, (short)1212, (short)1214, (short)1220, (short)1224, (short)1227, (short)1229, (short)1230, (short)1231, (short)1236, (short)1240, (short)1251, (short)1257, (short)1259, (short)1262, (short)1264, (short)1266, (short)1270, (short)1268, (short)1279, (short)1281, (short)1283, (short)1286, (short)1291, (short)1292, (short)1290, (short)1298, (short)1303, (short)1309, (short)1307, (short)1313, (short)1316, (short)1314, (short)1318, (short)1326, (short)1331, (short)1320, (short)1338, (short)1342, (short)1343, (short)1344, (short)1348, (short)1355, (short)1359, (short)1360, (short)1370, (short)1372, (short)1375, (short)1379, (short)1381, (short)1382, (short)1385, (short)1388, (short)1390, (short)1391, (short)1394, (short)1400, (short)1401, (short)1403, (short)1407, (short)1409, (short)1410, (short)1411, (short)1413, (short)1418, (short)1419, (short)1428, (short)1430, (short)1431, (short)1434, (short)1437, (short)1435, (short)1438, (short)1439, (short)1443, (short)1446, (short)1447, (short)1450, (short)1455, (short)1456, (short)1465, (short)1474, (short)1482, (short)1483, (short)1484, (short)1485, (short)1486, (short)1491, (short)1487, (short)1492, (short)1493, (short)1494, (short)1495, (short)1502, (short)1503, (short)1511, (short)1519, (short)1522, (short)1526, (short)1521, (short)1530, (short)1539, (short)1541, (short)1542, (short)1545, (short)1546, (short)1547, (short)1549, (short)1550, (short)1551, (short)1552, (short)1554, (short)1569, (short)1570, (short)1571, (short)1572, (short)1573, (short)1575, (short)1577, (short)1578, (short)1595, (short)1582, (short)1597, (short)1598, (short)1600, (short)1606, (short)1601, (short)1610, (short)1602, (short)1603, (short)1622, (short)1625, (short)1629, (short)1630, (short)1638, (short)1646, (short)1647, (short)1648, (short)1653, (short)1649, (short)1654, (short)1655, (short)1656, (short)1658, (short)1666, (short)1659, (short)1675, (short)1677, (short)1678, (short)1682, (short)1684, (short)1686, (short)1693, (short)1694, (short)1703, (short)1704, (short)1709, (short)1710, (short)1712, (short)1714, (short)1713, (short)1715, (short)1719, (short)1721, (short)1722, (short)1737, (short)1738, (short)1739, (short)1741, (short)1742, (short)1747, (short)1748, (short)1759, (short)1760, (short)1765, (short)1766, (short)1768, (short)1772, (short)1775, (short)1776, (short)1777, (short)1784, (short)1785, (short)1793, (short)1794, (short)1809, (short)1796, (short)1800, (short)1803, (short)1804, (short)1812, (short)1819, (short)1821, (short)1822, (short)1824, (short)1825, (short)1828, (short)1830, (short)1831, (short)1837, (short)1840, (short)1847, (short)1848, (short)1849, (short)1855, (short)1853, (short)1857, (short)1858, (short)92, (short)1860, (short)1868, (short)1856, (short)1878, (short)1879, (short)1883, (short)1884, (short)1886, (short)1896, (short)1901, (short)1902, (short)1903, (short)1904, (short)1906, (short)1905, (short)1911, (short)1908, (short)2195, (short)63, (short)1914, (short)1907, (short)1913, (short)1923, (short)1933, (short)1934, (short)1936, (short)1951, (short)1953, (short)1956, (short)1957, (short)1958, (short)1960, (short)1961, (short)1962, (short)1963, (short)1964, (short)1968, (short)1979, (short)1984, (short)1985, (short)1987, (short)1988, (short)1989, (short)1990, (short)2000, (short)2006, (short)2007, (short)2008, (short)2009, (short)2012, (short)2013, (short)2015, (short)2017, (short)2018, (short)2019, (short)2034, (short)2028, (short)2036, (short)2038, (short)2043, (short)2040, (short)2045, (short)2049, (short)2061, (short)2062, (short)2066, (short)2068, (short)2069, (short)2071, (short)2073, (short)2074, (short)2077, (short)2078, (short)2090, (short)2096, (short)2098, (short)2097, (short)2101, (short)2102, (short)2195, (short)2161, (short)2168, (short)2174, (short)2177, (short)2178, (short)2181, (short)2183, (short)2187
514 };
515
516 static const short int yy_def[669] = 
517 {
518 (short)0, (short)660, (short)1, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)661, (short)660, (short)660, (short)660, (short)660, (short)662, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)663, (short)663, (short)660, (short)660, (short)660, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)660, (short)660, (short)660, (short)660, (short)660, (short)661, (short)660, (short)661, (short)660, (short)660, (short)660, (short)660, (short)662, (short)662, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)664, (short)24, (short)665, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)663, (short)660, (short)661, (short)662, (short)660, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)664, (short)666, (short)660, (short)660, (short)667, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)666, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)660, (short)660, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)668, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)660, (short)668, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)663, (short)0, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660
519 };
520
521 static const short int yy_nxt[2266] = 
522 {
523 (short)0, (short)4, (short)5, (short)6, (short)7, (short)8, (short)9, (short)10, (short)11, (short)12, (short)13, (short)14, (short)15, (short)16, (short)17, (short)18, (short)19, (short)20, (short)21, (short)22, (short)23, (short)24, (short)24, (short)24, (short)25, (short)26, (short)27, (short)28, (short)29, (short)30, (short)31, (short)31, (short)31, (short)31, (short)32, (short)31, (short)31, (short)33, (short)4, (short)34, (short)35, (short)36, (short)37, (short)38, (short)39, (short)40, (short)41, (short)42, (short)43, (short)31, (short)44, (short)31, (short)31, (short)45, (short)31, (short)46, (short)31, (short)47, (short)48, (short)49, (short)50, (short)51, (short)52, (short)53, (short)31, (short)31, (short)31, (short)54, (short)55, (short)56, (short)57, (short)60, (short)62, (short)63, (short)64, (short)69, (short)598, (short)74, (short)71, (short)75, (short)75, (short)75, (short)75, (short)94, (short)87, (short)76, (short)94, (short)70, (short)72, (short)73, (short)77, (short)65, (short)85, (short)92, (short)93, (short)149, (short)86, (short)96, (short)78, (short)88, (short)96, (short)89, (short)90, (short)61, (short)79, (short)598, (short)80, (short)80, (short)80, (short)80, (short)97, (short)94, (short)94, (short)60, (short)94, (short)98, (short)660, (short)81, (short)67, (short)94, (short)82, (short)82, (short)83, (short)165, (short)66, (short)96, (short)96, (short)94, (short)96, (short)96, (short)94, (short)104, (short)81, (short)96, (short)164, (short)105, (short)150, (short)106, (short)163, (short)82, (short)152, (short)96, (short)660, (short)100, (short)96, (short)61, (short)94, (short)82, (short)101, (short)94, (short)83, (short)79, (short)102, (short)84, (short)84, (short)84, (short)84, (short)94, (short)94, (short)107, (short)96, (short)103, (short)108, (short)96, (short)81, (short)129, (short)94, (short)82, (short)82, (short)109, (short)94, (short)96, (short)96, (short)110, (short)94, (short)132, (short)111, (short)99, (short)133, (short)81, (short)96, (short)112, (short)113, (short)91, (short)96, (short)114, (short)82, (short)68, (short)96, (short)117, (short)151, (short)118, (short)115, (short)123, (short)82, (short)116, (short)67, (short)94, (short)120, (short)94, (short)119, (short)121, (short)134, (short)124, (short)122, (short)58, (short)130, (short)125, (short)60, (short)94, (short)131, (short)96, (short)94, (short)96, (short)126, (short)127, (short)660, (short)67, (short)94, (short)128, (short)94, (short)94, (short)159, (short)96, (short)159, (short)94, (short)96, (short)160, (short)160, (short)160, (short)160, (short)660, (short)96, (short)135, (short)96, (short)96, (short)136, (short)137, (short)141, (short)96, (short)61, (short)660, (short)94, (short)660, (short)94, (short)94, (short)660, (short)138, (short)139, (short)145, (short)140, (short)660, (short)143, (short)147, (short)142, (short)146, (short)96, (short)144, (short)96, (short)96, (short)148, (short)75, (short)75, (short)75, (short)75, (short)155, (short)155, (short)155, (short)155, (short)94, (short)82, (short)82, (short)153, (short)154, (short)176, (short)154, (short)156, (short)157, (short)660, (short)157, (short)179, (short)94, (short)94, (short)96, (short)660, (short)660, (short)180, (short)153, (short)154, (short)82, (short)177, (short)156, (short)157, (short)183, (short)154, (short)96, (short)96, (short)82, (short)157, (short)79, (short)94, (short)80, (short)80, (short)80, (short)80, (short)660, (short)94, (short)94, (short)94, (short)94, (short)94, (short)94, (short)81, (short)660, (short)96, (short)158, (short)158, (short)660, (short)182, (short)178, (short)96, (short)96, (short)96, (short)96, (short)96, (short)96, (short)94, (short)81, (short)660, (short)660, (short)94, (short)181, (short)184, (short)660, (short)158, (short)660, (short)94, (short)94, (short)185, (short)660, (short)96, (short)94, (short)158, (short)94, (short)96, (short)660, (short)188, (short)191, (short)94, (short)189, (short)96, (short)96, (short)186, (short)192, (short)193, (short)96, (short)94, (short)96, (short)187, (short)190, (short)660, (short)660, (short)96, (short)660, (short)660, (short)660, (short)94, (short)660, (short)94, (short)660, (short)96, (short)660, (short)94, (short)660, (short)198, (short)166, (short)167, (short)168, (short)169, (short)170, (short)96, (short)194, (short)96, (short)171, (short)660, (short)195, (short)96, (short)199, (short)196, (short)94, (short)660, (short)172, (short)173, (short)174, (short)94, (short)175, (short)94, (short)94, (short)197, (short)94, (short)94, (short)94, (short)660, (short)96, (short)200, (short)94, (short)94, (short)660, (short)96, (short)94, (short)96, (short)96, (short)94, (short)96, (short)96, (short)96, (short)201, (short)94, (short)202, (short)96, (short)96, (short)94, (short)660, (short)96, (short)660, (short)94, (short)96, (short)660, (short)204, (short)660, (short)660, (short)96, (short)94, (short)660, (short)94, (short)96, (short)203, (short)205, (short)213, (short)96, (short)94, (short)211, (short)208, (short)209, (short)206, (short)207, (short)96, (short)212, (short)96, (short)221, (short)214, (short)660, (short)222, (short)210, (short)96, (short)218, (short)217, (short)215, (short)225, (short)219, (short)660, (short)94, (short)216, (short)223, (short)94, (short)224, (short)94, (short)94, (short)94, (short)94, (short)660, (short)94, (short)226, (short)660, (short)227, (short)96, (short)660, (short)220, (short)96, (short)660, (short)96, (short)96, (short)96, (short)96, (short)237, (short)96, (short)237, (short)228, (short)660, (short)238, (short)238, (short)238, (short)238, (short)241, (short)94, (short)241, (short)158, (short)158, (short)242, (short)242, (short)242, (short)242, (short)94, (short)94, (short)230, (short)660, (short)229, (short)233, (short)96, (short)236, (short)234, (short)660, (short)660, (short)231, (short)232, (short)158, (short)96, (short)96, (short)235, (short)155, (short)155, (short)155, (short)155, (short)158, (short)160, (short)160, (short)160, (short)160, (short)94, (short)94, (short)239, (short)240, (short)660, (short)240, (short)94, (short)160, (short)160, (short)160, (short)160, (short)244, (short)244, (short)94, (short)96, (short)96, (short)261, (short)239, (short)240, (short)243, (short)96, (short)243, (short)660, (short)94, (short)240, (short)250, (short)660, (short)96, (short)660, (short)254, (short)244, (short)94, (short)94, (short)660, (short)243, (short)660, (short)251, (short)96, (short)244, (short)94, (short)243, (short)94, (short)253, (short)247, (short)660, (short)96, (short)96, (short)252, (short)94, (short)248, (short)249, (short)94, (short)94, (short)96, (short)94, (short)96, (short)94, (short)660, (short)255, (short)256, (short)94, (short)94, (short)96, (short)94, (short)94, (short)96, (short)96, (short)660, (short)96, (short)660, (short)96, (short)257, (short)660, (short)660, (short)96, (short)96, (short)94, (short)96, (short)96, (short)94, (short)94, (short)258, (short)264, (short)263, (short)262, (short)260, (short)266, (short)259, (short)94, (short)94, (short)96, (short)94, (short)267, (short)96, (short)96, (short)94, (short)272, (short)94, (short)265, (short)660, (short)94, (short)94, (short)96, (short)96, (short)94, (short)96, (short)660, (short)660, (short)268, (short)96, (short)269, (short)96, (short)270, (short)271, (short)96, (short)96, (short)273, (short)660, (short)96, (short)94, (short)275, (short)276, (short)660, (short)94, (short)274, (short)94, (short)660, (short)278, (short)94, (short)277, (short)281, (short)279, (short)94, (short)96, (short)94, (short)280, (short)282, (short)96, (short)94, (short)96, (short)284, (short)660, (short)96, (short)660, (short)94, (short)283, (short)96, (short)94, (short)96, (short)94, (short)94, (short)291, (short)96, (short)94, (short)94, (short)285, (short)94, (short)286, (short)96, (short)94, (short)660, (short)96, (short)94, (short)96, (short)96, (short)94, (short)295, (short)96, (short)96, (short)660, (short)96, (short)94, (short)660, (short)96, (short)287, (short)94, (short)96, (short)94, (short)288, (short)96, (short)94, (short)94, (short)289, (short)292, (short)290, (short)96, (short)294, (short)293, (short)660, (short)96, (short)94, (short)96, (short)94, (short)94, (short)96, (short)96, (short)94, (short)660, (short)300, (short)94, (short)94, (short)297, (short)298, (short)94, (short)96, (short)296, (short)96, (short)96, (short)94, (short)94, (short)96, (short)299, (short)660, (short)96, (short)96, (short)94, (short)301, (short)96, (short)94, (short)660, (short)94, (short)94, (short)96, (short)96, (short)306, (short)302, (short)303, (short)660, (short)304, (short)96, (short)305, (short)94, (short)96, (short)309, (short)96, (short)96, (short)660, (short)94, (short)660, (short)94, (short)307, (short)244, (short)244, (short)94, (short)312, (short)96, (short)660, (short)308, (short)94, (short)660, (short)310, (short)96, (short)311, (short)96, (short)660, (short)94, (short)317, (short)96, (short)315, (short)313, (short)244, (short)314, (short)96, (short)318, (short)238, (short)238, (short)238, (short)238, (short)244, (short)96, (short)316, (short)319, (short)238, (short)238, (short)238, (short)238, (short)242, (short)242, (short)242, (short)242, (short)660, (short)660, (short)320, (short)321, (short)154, (short)321, (short)154, (short)94, (short)322, (short)322, (short)322, (short)322, (short)242, (short)242, (short)242, (short)242, (short)94, (short)94, (short)325, (short)154, (short)94, (short)96, (short)94, (short)94, (short)157, (short)154, (short)157, (short)94, (short)94, (short)94, (short)96, (short)96, (short)94, (short)660, (short)96, (short)94, (short)96, (short)96, (short)94, (short)157, (short)94, (short)96, (short)96, (short)96, (short)94, (short)157, (short)96, (short)323, (short)94, (short)96, (short)660, (short)94, (short)96, (short)660, (short)96, (short)94, (short)327, (short)326, (short)96, (short)660, (short)324, (short)329, (short)96, (short)94, (short)335, (short)96, (short)660, (short)328, (short)660, (short)96, (short)94, (short)331, (short)94, (short)330, (short)660, (short)94, (short)334, (short)96, (short)332, (short)94, (short)338, (short)333, (short)336, (short)337, (short)96, (short)340, (short)96, (short)660, (short)339, (short)96, (short)94, (short)660, (short)94, (short)96, (short)94, (short)94, (short)94, (short)94, (short)94, (short)94, (short)94, (short)341, (short)94, (short)94, (short)96, (short)342, (short)96, (short)94, (short)96, (short)96, (short)96, (short)96, (short)96, (short)96, (short)96, (short)660, (short)96, (short)96, (short)660, (short)94, (short)94, (short)96, (short)94, (short)94, (short)343, (short)346, (short)94, (short)349, (short)94, (short)344, (short)345, (short)347, (short)348, (short)96, (short)96, (short)660, (short)96, (short)96, (short)94, (short)94, (short)96, (short)94, (short)96, (short)351, (short)94, (short)94, (short)354, (short)350, (short)94, (short)352, (short)355, (short)94, (short)96, (short)96, (short)353, (short)96, (short)362, (short)94, (short)96, (short)96, (short)660, (short)660, (short)96, (short)94, (short)94, (short)96, (short)94, (short)94, (short)356, (short)94, (short)660, (short)96, (short)94, (short)358, (short)360, (short)357, (short)359, (short)96, (short)96, (short)94, (short)96, (short)96, (short)94, (short)96, (short)361, (short)660, (short)96, (short)94, (short)94, (short)365, (short)660, (short)363, (short)94, (short)96, (short)94, (short)94, (short)96, (short)364, (short)94, (short)366, (short)94, (short)96, (short)96, (short)660, (short)367, (short)94, (short)96, (short)94, (short)96, (short)96, (short)660, (short)660, (short)96, (short)660, (short)96, (short)368, (short)94, (short)370, (short)372, (short)96, (short)369, (short)96, (short)371, (short)94, (short)375, (short)373, (short)660, (short)374, (short)377, (short)94, (short)96, (short)94, (short)379, (short)94, (short)380, (short)94, (short)94, (short)96, (short)378, (short)660, (short)381, (short)376, (short)94, (short)96, (short)94, (short)96, (short)94, (short)96, (short)94, (short)96, (short)96, (short)322, (short)322, (short)322, (short)322, (short)94, (short)96, (short)660, (short)96, (short)94, (short)96, (short)382, (short)96, (short)660, (short)660, (short)660, (short)660, (short)383, (short)660, (short)96, (short)94, (short)387, (short)660, (short)96, (short)384, (short)386, (short)322, (short)322, (short)322, (short)322, (short)388, (short)94, (short)392, (short)385, (short)96, (short)94, (short)389, (short)94, (short)240, (short)391, (short)240, (short)94, (short)390, (short)94, (short)660, (short)96, (short)94, (short)94, (short)94, (short)96, (short)397, (short)96, (short)94, (short)240, (short)94, (short)96, (short)94, (short)96, (short)393, (short)240, (short)96, (short)96, (short)96, (short)394, (short)94, (short)94, (short)96, (short)395, (short)96, (short)660, (short)96, (short)94, (short)94, (short)94, (short)660, (short)396, (short)94, (short)660, (short)96, (short)96, (short)400, (short)94, (short)660, (short)401, (short)402, (short)96, (short)96, (short)96, (short)399, (short)406, (short)96, (short)398, (short)94, (short)403, (short)660, (short)96, (short)405, (short)94, (short)94, (short)404, (short)94, (short)94, (short)407, (short)94, (short)660, (short)94, (short)96, (short)94, (short)409, (short)94, (short)660, (short)96, (short)96, (short)94, (short)96, (short)96, (short)94, (short)96, (short)408, (short)96, (short)94, (short)96, (short)660, (short)96, (short)410, (short)94, (short)660, (short)96, (short)411, (short)660, (short)96, (short)660, (short)94, (short)94, (short)96, (short)94, (short)414, (short)415, (short)660, (short)96, (short)412, (short)413, (short)94, (short)418, (short)94, (short)420, (short)96, (short)96, (short)660, (short)96, (short)416, (short)94, (short)417, (short)94, (short)419, (short)94, (short)96, (short)660, (short)96, (short)94, (short)94, (short)94, (short)422, (short)94, (short)94, (short)96, (short)94, (short)96, (short)423, (short)96, (short)421, (short)429, (short)94, (short)96, (short)96, (short)96, (short)94, (short)96, (short)96, (short)94, (short)96, (short)94, (short)94, (short)94, (short)660, (short)660, (short)96, (short)427, (short)94, (short)424, (short)96, (short)660, (short)94, (short)96, (short)425, (short)96, (short)96, (short)96, (short)431, (short)426, (short)433, (short)432, (short)96, (short)94, (short)430, (short)428, (short)96, (short)660, (short)435, (short)94, (short)660, (short)94, (short)660, (short)437, (short)94, (short)434, (short)94, (short)96, (short)94, (short)440, (short)94, (short)438, (short)94, (short)96, (short)441, (short)96, (short)439, (short)660, (short)96, (short)436, (short)96, (short)94, (short)96, (short)94, (short)96, (short)94, (short)96, (short)660, (short)94, (short)660, (short)660, (short)443, (short)94, (short)94, (short)94, (short)96, (short)445, (short)96, (short)442, (short)96, (short)94, (short)444, (short)96, (short)447, (short)455, (short)94, (short)96, (short)96, (short)96, (short)94, (short)448, (short)94, (short)660, (short)446, (short)96, (short)94, (short)94, (short)660, (short)94, (short)96, (short)94, (short)660, (short)94, (short)96, (short)660, (short)96, (short)450, (short)660, (short)94, (short)96, (short)96, (short)449, (short)96, (short)94, (short)96, (short)451, (short)96, (short)452, (short)453, (short)454, (short)94, (short)457, (short)96, (short)458, (short)94, (short)94, (short)94, (short)96, (short)456, (short)660, (short)94, (short)660, (short)462, (short)660, (short)96, (short)459, (short)660, (short)94, (short)96, (short)96, (short)96, (short)94, (short)94, (short)463, (short)96, (short)460, (short)660, (short)461, (short)465, (short)464, (short)466, (short)96, (short)94, (short)469, (short)94, (short)96, (short)96, (short)94, (short)467, (short)471, (short)468, (short)94, (short)473, (short)94, (short)94, (short)660, (short)96, (short)94, (short)96, (short)470, (short)94, (short)96, (short)94, (short)94, (short)660, (short)96, (short)94, (short)96, (short)96, (short)472, (short)474, (short)96, (short)94, (short)94, (short)96, (short)94, (short)96, (short)96, (short)475, (short)94, (short)96, (short)94, (short)94, (short)94, (short)660, (short)94, (short)96, (short)96, (short)476, (short)96, (short)94, (short)94, (short)478, (short)96, (short)660, (short)96, (short)96, (short)96, (short)479, (short)96, (short)94, (short)477, (short)94, (short)94, (short)96, (short)96, (short)94, (short)94, (short)481, (short)94, (short)94, (short)94, (short)660, (short)480, (short)96, (short)94, (short)96, (short)96, (short)94, (short)94, (short)96, (short)96, (short)94, (short)96, (short)96, (short)96, (short)482, (short)94, (short)94, (short)96, (short)660, (short)660, (short)96, (short)96, (short)485, (short)483, (short)96, (short)94, (short)660, (short)660, (short)484, (short)96, (short)96, (short)487, (short)491, (short)488, (short)94, (short)660, (short)660, (short)486, (short)489, (short)96, (short)493, (short)490, (short)94, (short)94, (short)94, (short)94, (short)94, (short)94, (short)96, (short)492, (short)494, (short)94, (short)94, (short)94, (short)94, (short)94, (short)96, (short)96, (short)96, (short)96, (short)96, (short)96, (short)94, (short)94, (short)660, (short)96, (short)96, (short)96, (short)96, (short)96, (short)660, (short)94, (short)495, (short)660, (short)660, (short)660, (short)96, (short)96, (short)497, (short)94, (short)499, (short)94, (short)94, (short)496, (short)498, (short)96, (short)94, (short)502, (short)501, (short)500, (short)94, (short)505, (short)503, (short)96, (short)506, (short)96, (short)96, (short)504, (short)507, (short)94, (short)96, (short)94, (short)94, (short)508, (short)96, (short)94, (short)94, (short)94, (short)660, (short)94, (short)94, (short)94, (short)94, (short)96, (short)94, (short)96, (short)96, (short)509, (short)511, (short)96, (short)96, (short)96, (short)512, (short)96, (short)96, (short)96, (short)96, (short)510, (short)96, (short)94, (short)94, (short)94, (short)94, (short)94, (short)660, (short)94, (short)660, (short)94, (short)94, (short)660, (short)515, (short)516, (short)94, (short)96, (short)96, (short)96, (short)96, (short)96, (short)519, (short)96, (short)513, (short)96, (short)96, (short)514, (short)660, (short)94, (short)96, (short)94, (short)94, (short)518, (short)94, (short)94, (short)94, (short)94, (short)522, (short)517, (short)94, (short)660, (short)523, (short)96, (short)94, (short)96, (short)96, (short)524, (short)96, (short)96, (short)96, (short)96, (short)520, (short)521, (short)96, (short)525, (short)94, (short)660, (short)96, (short)94, (short)660, (short)660, (short)660, (short)94, (short)94, (short)660, (short)526, (short)527, (short)529, (short)532, (short)96, (short)531, (short)94, (short)96, (short)530, (short)533, (short)528, (short)96, (short)96, (short)534, (short)94, (short)94, (short)94, (short)94, (short)660, (short)660, (short)96, (short)94, (short)94, (short)94, (short)94, (short)660, (short)94, (short)94, (short)96, (short)96, (short)96, (short)96, (short)537, (short)535, (short)94, (short)96, (short)96, (short)96, (short)96, (short)536, (short)96, (short)96, (short)660, (short)94, (short)660, (short)94, (short)94, (short)542, (short)96, (short)660, (short)94, (short)539, (short)94, (short)544, (short)94, (short)660, (short)538, (short)96, (short)549, (short)96, (short)96, (short)94, (short)94, (short)540, (short)96, (short)547, (short)96, (short)543, (short)96, (short)541, (short)548, (short)94, (short)94, (short)545, (short)546, (short)96, (short)96, (short)94, (short)94, (short)660, (short)94, (short)94, (short)94, (short)94, (short)550, (short)96, (short)96, (short)94, (short)660, (short)94, (short)94, (short)96, (short)96, (short)552, (short)96, (short)96, (short)96, (short)96, (short)553, (short)551, (short)660, (short)96, (short)554, (short)96, (short)96, (short)94, (short)94, (short)94, (short)556, (short)94, (short)94, (short)660, (short)557, (short)559, (short)561, (short)94, (short)94, (short)660, (short)562, (short)96, (short)96, (short)96, (short)555, (short)96, (short)96, (short)563, (short)558, (short)94, (short)94, (short)96, (short)96, (short)560, (short)660, (short)94, (short)94, (short)564, (short)94, (short)660, (short)566, (short)567, (short)94, (short)96, (short)96, (short)94, (short)94, (short)94, (short)569, (short)96, (short)96, (short)568, (short)96, (short)570, (short)94, (short)94, (short)96, (short)565, (short)660, (short)96, (short)96, (short)96, (short)660, (short)94, (short)94, (short)571, (short)94, (short)660, (short)96, (short)96, (short)94, (short)660, (short)573, (short)94, (short)94, (short)572, (short)574, (short)96, (short)96, (short)94, (short)96, (short)580, (short)94, (short)576, (short)96, (short)575, (short)577, (short)96, (short)96, (short)94, (short)660, (short)94, (short)94, (short)96, (short)94, (short)94, (short)96, (short)660, (short)94, (short)578, (short)94, (short)94, (short)660, (short)96, (short)582, (short)96, (short)96, (short)94, (short)96, (short)96, (short)94, (short)581, (short)96, (short)583, (short)96, (short)96, (short)579, (short)94, (short)94, (short)94, (short)584, (short)96, (short)585, (short)94, (short)96, (short)94, (short)94, (short)94, (short)94, (short)660, (short)94, (short)96, (short)96, (short)96, (short)660, (short)588, (short)587, (short)96, (short)94, (short)96, (short)96, (short)96, (short)96, (short)590, (short)96, (short)660, (short)586, (short)660, (short)94, (short)94, (short)593, (short)660, (short)96, (short)94, (short)94, (short)589, (short)94, (short)591, (short)596, (short)595, (short)597, (short)600, (short)96, (short)96, (short)594, (short)592, (short)94, (short)96, (short)96, (short)601, (short)96, (short)94, (short)94, (short)94, (short)94, (short)94, (short)94, (short)94, (short)94, (short)602, (short)96, (short)94, (short)660, (short)94, (short)94, (short)96, (short)96, (short)96, (short)96, (short)96, (short)96, (short)96, (short)96, (short)94, (short)660, (short)96, (short)603, (short)96, (short)96, (short)604, (short)660, (short)660, (short)660, (short)94, (short)94, (short)660, (short)94, (short)96, (short)607, (short)614, (short)660, (short)660, (short)612, (short)605, (short)610, (short)615, (short)613, (short)96, (short)96, (short)606, (short)96, (short)94, (short)608, (short)94, (short)609, (short)611, (short)94, (short)94, (short)94, (short)660, (short)94, (short)94, (short)94, (short)94, (short)94, (short)96, (short)618, (short)96, (short)94, (short)617, (short)96, (short)96, (short)96, (short)616, (short)96, (short)96, (short)96, (short)96, (short)96, (short)94, (short)660, (short)660, (short)96, (short)660, (short)94, (short)94, (short)619, (short)94, (short)94, (short)94, (short)94, (short)660, (short)621, (short)96, (short)623, (short)625, (short)620, (short)622, (short)96, (short)96, (short)94, (short)96, (short)96, (short)96, (short)96, (short)624, (short)94, (short)94, (short)94, (short)94, (short)660, (short)660, (short)94, (short)94, (short)96, (short)94, (short)626, (short)94, (short)94, (short)94, (short)96, (short)96, (short)96, (short)96, (short)627, (short)629, (short)96, (short)96, (short)94, (short)96, (short)632, (short)96, (short)96, (short)96, (short)94, (short)630, (short)94, (short)631, (short)94, (short)628, (short)94, (short)660, (short)96, (short)94, (short)660, (short)94, (short)660, (short)633, (short)96, (short)94, (short)96, (short)637, (short)96, (short)660, (short)96, (short)635, (short)634, (short)96, (short)640, (short)96, (short)636, (short)94, (short)94, (short)96, (short)638, (short)639, (short)94, (short)641, (short)94, (short)94, (short)642, (short)94, (short)660, (short)94, (short)94, (short)96, (short)96, (short)94, (short)94, (short)647, (short)96, (short)660, (short)96, (short)96, (short)644, (short)96, (short)643, (short)96, (short)96, (short)645, (short)94, (short)96, (short)96, (short)660, (short)660, (short)646, (short)94, (short)94, (short)94, (short)660, (short)650, (short)94, (short)94, (short)660, (short)96, (short)651, (short)660, (short)649, (short)648, (short)660, (short)96, (short)96, (short)96, (short)654, (short)660, (short)96, (short)96, (short)660, (short)660, (short)660, (short)660, (short)660, (short)653, (short)652, (short)660, (short)656, (short)660, (short)660, (short)655, (short)658, (short)660, (short)660, (short)659, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)657, (short)59, (short)59, (short)59, (short)59, (short)59, (short)59, (short)59, (short)66, (short)66, (short)660, (short)66, (short)66, (short)66, (short)66, (short)95, (short)660, (short)660, (short)95, (short)95, (short)95, (short)161, (short)161, (short)162, (short)162, (short)245, (short)245, (short)245, (short)246, (short)246, (short)599, (short)599, (short)599, (short)599, (short)3, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660
524 };
525
526 static const short int yy_chk[2266] = 
527 {
528 (short)0, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)1, (short)9, (short)12, (short)12, (short)13, (short)18, (short)599, (short)21, (short)20, (short)21, (short)21, (short)21, (short)21, (short)31, (short)27, (short)22, (short)37, (short)18, (short)20, (short)20, (short)22, (short)13, (short)25, (short)29, (short)29, (short)55, (short)25, (short)31, (short)22, (short)27, (short)37, (short)27, (short)27, (short)9, (short)23, (short)580, (short)23, (short)23, (short)23, (short)23, (short)32, (short)38, (short)36, (short)59, (short)32, (short)32, (short)67, (short)23, (short)98, (short)45, (short)23, (short)23, (short)23, (short)96, (short)67, (short)38, (short)36, (short)47, (short)32, (short)94, (short)39, (short)37, (short)23, (short)45, (short)93, (short)37, (short)55, (short)37, (short)89, (short)23, (short)74, (short)47, (short)61, (short)36, (short)39, (short)59, (short)41, (short)23, (short)36, (short)40, (short)23, (short)24, (short)36, (short)24, (short)24, (short)24, (short)24, (short)43, (short)42, (short)38, (short)41, (short)36, (short)39, (short)40, (short)24, (short)45, (short)48, (short)24, (short)24, (short)39, (short)44, (short)43, (short)42, (short)39, (short)46, (short)47, (short)39, (short)35, (short)47, (short)24, (short)48, (short)40, (short)40, (short)28, (short)44, (short)40, (short)24, (short)17, (short)46, (short)41, (short)66, (short)41, (short)40, (short)43, (short)24, (short)40, (short)14, (short)49, (short)42, (short)50, (short)41, (short)42, (short)48, (short)43, (short)42, (short)8, (short)46, (short)44, (short)97, (short)52, (short)46, (short)49, (short)51, (short)50, (short)44, (short)44, (short)3, (short)66, (short)95, (short)44, (short)101, (short)53, (short)81, (short)52, (short)81, (short)104, (short)51, (short)81, (short)81, (short)81, (short)81, (short)0, (short)95, (short)49, (short)101, (short)53, (short)49, (short)49, (short)50, (short)104, (short)97, (short)0, (short)105, (short)0, (short)108, (short)102, (short)0, (short)49, (short)49, (short)52, (short)49, (short)0, (short)51, (short)53, (short)50, (short)52, (short)105, (short)51, (short)108, (short)102, (short)53, (short)75, (short)75, (short)75, (short)75, (short)79, (short)79, (short)79, (short)79, (short)103, (short)82, (short)82, (short)75, (short)75, (short)101, (short)75, (short)79, (short)79, (short)0, (short)79, (short)104, (short)106, (short)107, (short)103, (short)0, (short)0, (short)105, (short)75, (short)75, (short)82, (short)102, (short)79, (short)79, (short)108, (short)75, (short)106, (short)107, (short)82, (short)79, (short)80, (short)109, (short)80, (short)80, (short)80, (short)80, (short)0, (short)110, (short)111, (short)112, (short)113, (short)114, (short)115, (short)80, (short)0, (short)109, (short)80, (short)80, (short)0, (short)107, (short)103, (short)110, (short)111, (short)112, (short)113, (short)114, (short)115, (short)120, (short)80, (short)0, (short)0, (short)116, (short)106, (short)109, (short)0, (short)80, (short)0, (short)117, (short)118, (short)110, (short)0, (short)120, (short)121, (short)80, (short)100, (short)116, (short)0, (short)113, (short)114, (short)119, (short)113, (short)117, (short)118, (short)111, (short)114, (short)115, (short)121, (short)122, (short)100, (short)112, (short)113, (short)0, (short)0, (short)119, (short)0, (short)0, (short)0, (short)123, (short)0, (short)124, (short)0, (short)122, (short)0, (short)125, (short)0, (short)120, (short)100, (short)100, (short)100, (short)100, (short)100, (short)123, (short)116, (short)124, (short)100, (short)0, (short)117, (short)125, (short)121, (short)118, (short)126, (short)0, (short)100, (short)100, (short)100, (short)127, (short)100, (short)128, (short)129, (short)119, (short)130, (short)131, (short)132, (short)0, (short)126, (short)122, (short)133, (short)135, (short)0, (short)127, (short)136, (short)128, (short)129, (short)134, (short)130, (short)131, (short)132, (short)123, (short)138, (short)124, (short)133, (short)135, (short)137, (short)0, (short)136, (short)0, (short)139, (short)134, (short)0, (short)127, (short)0, (short)0, (short)138, (short)140, (short)0, (short)141, (short)137, (short)126, (short)127, (short)133, (short)139, (short)142, (short)132, (short)129, (short)130, (short)127, (short)128, (short)140, (short)132, (short)141, (short)138, (short)134, (short)0, (short)138, (short)131, (short)142, (short)136, (short)135, (short)134, (short)139, (short)137, (short)0, (short)143, (short)134, (short)138, (short)144, (short)138, (short)145, (short)146, (short)147, (short)148, (short)0, (short)180, (short)140, (short)0, (short)141, (short)143, (short)0, (short)137, (short)144, (short)0, (short)145, (short)146, (short)147, (short)148, (short)153, (short)180, (short)153, (short)142, (short)0, (short)153, (short)153, (short)153, (short)153, (short)156, (short)176, (short)156, (short)158, (short)158, (short)156, (short)156, (short)156, (short)156, (short)167, (short)170, (short)144, (short)0, (short)143, (short)146, (short)176, (short)148, (short)146, (short)0, (short)0, (short)144, (short)145, (short)158, (short)167, (short)170, (short)147, (short)155, (short)155, (short)155, (short)155, (short)158, (short)159, (short)159, (short)159, (short)159, (short)166, (short)168, (short)155, (short)155, (short)0, (short)155, (short)169, (short)160, (short)160, (short)160, (short)160, (short)161, (short)161, (short)171, (short)166, (short)168, (short)176, (short)155, (short)155, (short)160, (short)169, (short)160, (short)0, (short)172, (short)155, (short)167, (short)0, (short)171, (short)0, (short)170, (short)161, (short)173, (short)174, (short)0, (short)160, (short)0, (short)168, (short)172, (short)161, (short)175, (short)160, (short)177, (short)169, (short)166, (short)0, (short)173, (short)174, (short)168, (short)178, (short)166, (short)166, (short)179, (short)181, (short)175, (short)182, (short)177, (short)183, (short)0, (short)171, (short)172, (short)184, (short)185, (short)178, (short)186, (short)187, (short)179, (short)181, (short)0, (short)182, (short)0, (short)183, (short)173, (short)0, (short)0, (short)184, (short)185, (short)188, (short)186, (short)187, (short)189, (short)200, (short)173, (short)179, (short)178, (short)177, (short)175, (short)182, (short)174, (short)190, (short)191, (short)188, (short)192, (short)183, (short)189, (short)200, (short)193, (short)187, (short)194, (short)181, (short)0, (short)195, (short)196, (short)190, (short)191, (short)197, (short)192, (short)0, (short)0, (short)184, (short)193, (short)185, (short)194, (short)186, (short)186, (short)195, (short)196, (short)188, (short)0, (short)197, (short)198, (short)190, (short)191, (short)0, (short)201, (short)189, (short)199, (short)0, (short)192, (short)202, (short)191, (short)194, (short)193, (short)203, (short)198, (short)204, (short)193, (short)195, (short)201, (short)206, (short)199, (short)197, (short)0, (short)202, (short)0, (short)205, (short)196, (short)203, (short)207, (short)204, (short)208, (short)209, (short)206, (short)206, (short)211, (short)212, (short)198, (short)210, (short)199, (short)205, (short)213, (short)0, (short)207, (short)215, (short)208, (short)209, (short)216, (short)210, (short)211, (short)212, (short)0, (short)210, (short)214, (short)0, (short)213, (short)202, (short)217, (short)215, (short)218, (short)203, (short)216, (short)221, (short)219, (short)204, (short)207, (short)205, (short)214, (short)209, (short)208, (short)0, (short)217, (short)222, (short)218, (short)220, (short)223, (short)221, (short)219, (short)224, (short)0, (short)215, (short)225, (short)226, (short)212, (short)213, (short)227, (short)222, (short)211, (short)220, (short)223, (short)228, (short)229, (short)224, (short)214, (short)0, (short)225, (short)226, (short)230, (short)216, (short)227, (short)231, (short)0, (short)232, (short)233, (short)228, (short)229, (short)222, (short)218, (short)219, (short)0, (short)220, (short)230, (short)221, (short)234, (short)231, (short)225, (short)232, (short)233, (short)0, (short)235, (short)0, (short)236, (short)223, (short)244, (short)244, (short)246, (short)228, (short)234, (short)0, (short)224, (short)249, (short)0, (short)226, (short)235, (short)227, (short)236, (short)0, (short)265, (short)233, (short)246, (short)231, (short)229, (short)244, (short)230, (short)249, (short)234, (short)237, (short)237, (short)237, (short)237, (short)244, (short)265, (short)232, (short)235, (short)238, (short)238, (short)238, (short)238, (short)241, (short)241, (short)241, (short)241, (short)0, (short)0, (short)236, (short)239, (short)238, (short)239, (short)238, (short)247, (short)239, (short)239, (short)239, (short)239, (short)242, (short)242, (short)242, (short)242, (short)248, (short)250, (short)249, (short)238, (short)251, (short)247, (short)252, (short)254, (short)242, (short)238, (short)242, (short)253, (short)255, (short)258, (short)248, (short)250, (short)256, (short)0, (short)251, (short)259, (short)252, (short)254, (short)257, (short)242, (short)260, (short)253, (short)255, (short)258, (short)261, (short)242, (short)256, (short)247, (short)262, (short)259, (short)0, (short)263, (short)257, (short)0, (short)260, (short)264, (short)251, (short)250, (short)261, (short)0, (short)248, (short)253, (short)262, (short)266, (short)258, (short)263, (short)0, (short)252, (short)0, (short)264, (short)267, (short)255, (short)268, (short)254, (short)0, (short)269, (short)257, (short)266, (short)255, (short)270, (short)261, (short)256, (short)259, (short)260, (short)267, (short)263, (short)268, (short)0, (short)262, (short)269, (short)271, (short)0, (short)272, (short)270, (short)275, (short)273, (short)276, (short)274, (short)277, (short)278, (short)279, (short)264, (short)280, (short)282, (short)271, (short)266, (short)272, (short)281, (short)275, (short)273, (short)276, (short)274, (short)277, (short)278, (short)279, (short)0, (short)280, (short)282, (short)0, (short)283, (short)284, (short)281, (short)285, (short)286, (short)269, (short)272, (short)287, (short)275, (short)288, (short)270, (short)271, (short)273, (short)274, (short)283, (short)284, (short)0, (short)285, (short)286, (short)289, (short)290, (short)287, (short)292, (short)288, (short)277, (short)291, (short)293, (short)280, (short)276, (short)294, (short)278, (short)281, (short)295, (short)289, (short)290, (short)279, (short)292, (short)291, (short)296, (short)291, (short)293, (short)0, (short)0, (short)294, (short)297, (short)298, (short)295, (short)299, (short)300, (short)284, (short)301, (short)0, (short)296, (short)302, (short)286, (short)289, (short)285, (short)288, (short)297, (short)298, (short)304, (short)299, (short)300, (short)303, (short)301, (short)290, (short)0, (short)302, (short)305, (short)307, (short)296, (short)0, (short)292, (short)306, (short)304, (short)308, (short)309, (short)303, (short)294, (short)310, (short)297, (short)311, (short)305, (short)307, (short)0, (short)298, (short)312, (short)306, (short)313, (short)308, (short)309, (short)0, (short)0, (short)310, (short)0, (short)311, (short)299, (short)314, (short)301, (short)303, (short)312, (short)300, (short)313, (short)302, (short)316, (short)306, (short)304, (short)0, (short)305, (short)308, (short)315, (short)314, (short)317, (short)310, (short)318, (short)311, (short)320, (short)319, (short)316, (short)309, (short)0, (short)312, (short)307, (short)323, (short)315, (short)325, (short)317, (short)326, (short)318, (short)327, (short)320, (short)319, (short)321, (short)321, (short)321, (short)321, (short)324, (short)323, (short)0, (short)325, (short)328, (short)326, (short)314, (short)327, (short)0, (short)0, (short)0, (short)0, (short)315, (short)0, (short)324, (short)329, (short)320, (short)0, (short)328, (short)316, (short)319, (short)322, (short)322, (short)322, (short)322, (short)323, (short)330, (short)327, (short)318, (short)329, (short)331, (short)324, (short)332, (short)322, (short)326, (short)322, (short)333, (short)325, (short)334, (short)0, (short)330, (short)335, (short)336, (short)338, (short)331, (short)332, (short)332, (short)337, (short)322, (short)339, (short)333, (short)341, (short)334, (short)328, (short)322, (short)335, (short)336, (short)338, (short)329, (short)340, (short)342, (short)337, (short)330, (short)339, (short)0, (short)341, (short)343, (short)344, (short)345, (short)0, (short)331, (short)346, (short)0, (short)340, (short)342, (short)335, (short)347, (short)0, (short)336, (short)337, (short)343, (short)344, (short)345, (short)334, (short)341, (short)346, (short)333, (short)348, (short)338, (short)0, (short)347, (short)340, (short)349, (short)350, (short)339, (short)351, (short)352, (short)343, (short)353, (short)0, (short)354, (short)348, (short)355, (short)346, (short)356, (short)0, (short)349, (short)350, (short)357, (short)351, (short)352, (short)358, (short)353, (short)345, (short)354, (short)359, (short)355, (short)0, (short)356, (short)347, (short)360, (short)0, (short)357, (short)348, (short)0, (short)358, (short)0, (short)361, (short)362, (short)359, (short)363, (short)351, (short)352, (short)0, (short)360, (short)349, (short)350, (short)364, (short)355, (short)365, (short)357, (short)361, (short)362, (short)0, (short)363, (short)353, (short)366, (short)354, (short)367, (short)356, (short)368, (short)364, (short)0, (short)365, (short)370, (short)371, (short)369, (short)360, (short)372, (short)373, (short)366, (short)374, (short)367, (short)361, (short)368, (short)359, (short)369, (short)375, (short)370, (short)371, (short)369, (short)376, (short)372, (short)373, (short)377, (short)374, (short)378, (short)379, (short)380, (short)0, (short)0, (short)375, (short)367, (short)381, (short)364, (short)376, (short)0, (short)382, (short)377, (short)365, (short)378, (short)379, (short)380, (short)372, (short)366, (short)374, (short)373, (short)381, (short)383, (short)370, (short)368, (short)382, (short)0, (short)376, (short)384, (short)0, (short)385, (short)0, (short)378, (short)386, (short)375, (short)387, (short)383, (short)388, (short)381, (short)390, (short)379, (short)389, (short)384, (short)381, (short)385, (short)380, (short)0, (short)386, (short)377, (short)387, (short)391, (short)388, (short)392, (short)390, (short)393, (short)389, (short)0, (short)394, (short)0, (short)0, (short)384, (short)397, (short)395, (short)396, (short)391, (short)386, (short)392, (short)383, (short)393, (short)398, (short)385, (short)394, (short)389, (short)397, (short)399, (short)397, (short)395, (short)396, (short)401, (short)390, (short)400, (short)0, (short)388, (short)398, (short)402, (short)404, (short)0, (short)403, (short)399, (short)405, (short)0, (short)408, (short)401, (short)0, (short)400, (short)392, (short)0, (short)406, (short)402, (short)404, (short)391, (short)403, (short)407, (short)405, (short)393, (short)408, (short)394, (short)395, (short)396, (short)409, (short)399, (short)406, (short)400, (short)410, (short)411, (short)412, (short)407, (short)398, (short)0, (short)413, (short)0, (short)404, (short)0, (short)409, (short)401, (short)0, (short)414, (short)410, (short)411, (short)412, (short)415, (short)416, (short)405, (short)413, (short)402, (short)0, (short)403, (short)407, (short)406, (short)407, (short)414, (short)417, (short)408, (short)418, (short)415, (short)416, (short)419, (short)407, (short)410, (short)407, (short)420, (short)412, (short)421, (short)422, (short)0, (short)417, (short)423, (short)418, (short)409, (short)424, (short)419, (short)425, (short)426, (short)0, (short)420, (short)427, (short)421, (short)422, (short)411, (short)413, (short)423, (short)428, (short)429, (short)424, (short)430, (short)425, (short)426, (short)416, (short)431, (short)427, (short)432, (short)433, (short)434, (short)0, (short)435, (short)428, (short)429, (short)417, (short)430, (short)436, (short)437, (short)424, (short)431, (short)0, (short)432, (short)433, (short)434, (short)425, (short)435, (short)438, (short)420, (short)439, (short)440, (short)436, (short)437, (short)441, (short)443, (short)428, (short)442, (short)444, (short)445, (short)0, (short)426, (short)438, (short)446, (short)439, (short)440, (short)447, (short)448, (short)441, (short)443, (short)449, (short)442, (short)444, (short)445, (short)434, (short)450, (short)451, (short)446, (short)0, (short)0, (short)447, (short)448, (short)439, (short)435, (short)449, (short)452, (short)0, (short)0, (short)437, (short)450, (short)451, (short)441, (short)445, (short)442, (short)453, (short)0, (short)0, (short)440, (short)443, (short)452, (short)448, (short)444, (short)454, (short)455, (short)456, (short)457, (short)458, (short)460, (short)453, (short)446, (short)449, (short)459, (short)461, (short)462, (short)463, (short)464, (short)454, (short)455, (short)456, (short)457, (short)458, (short)460, (short)465, (short)466, (short)0, (short)459, (short)461, (short)462, (short)463, (short)464, (short)0, (short)467, (short)452, (short)0, (short)0, (short)0, (short)465, (short)466, (short)454, (short)468, (short)457, (short)471, (short)469, (short)453, (short)456, (short)467, (short)470, (short)460, (short)459, (short)458, (short)472, (short)464, (short)461, (short)468, (short)465, (short)471, (short)469, (short)463, (short)465, (short)473, (short)470, (short)474, (short)475, (short)466, (short)472, (short)476, (short)477, (short)478, (short)0, (short)479, (short)480, (short)481, (short)482, (short)473, (short)483, (short)474, (short)475, (short)467, (short)469, (short)476, (short)477, (short)478, (short)470, (short)479, (short)480, (short)481, (short)482, (short)468, (short)483, (short)484, (short)485, (short)486, (short)487, (short)488, (short)0, (short)489, (short)0, (short)490, (short)491, (short)0, (short)477, (short)478, (short)493, (short)484, (short)485, (short)486, (short)487, (short)488, (short)483, (short)489, (short)475, (short)490, (short)491, (short)476, (short)0, (short)492, (short)493, (short)494, (short)495, (short)481, (short)496, (short)498, (short)500, (short)501, (short)486, (short)480, (short)497, (short)0, (short)488, (short)492, (short)499, (short)494, (short)495, (short)490, (short)496, (short)498, (short)500, (short)501, (short)484, (short)485, (short)497, (short)491, (short)502, (short)0, (short)499, (short)503, (short)0, (short)0, (short)0, (short)504, (short)505, (short)0, (short)492, (short)493, (short)495, (short)498, (short)502, (short)497, (short)506, (short)503, (short)496, (short)499, (short)494, (short)504, (short)505, (short)500, (short)507, (short)508, (short)509, (short)511, (short)0, (short)0, (short)506, (short)510, (short)512, (short)513, (short)514, (short)0, (short)515, (short)517, (short)507, (short)508, (short)509, (short)511, (short)505, (short)502, (short)516, (short)510, (short)512, (short)513, (short)514, (short)503, (short)515, (short)517, (short)0, (short)518, (short)0, (short)519, (short)520, (short)509, (short)516, (short)0, (short)521, (short)507, (short)522, (short)512, (short)523, (short)0, (short)506, (short)518, (short)517, (short)519, (short)520, (short)524, (short)525, (short)507, (short)521, (short)515, (short)522, (short)510, (short)523, (short)508, (short)516, (short)526, (short)527, (short)513, (short)514, (short)524, (short)525, (short)528, (short)529, (short)0, (short)530, (short)532, (short)531, (short)533, (short)519, (short)526, (short)527, (short)534, (short)0, (short)535, (short)536, (short)528, (short)529, (short)522, (short)530, (short)532, (short)531, (short)533, (short)525, (short)521, (short)0, (short)534, (short)526, (short)535, (short)536, (short)537, (short)538, (short)539, (short)528, (short)540, (short)541, (short)0, (short)529, (short)531, (short)533, (short)542, (short)543, (short)0, (short)534, (short)537, (short)538, (short)539, (short)527, (short)540, (short)541, (short)535, (short)530, (short)544, (short)545, (short)542, (short)543, (short)532, (short)0, (short)546, (short)547, (short)536, (short)548, (short)0, (short)538, (short)539, (short)549, (short)544, (short)545, (short)550, (short)551, (short)552, (short)541, (short)546, (short)547, (short)540, (short)548, (short)542, (short)553, (short)554, (short)549, (short)537, (short)0, (short)550, (short)551, (short)552, (short)0, (short)555, (short)556, (short)543, (short)558, (short)0, (short)553, (short)554, (short)559, (short)0, (short)547, (short)560, (short)561, (short)544, (short)549, (short)555, (short)556, (short)557, (short)558, (short)557, (short)562, (short)552, (short)559, (short)550, (short)554, (short)560, (short)561, (short)563, (short)0, (short)564, (short)565, (short)557, (short)566, (short)567, (short)562, (short)0, (short)568, (short)555, (short)569, (short)570, (short)0, (short)563, (short)560, (short)564, (short)565, (short)571, (short)566, (short)567, (short)572, (short)558, (short)568, (short)562, (short)569, (short)570, (short)556, (short)573, (short)574, (short)575, (short)563, (short)571, (short)564, (short)577, (short)572, (short)576, (short)583, (short)578, (short)579, (short)0, (short)581, (short)573, (short)574, (short)575, (short)0, (short)569, (short)568, (short)577, (short)582, (short)576, (short)583, (short)578, (short)579, (short)571, (short)581, (short)0, (short)567, (short)0, (short)584, (short)585, (short)574, (short)0, (short)582, (short)586, (short)587, (short)570, (short)588, (short)572, (short)578, (short)576, (short)579, (short)581, (short)584, (short)585, (short)575, (short)573, (short)589, (short)586, (short)587, (short)582, (short)588, (short)590, (short)591, (short)592, (short)593, (short)595, (short)594, (short)601, (short)597, (short)584, (short)589, (short)596, (short)0, (short)602, (short)600, (short)590, (short)591, (short)592, (short)593, (short)595, (short)594, (short)601, (short)597, (short)603, (short)0, (short)596, (short)586, (short)602, (short)600, (short)587, (short)0, (short)0, (short)0, (short)604, (short)605, (short)0, (short)606, (short)603, (short)591, (short)597, (short)0, (short)0, (short)596, (short)589, (short)594, (short)600, (short)596, (short)604, (short)605, (short)590, (short)606, (short)607, (short)592, (short)608, (short)593, (short)595, (short)609, (short)610, (short)611, (short)0, (short)612, (short)613, (short)614, (short)615, (short)616, (short)607, (short)605, (short)608, (short)617, (short)604, (short)609, (short)610, (short)611, (short)603, (short)612, (short)613, (short)614, (short)615, (short)616, (short)618, (short)0, (short)0, (short)617, (short)0, (short)619, (short)620, (short)606, (short)621, (short)622, (short)623, (short)624, (short)0, (short)609, (short)618, (short)614, (short)616, (short)607, (short)613, (short)619, (short)620, (short)625, (short)621, (short)622, (short)623, (short)624, (short)614, (short)626, (short)627, (short)628, (short)629, (short)0, (short)0, (short)630, (short)631, (short)625, (short)632, (short)617, (short)633, (short)634, (short)635, (short)626, (short)627, (short)628, (short)629, (short)618, (short)621, (short)630, (short)631, (short)637, (short)632, (short)624, (short)633, (short)634, (short)635, (short)636, (short)622, (short)638, (short)623, (short)639, (short)619, (short)641, (short)0, (short)637, (short)640, (short)0, (short)642, (short)0, (short)625, (short)636, (short)643, (short)638, (short)631, (short)639, (short)0, (short)641, (short)629, (short)627, (short)640, (short)634, (short)642, (short)630, (short)644, (short)645, (short)643, (short)632, (short)633, (short)646, (short)635, (short)647, (short)648, (short)636, (short)649, (short)0, (short)650, (short)651, (short)644, (short)645, (short)652, (short)653, (short)642, (short)646, (short)0, (short)647, (short)648, (short)639, (short)649, (short)638, (short)650, (short)651, (short)640, (short)654, (short)652, (short)653, (short)0, (short)0, (short)641, (short)655, (short)657, (short)656, (short)0, (short)647, (short)658, (short)659, (short)0, (short)654, (short)648, (short)0, (short)645, (short)644, (short)0, (short)655, (short)657, (short)656, (short)652, (short)0, (short)658, (short)659, (short)0, (short)0, (short)0, (short)0, (short)0, (short)651, (short)650, (short)0, (short)654, (short)0, (short)0, (short)653, (short)656, (short)0, (short)0, (short)658, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)655, (short)661, (short)661, (short)661, (short)661, (short)661, (short)661, (short)661, (short)662, (short)662, (short)0, (short)662, (short)662, (short)662, (short)662, (short)663, (short)0, (short)0, (short)663, (short)663, (short)663, (short)664, (short)664, (short)665, (short)665, (short)666, (short)666, (short)666, (short)667, (short)667, (short)668, (short)668, (short)668, (short)668, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660, (short)660
529 };
530
531 static yy_state_type yy_last_accepting_state;
532
533 static char * yy_last_accepting_cpos;
534
535 char * yytext;
536
537 enum yytokentype
538 {
539 IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366
540 };
541
542 typedef union YYSTYPE
543 {
544 int specifierType;
545 int i;
546 int declMode;
547 struct Identifier * id;
548 struct Expression * exp;
549 struct Specifier * specifier;
550 struct __ecereNameSpace__ecere__sys__OldList * list;
551 struct Enumerator * enumerator;
552 struct Declarator * declarator;
553 struct Pointer * pointer;
554 struct Initializer * initializer;
555 struct InitDeclarator * initDeclarator;
556 struct TypeName * typeName;
557 struct Declaration * declaration;
558 struct Statement * stmt;
559 struct FunctionDefinition * function;
560 struct External * external;
561 struct Context * context;
562 struct AsmField * asmField;
563 struct Attrib * attrib;
564 struct ExtDecl * extDecl;
565 struct Attribute * attribute;
566 struct Instantiation * instance;
567 struct MembersInit * membersInit;
568 struct MemberInit * memberInit;
569 struct ClassFunction * classFunction;
570 struct ClassDefinition * _class;
571 struct ClassDef * classDef;
572 struct PropertyDef * prop;
573 char * string;
574 struct Symbol * symbol;
575 struct PropertyWatch * propertyWatch;
576 struct TemplateParameter * templateParameter;
577 struct TemplateArgument * templateArgument;
578 struct TemplateDatatype * templateDatatype;
579 struct DBTableEntry * dbtableEntry;
580 struct DBIndexItem * dbindexItem;
581 struct DBTableDef * dbtableDef;
582 } YYSTYPE;
583
584 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
585
586 struct Enumerator;
587
588 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
589
590 struct InitDeclarator;
591
592 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_AsmField;
593
594 struct AsmField;
595
596 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attribute;
597
598 struct Attribute;
599
600 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
601
602 struct ClassFunction;
603
604 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
605
606 struct MembersInit;
607
608 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
609
610 struct MemberInit;
611
612 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
613
614 struct PropertyDef;
615
616 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
617
618 struct PropertyWatch;
619
620 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
621
622 struct ClassDef;
623
624 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableEntry;
625
626 struct DBTableEntry;
627
628 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBIndexItem;
629
630 struct DBIndexItem;
631
632 extern YYSTYPE yylval;
633
634 extern struct Location yylloc;
635
636 unsigned int echoOn = 0x1;
637
638 void SetEchoOn(unsigned int b)
639 {
640 echoOn = b;
641 }
642
643 extern struct Location type_yylloc;
644
645 extern struct Location expression_yylloc;
646
647 extern struct __ecereNameSpace__ecere__com__Instance * fileInput;
648
649 int preprocessor();
650
651 int comment();
652
653 void TESTTTT()
654 {
655 yylloc.end.charPos += yyleng;
656 yylloc.end.pos += yyleng;
657 type_yylloc.end.charPos += yyleng;
658 type_yylloc.end.pos += yyleng;
659 expression_yylloc.end.charPos += yyleng;
660 expression_yylloc.end.pos += yyleng;
661 }
662
663 YY_BUFFER_STATE include_stack[10];
664
665 struct __ecereNameSpace__ecere__com__Instance * fileStack[10];
666
667 char sourceFileStack[10][797];
668
669 extern char *  strcpy(char * , const char * );
670
671 void SetSomeSourceFileStack(char * fileName, int index)
672 {
673 strcpy(sourceFileStack[index], fileName);
674 }
675
676 struct Location locStack[10];
677
678 int declModeStack[10];
679
680 int include_stack_ptr = 0;
681
682 extern int yywrap(void);
683
684 static void yyunput(int c, char * buf_ptr);
685
686 static int input(void);
687
688 int commentCPP();
689
690 extern int check_type(void);
691
692 extern int defaultDeclMode;
693
694 extern int declMode;
695
696 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
697
698 int yylex(void)
699 {
700 register yy_state_type yy_current_state;
701 register char * yy_cp, * yy_bp;
702 register int yy_act;
703
704 yylloc.start = yylloc.end;
705 type_yylloc.start = type_yylloc.end;
706 expression_yylloc.start = expression_yylloc.end;
707 if(yy_init)
708 {
709 yy_init = 0;
710 if(!yy_start)
711 yy_start = 1;
712 if(!yyin)
713 yyin = (bsl_stdin());
714 if(!yyout)
715 yyout = (bsl_stdout());
716 if(!yy_current_buffer)
717 yy_current_buffer = yy_create_buffer(yyin, 16384);
718 yy_load_buffer_state();
719 }
720 while(1)
721 {
722 yy_cp = yy_c_buf_p;
723 *yy_cp = yy_hold_char;
724 yy_bp = yy_cp;
725 yy_current_state = yy_start;
726 yy_match:
727 do
728 {
729 register YY_CHAR yy_c = yy_ec[((unsigned int)(unsigned char)*yy_cp)];
730
731 if(yy_accept[yy_current_state])
732 {
733 yy_last_accepting_state = yy_current_state;
734 yy_last_accepting_cpos = yy_cp;
735 }
736 while(yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state)
737 {
738 yy_current_state = (int)yy_def[yy_current_state];
739 if(yy_current_state >= 661)
740 yy_c = yy_meta[(unsigned int)yy_c];
741 }
742 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int)yy_c];
743 ++yy_cp;
744 }while(yy_base[yy_current_state] != (short)2195);
745 yy_find_action:
746 yy_act = yy_accept[yy_current_state];
747 if(yy_act == 0)
748 {
749 yy_cp = yy_last_accepting_cpos;
750 yy_current_state = yy_last_accepting_state;
751 yy_act = yy_accept[yy_current_state];
752 }
753 yytext = yy_bp;
754 yyleng = (int)(yy_cp - yy_bp);
755 yy_hold_char = *yy_cp;
756 *yy_cp = '\0';
757 yy_c_buf_p = yy_cp;
758 ;
759 do_action:
760 switch(yy_act)
761 {
762 case 0:
763 *yy_cp = yy_hold_char;
764 yy_cp = yy_last_accepting_cpos;
765 yy_current_state = yy_last_accepting_state;
766 goto yy_find_action;
767 case 1:
768 TESTTTT();
769 {
770 preprocessor();
771 }
772 break;
773 case 2:
774 TESTTTT();
775 {
776 comment();
777 }
778 break;
779 case 3:
780 TESTTTT();
781 {
782 commentCPP();
783 }
784 break;
785 case 4:
786 TESTTTT();
787 {
788 return (AUTO);
789 }
790 break;
791 case 5:
792 TESTTTT();
793 {
794 return (BREAK);
795 }
796 break;
797 case 6:
798 TESTTTT();
799 {
800 return (CASE);
801 }
802 break;
803 case 7:
804 TESTTTT();
805 {
806 return (CHAR);
807 }
808 break;
809 case 8:
810 TESTTTT();
811 {
812 return (CONST);
813 }
814 break;
815 case 9:
816 TESTTTT();
817 {
818 return (CONTINUE);
819 }
820 break;
821 case 10:
822 TESTTTT();
823 {
824 return (DEFAULT);
825 }
826 break;
827 case 11:
828 TESTTTT();
829 {
830 return (DO);
831 }
832 break;
833 case 12:
834 TESTTTT();
835 {
836 return (DOUBLE);
837 }
838 break;
839 case 13:
840 TESTTTT();
841 {
842 return (ELSE);
843 }
844 break;
845 case 14:
846 TESTTTT();
847 {
848 return (ENUM);
849 }
850 break;
851 case 15:
852 TESTTTT();
853 {
854 return (EXTERN);
855 }
856 break;
857 case 16:
858 TESTTTT();
859 {
860 return (FLOAT);
861 }
862 break;
863 case 17:
864 TESTTTT();
865 {
866 return (FOR);
867 }
868 break;
869 case 18:
870 TESTTTT();
871 {
872 return (GOTO);
873 }
874 break;
875 case 19:
876 TESTTTT();
877 {
878 return (IF);
879 }
880 break;
881 case 20:
882 TESTTTT();
883 {
884 return (INT);
885 }
886 break;
887 case 21:
888 TESTTTT();
889 {
890 return (UINT);
891 }
892 break;
893 case 22:
894 TESTTTT();
895 {
896 return (LONG);
897 }
898 break;
899 case 23:
900 TESTTTT();
901 {
902 return (REGISTER);
903 }
904 break;
905 case 24:
906 TESTTTT();
907 {
908 return (RETURN);
909 }
910 break;
911 case 25:
912 TESTTTT();
913 {
914 return (SHORT);
915 }
916 break;
917 case 26:
918 TESTTTT();
919 {
920 return (SIGNED);
921 }
922 break;
923 case 27:
924 TESTTTT();
925 {
926 return (SIGNED);
927 }
928 break;
929 case 28:
930 TESTTTT();
931 {
932 return (SIGNED);
933 }
934 break;
935 case 29:
936 TESTTTT();
937 {
938 return (SIZEOF);
939 }
940 break;
941 case 30:
942 TESTTTT();
943 {
944 return (ALIGNOF);
945 }
946 break;
947 case 31:
948 TESTTTT();
949 {
950 return (STATIC);
951 }
952 break;
953 case 32:
954 TESTTTT();
955 {
956 return (STRUCT);
957 }
958 break;
959 case 33:
960 TESTTTT();
961 {
962 return (SWITCH);
963 }
964 break;
965 case 34:
966 TESTTTT();
967 {
968 return (TYPEDEF);
969 }
970 break;
971 case 35:
972 TESTTTT();
973 {
974 return (UNION);
975 }
976 break;
977 case 36:
978 TESTTTT();
979 {
980 return (UNSIGNED);
981 }
982 break;
983 case 37:
984 TESTTTT();
985 {
986 return (VOID);
987 }
988 break;
989 case 38:
990 TESTTTT();
991 {
992 return (VOLATILE);
993 }
994 break;
995 case 39:
996 TESTTTT();
997 {
998 return (VOLATILE);
999 }
1000 break;
1001 case 40:
1002 TESTTTT();
1003 {
1004 return (VOLATILE);
1005 }
1006 break;
1007 case 41:
1008 TESTTTT();
1009 {
1010 return (WHILE);
1011 }
1012 break;
1013 case 42:
1014 TESTTTT();
1015 {
1016 return (PROPERTY);
1017 }
1018 break;
1019 case 43:
1020 TESTTTT();
1021 {
1022 return (SETPROP);
1023 }
1024 break;
1025 case 44:
1026 TESTTTT();
1027 {
1028 return (GETPROP);
1029 }
1030 break;
1031 case 45:
1032 TESTTTT();
1033 {
1034 return (ISPROPSET);
1035 }
1036 break;
1037 case 46:
1038 TESTTTT();
1039 {
1040 return (CLASS);
1041 }
1042 break;
1043 case 47:
1044 TESTTTT();
1045 {
1046 return (THISCLASS);
1047 }
1048 break;
1049 case 48:
1050 TESTTTT();
1051 {
1052 return (VIRTUAL);
1053 }
1054 break;
1055 case 49:
1056 TESTTTT();
1057 {
1058 return (DELETE);
1059 }
1060 break;
1061 case 50:
1062 TESTTTT();
1063 {
1064 return (NEWOP);
1065 }
1066 break;
1067 case 51:
1068 TESTTTT();
1069 {
1070 return (NEW0OP);
1071 }
1072 break;
1073 case 52:
1074 TESTTTT();
1075 {
1076 return (RENEW);
1077 }
1078 break;
1079 case 53:
1080 TESTTTT();
1081 {
1082 return (RENEW0);
1083 }
1084 break;
1085 case 54:
1086 TESTTTT();
1087 {
1088 return (IMPORT);
1089 }
1090 break;
1091 case 55:
1092 TESTTTT();
1093 {
1094 return (DEFINE);
1095 }
1096 break;
1097 case 56:
1098 TESTTTT();
1099 {
1100 return (INT64);
1101 }
1102 break;
1103 case 57:
1104 TESTTTT();
1105 {
1106 return (INT64);
1107 }
1108 break;
1109 case 58:
1110 TESTTTT();
1111 {
1112 return (VALIST);
1113 }
1114 break;
1115 case 59:
1116 TESTTTT();
1117 {
1118 return (VAARG);
1119 }
1120 break;
1121 case 60:
1122 TESTTTT();
1123 {
1124 return ATTRIB_DEP;
1125 }
1126 break;
1127 case 61:
1128 TESTTTT();
1129 {
1130 return ATTRIB;
1131 }
1132 break;
1133 case 62:
1134 TESTTTT();
1135 {
1136 return __ATTRIB;
1137 }
1138 break;
1139 case 63:
1140 TESTTTT();
1141 {
1142 return (EXT_STORAGE);
1143 }
1144 break;
1145 case 64:
1146 TESTTTT();
1147 {
1148 return (EXT_STORAGE);
1149 }
1150 break;
1151 case 65:
1152 TESTTTT();
1153 {
1154 return (EXT_STORAGE);
1155 }
1156 break;
1157 case 66:
1158 TESTTTT();
1159 {
1160 return (EXT_STORAGE);
1161 }
1162 break;
1163 case 67:
1164 TESTTTT();
1165 {
1166 return (EXT_STORAGE);
1167 }
1168 break;
1169 case 68:
1170 TESTTTT();
1171 {
1172 return (EXT_STORAGE);
1173 }
1174 break;
1175 case 69:
1176 TESTTTT();
1177 {
1178 return (EXT_STORAGE);
1179 }
1180 break;
1181 case 70:
1182 TESTTTT();
1183 {
1184 return (EXT_DECL);
1185 }
1186 break;
1187 case 71:
1188 TESTTTT();
1189 {
1190 return (EXT_DECL);
1191 }
1192 break;
1193 case 72:
1194 TESTTTT();
1195 {
1196 return (EXT_DECL);
1197 }
1198 break;
1199 case 73:
1200 TESTTTT();
1201 {
1202 return (EXT_DECL);
1203 }
1204 break;
1205 case 74:
1206 TESTTTT();
1207 {
1208 return (EXT_DECL);
1209 }
1210 break;
1211 case 75:
1212 TESTTTT();
1213 {
1214 return (EXT_DECL);
1215 }
1216 break;
1217 case 76:
1218 TESTTTT();
1219 {
1220 return (EXT_DECL);
1221 }
1222 break;
1223 case 77:
1224 TESTTTT();
1225 {
1226 return (EXT_DECL);
1227 }
1228 break;
1229 case 78:
1230 TESTTTT();
1231 {
1232 return (PUBLIC);
1233 }
1234 break;
1235 case 79:
1236 TESTTTT();
1237 {
1238 return (PRIVATE);
1239 }
1240 break;
1241 case 80:
1242 TESTTTT();
1243 {
1244 return (TYPED_OBJECT);
1245 }
1246 break;
1247 case 81:
1248 TESTTTT();
1249 {
1250 return (ANY_OBJECT);
1251 }
1252 break;
1253 case 82:
1254 TESTTTT();
1255 {
1256 return (_INCREF);
1257 }
1258 break;
1259 case 83:
1260 TESTTTT();
1261 {
1262 return (EXTENSION);
1263 }
1264 break;
1265 case 84:
1266 TESTTTT();
1267 {
1268 return (EXTENSION);
1269 }
1270 break;
1271 case 85:
1272 TESTTTT();
1273 {
1274 return (ASM);
1275 }
1276 break;
1277 case 86:
1278 TESTTTT();
1279 {
1280 return (ASM);
1281 }
1282 break;
1283 case 87:
1284 TESTTTT();
1285 {
1286 return (ASM);
1287 }
1288 break;
1289 case 88:
1290 TESTTTT();
1291 {
1292 return (TYPEOF);
1293 }
1294 break;
1295 case 89:
1296 TESTTTT();
1297 {
1298 return (WATCH);
1299 }
1300 break;
1301 case 90:
1302 TESTTTT();
1303 {
1304 return (STOPWATCHING);
1305 }
1306 break;
1307 case 91:
1308 TESTTTT();
1309 {
1310 return (FIREWATCHERS);
1311 }
1312 break;
1313 case 92:
1314 TESTTTT();
1315 {
1316 return (WATCHABLE);
1317 }
1318 break;
1319 case 93:
1320 TESTTTT();
1321 {
1322 return (CLASS_DESIGNER);
1323 }
1324 break;
1325 case 94:
1326 TESTTTT();
1327 {
1328 return (CLASS_NO_EXPANSION);
1329 }
1330 break;
1331 case 95:
1332 TESTTTT();
1333 {
1334 return (CLASS_FIXED);
1335 }
1336 break;
1337 case 96:
1338 TESTTTT();
1339 {
1340 return (CLASS_DEFAULT_PROPERTY);
1341 }
1342 break;
1343 case 97:
1344 TESTTTT();
1345 {
1346 return (PROPERTY_CATEGORY);
1347 }
1348 break;
1349 case 98:
1350 TESTTTT();
1351 {
1352 return (CLASS_DATA);
1353 }
1354 break;
1355 case 99:
1356 TESTTTT();
1357 {
1358 return (CLASS_PROPERTY);
1359 }
1360 break;
1361 case 100:
1362 TESTTTT();
1363 {
1364 return (SUBCLASS);
1365 }
1366 break;
1367 case 101:
1368 TESTTTT();
1369 {
1370 return (NAMESPACE);
1371 }
1372 break;
1373 case 102:
1374 TESTTTT();
1375 {
1376 return (DBTABLE);
1377 }
1378 break;
1379 case 103:
1380 TESTTTT();
1381 {
1382 return (DBFIELD);
1383 }
1384 break;
1385 case 104:
1386 TESTTTT();
1387 {
1388 return (DBINDEX);
1389 }
1390 break;
1391 case 105:
1392 TESTTTT();
1393 {
1394 return (DATABASE_OPEN);
1395 }
1396 break;
1397 case 106:
1398 TESTTTT();
1399 {
1400 return (check_type());
1401 }
1402 break;
1403 case 107:
1404 TESTTTT();
1405 {
1406 return (CONSTANT);
1407 }
1408 break;
1409 case 108:
1410 TESTTTT();
1411 {
1412 return (CONSTANT);
1413 }
1414 break;
1415 case 109:
1416 TESTTTT();
1417 {
1418 return (CONSTANT);
1419 }
1420 break;
1421 case 110:
1422 TESTTTT();
1423 {
1424 return (CONSTANT);
1425 }
1426 break;
1427 case 111:
1428 TESTTTT();
1429 {
1430 return (CONSTANT);
1431 }
1432 break;
1433 case 112:
1434 TESTTTT();
1435 {
1436 return (CONSTANT);
1437 }
1438 break;
1439 case 113:
1440 TESTTTT();
1441 {
1442 return (CONSTANT);
1443 }
1444 break;
1445 case 114:
1446 TESTTTT();
1447 {
1448 return (STRING_LITERAL);
1449 }
1450 break;
1451 case 115:
1452 TESTTTT();
1453 {
1454 return (ELLIPSIS);
1455 }
1456 break;
1457 case 116:
1458 TESTTTT();
1459 {
1460 return (RIGHT_ASSIGN);
1461 }
1462 break;
1463 case 117:
1464 TESTTTT();
1465 {
1466 return (LEFT_ASSIGN);
1467 }
1468 break;
1469 case 118:
1470 TESTTTT();
1471 {
1472 return (ADD_ASSIGN);
1473 }
1474 break;
1475 case 119:
1476 TESTTTT();
1477 {
1478 return (SUB_ASSIGN);
1479 }
1480 break;
1481 case 120:
1482 TESTTTT();
1483 {
1484 return (MUL_ASSIGN);
1485 }
1486 break;
1487 case 121:
1488 TESTTTT();
1489 {
1490 return (DIV_ASSIGN);
1491 }
1492 break;
1493 case 122:
1494 TESTTTT();
1495 {
1496 return (MOD_ASSIGN);
1497 }
1498 break;
1499 case 123:
1500 TESTTTT();
1501 {
1502 return (AND_ASSIGN);
1503 }
1504 break;
1505 case 124:
1506 TESTTTT();
1507 {
1508 return (XOR_ASSIGN);
1509 }
1510 break;
1511 case 125:
1512 TESTTTT();
1513 {
1514 return (OR_ASSIGN);
1515 }
1516 break;
1517 case 126:
1518 TESTTTT();
1519 {
1520 return (RIGHT_OP);
1521 }
1522 break;
1523 case 127:
1524 TESTTTT();
1525 {
1526 return (LEFT_OP);
1527 }
1528 break;
1529 case 128:
1530 TESTTTT();
1531 {
1532 return (INC_OP);
1533 }
1534 break;
1535 case 129:
1536 TESTTTT();
1537 {
1538 return (DEC_OP);
1539 }
1540 break;
1541 case 130:
1542 TESTTTT();
1543 {
1544 return (PTR_OP);
1545 }
1546 break;
1547 case 131:
1548 TESTTTT();
1549 {
1550 return (AND_OP);
1551 }
1552 break;
1553 case 132:
1554 TESTTTT();
1555 {
1556 return (OR_OP);
1557 }
1558 break;
1559 case 133:
1560 TESTTTT();
1561 {
1562 return (LE_OP);
1563 }
1564 break;
1565 case 134:
1566 TESTTTT();
1567 {
1568 return (GE_OP);
1569 }
1570 break;
1571 case 135:
1572 TESTTTT();
1573 {
1574 return (EQ_OP);
1575 }
1576 break;
1577 case 136:
1578 TESTTTT();
1579 {
1580 return (NE_OP);
1581 }
1582 break;
1583 case 137:
1584 TESTTTT();
1585 {
1586 return (';');
1587 }
1588 break;
1589 case 138:
1590 TESTTTT();
1591 {
1592 return ('{');
1593 }
1594 break;
1595 case 139:
1596 TESTTTT();
1597 {
1598 return ('}');
1599 }
1600 break;
1601 case 140:
1602 TESTTTT();
1603 {
1604 return (',');
1605 }
1606 break;
1607 case 141:
1608 TESTTTT();
1609 {
1610 return (':');
1611 }
1612 break;
1613 case 142:
1614 TESTTTT();
1615 {
1616 return ('=');
1617 }
1618 break;
1619 case 143:
1620 TESTTTT();
1621 {
1622 return ('(');
1623 }
1624 break;
1625 case 144:
1626 TESTTTT();
1627 {
1628 return (')');
1629 }
1630 break;
1631 case 145:
1632 TESTTTT();
1633 {
1634 return ('[');
1635 }
1636 break;
1637 case 146:
1638 TESTTTT();
1639 {
1640 return (']');
1641 }
1642 break;
1643 case 147:
1644 TESTTTT();
1645 {
1646 return ('.');
1647 }
1648 break;
1649 case 148:
1650 TESTTTT();
1651 {
1652 return ('&');
1653 }
1654 break;
1655 case 149:
1656 TESTTTT();
1657 {
1658 return ('!');
1659 }
1660 break;
1661 case 150:
1662 TESTTTT();
1663 {
1664 return ('~');
1665 }
1666 break;
1667 case 151:
1668 TESTTTT();
1669 {
1670 return ('-');
1671 }
1672 break;
1673 case 152:
1674 TESTTTT();
1675 {
1676 return ('+');
1677 }
1678 break;
1679 case 153:
1680 TESTTTT();
1681 {
1682 return ('*');
1683 }
1684 break;
1685 case 154:
1686 TESTTTT();
1687 {
1688 return ('/');
1689 }
1690 break;
1691 case 155:
1692 TESTTTT();
1693 {
1694 return ('%');
1695 }
1696 break;
1697 case 156:
1698 TESTTTT();
1699 {
1700 return ('<');
1701 }
1702 break;
1703 case 157:
1704 TESTTTT();
1705 {
1706 return ('>');
1707 }
1708 break;
1709 case 158:
1710 TESTTTT();
1711 {
1712 return ('^');
1713 }
1714 break;
1715 case 159:
1716 TESTTTT();
1717 {
1718 return ('|');
1719 }
1720 break;
1721 case 160:
1722 TESTTTT();
1723 {
1724 return ('?');
1725 }
1726 break;
1727 case 161:
1728 TESTTTT();
1729 {
1730 return ('$');
1731 }
1732 break;
1733 case 168LL:
1734 {
1735 if(--include_stack_ptr < 0)
1736 {
1737 return 0;
1738 }
1739 else
1740 {
1741 (__ecereNameSpace__ecere__com__eInstance_DecRef(fileInput), fileInput = 0);
1742 yy_delete_buffer(yy_current_buffer);
1743 fileInput = fileStack[include_stack_ptr];
1744 yylloc = locStack[include_stack_ptr];
1745 type_yylloc = locStack[include_stack_ptr];
1746 expression_yylloc = locStack[include_stack_ptr];
1747 yy_switch_to_buffer(include_stack[include_stack_ptr]);
1748 defaultDeclMode = declMode = declModeStack[include_stack_ptr];
1749 }
1750 }
1751 break;
1752 case 162:
1753 TESTTTT();
1754 {
1755 yylloc.start = yylloc.end;
1756 type_yylloc.start = type_yylloc.end;
1757 expression_yylloc.start = expression_yylloc.end;
1758 }
1759 break;
1760 case 163:
1761 TESTTTT();
1762 {
1763 yylloc.end.charPos = 1;
1764 yylloc.end.line += yyleng;
1765 yylloc.start = yylloc.end;
1766 type_yylloc.end.charPos = 1;
1767 type_yylloc.end.line += yyleng;
1768 type_yylloc.start = type_yylloc.end;
1769 expression_yylloc.end.charPos = 1;
1770 expression_yylloc.end.line += yyleng;
1771 expression_yylloc.start = expression_yylloc.end;
1772 }
1773 break;
1774 case 164:
1775 TESTTTT();
1776 {
1777 yylloc.start.charPos++;
1778 yylloc.end.charPos = yylloc.start.charPos;
1779 yylloc.start.pos = yylloc.end.pos;
1780 expression_yylloc.start.charPos++;
1781 expression_yylloc.end.charPos = expression_yylloc.start.charPos;
1782 expression_yylloc.start.pos = expression_yylloc.end.pos;
1783 type_yylloc.start.charPos++;
1784 type_yylloc.end.charPos = type_yylloc.start.charPos;
1785 type_yylloc.start.pos = type_yylloc.end.pos;
1786 }
1787 break;
1788 case 165:
1789 TESTTTT();
1790 {
1791 yylloc.start = yylloc.end;
1792 expression_yylloc.start = expression_yylloc.end;
1793 type_yylloc.start = type_yylloc.end;
1794 }
1795 break;
1796 case 166:
1797 TESTTTT();
1798 (void)fwrite(yytext, yyleng, 1, yyout);
1799 break;
1800 case 167:
1801 {
1802 int yy_amount_of_matched_text = (int)(yy_cp - yytext) - 1;
1803
1804 *yy_cp = yy_hold_char;
1805 if((*yy_current_buffer).yy_buffer_status == 0)
1806 {
1807 yy_n_chars = (*yy_current_buffer).yy_n_chars;
1808 (*yy_current_buffer).yy_input_file = yyin;
1809 (*yy_current_buffer).yy_buffer_status = 1;
1810 }
1811 if(yy_c_buf_p <= &(*yy_current_buffer).yy_ch_buf[yy_n_chars])
1812 {
1813 yy_state_type yy_next_state;
1814
1815 yy_c_buf_p = yytext + yy_amount_of_matched_text;
1816 yy_current_state = yy_get_previous_state();
1817 yy_next_state = yy_try_NUL_trans(yy_current_state);
1818 yy_bp = yytext + 0;
1819 if(yy_next_state)
1820 {
1821 yy_cp = ++yy_c_buf_p;
1822 yy_current_state = yy_next_state;
1823 goto yy_match;
1824 }
1825 else
1826 {
1827 yy_cp = yy_c_buf_p;
1828 goto yy_find_action;
1829 }
1830 }
1831 else
1832 switch(yy_get_next_buffer())
1833 {
1834 case 1:
1835 {
1836 yy_did_buffer_switch_on_eof = 0;
1837 if(yywrap())
1838 {
1839 yy_c_buf_p = yytext + 0;
1840 yy_act = (167 + ((yy_start - 1) / 2) + 1);
1841 goto do_action;
1842 }
1843 else
1844 {
1845 if(!yy_did_buffer_switch_on_eof)
1846 yyrestart(yyin);
1847 }
1848 break;
1849 }
1850 case 0:
1851 yy_c_buf_p = yytext + yy_amount_of_matched_text;
1852 yy_current_state = yy_get_previous_state();
1853 yy_cp = yy_c_buf_p;
1854 yy_bp = yytext + 0;
1855 goto yy_match;
1856 case 2:
1857 yy_c_buf_p = &(*yy_current_buffer).yy_ch_buf[yy_n_chars];
1858 yy_current_state = yy_get_previous_state();
1859 yy_cp = yy_c_buf_p;
1860 yy_bp = yytext + 0;
1861 goto yy_find_action;
1862 }
1863 break;
1864 }
1865 default:
1866 yy_fatal_error("fatal flex scanner internal error--no action found");
1867 }
1868 }
1869 }
1870
1871 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
1872
1873 static int yy_get_next_buffer()
1874 {
1875 register char * dest = (*yy_current_buffer).yy_ch_buf;
1876 register char * source = yytext;
1877 register int number_to_move, i;
1878 int ret_val;
1879
1880 if(yy_c_buf_p > &(*yy_current_buffer).yy_ch_buf[yy_n_chars + 1])
1881 yy_fatal_error("fatal flex scanner internal error--end of buffer missed");
1882 if((*yy_current_buffer).yy_fill_buffer == 0)
1883 {
1884 if(yy_c_buf_p - yytext - 0 == 1)
1885 {
1886 return 1;
1887 }
1888 else
1889 {
1890 return 2;
1891 }
1892 }
1893 number_to_move = (int)(yy_c_buf_p - yytext) - 1;
1894 for(i = 0; i < number_to_move; ++i)
1895 *(dest++) = *(source++);
1896 if((*yy_current_buffer).yy_buffer_status == 2)
1897 (*yy_current_buffer).yy_n_chars = yy_n_chars = 0;
1898 else
1899 {
1900 int num_to_read = (*yy_current_buffer).yy_buf_size - number_to_move - 1;
1901
1902 while(num_to_read <= 0)
1903 {
1904 YY_BUFFER_STATE b = yy_current_buffer;
1905 int yy_c_buf_p_offset = (int)(yy_c_buf_p - (*b).yy_ch_buf);
1906
1907 if((*b).yy_is_our_buffer)
1908 {
1909 int new_size = (*b).yy_buf_size * 2;
1910
1911 if(new_size <= 0)
1912 (*b).yy_buf_size += (*b).yy_buf_size / 8;
1913 else
1914 (*b).yy_buf_size *= 2;
1915 (*b).yy_ch_buf = (char *)yy_flex_realloc((void *)(*b).yy_ch_buf, (*b).yy_buf_size + 2);
1916 }
1917 else
1918 (*b).yy_ch_buf = 0;
1919 if(!(*b).yy_ch_buf)
1920 yy_fatal_error("fatal error - scanner input buffer overflow");
1921 yy_c_buf_p = &(*b).yy_ch_buf[yy_c_buf_p_offset];
1922 num_to_read = (*yy_current_buffer).yy_buf_size - number_to_move - 1;
1923 }
1924 if(num_to_read > 8192)
1925 num_to_read = 8192;
1926 yy_n_chars = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))fileInput->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(fileInput, (&(*yy_current_buffer).yy_ch_buf[number_to_move]), 1, num_to_read);
1927 (*yy_current_buffer).yy_n_chars = yy_n_chars;
1928 }
1929 if(yy_n_chars == 0)
1930 {
1931 if(number_to_move == 0)
1932 {
1933 ret_val = 1;
1934 yyrestart(yyin);
1935 }
1936 else
1937 {
1938 ret_val = 2;
1939 (*yy_current_buffer).yy_buffer_status = 2;
1940 }
1941 }
1942 else
1943 ret_val = 0;
1944 yy_n_chars += number_to_move;
1945 (*yy_current_buffer).yy_ch_buf[yy_n_chars] = (char)0;
1946 (*yy_current_buffer).yy_ch_buf[yy_n_chars + 1] = (char)0;
1947 yytext = &(*yy_current_buffer).yy_ch_buf[0];
1948 return ret_val;
1949 }
1950
1951 static yy_state_type yy_get_previous_state()
1952 {
1953 register yy_state_type yy_current_state;
1954 register char * yy_cp;
1955
1956 yy_current_state = yy_start;
1957 for(yy_cp = yytext + 0; yy_cp < yy_c_buf_p; ++yy_cp)
1958 {
1959 register YY_CHAR yy_c = (*yy_cp ? yy_ec[((unsigned int)(unsigned char)*yy_cp)] : (unsigned char)1);
1960
1961 if(yy_accept[yy_current_state])
1962 {
1963 yy_last_accepting_state = yy_current_state;
1964 yy_last_accepting_cpos = yy_cp;
1965 }
1966 while(yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state)
1967 {
1968 yy_current_state = (int)yy_def[yy_current_state];
1969 if(yy_current_state >= 661)
1970 yy_c = yy_meta[(unsigned int)yy_c];
1971 }
1972 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int)yy_c];
1973 }
1974 return yy_current_state;
1975 }
1976
1977 static yy_state_type yy_try_NUL_trans(yy_state_type yy_current_state)
1978 {
1979 register int yy_is_jam;
1980 register char * yy_cp = yy_c_buf_p;
1981 register YY_CHAR yy_c = (unsigned char)1;
1982
1983 if(yy_accept[yy_current_state])
1984 {
1985 yy_last_accepting_state = yy_current_state;
1986 yy_last_accepting_cpos = yy_cp;
1987 }
1988 while(yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state)
1989 {
1990 yy_current_state = (int)yy_def[yy_current_state];
1991 if(yy_current_state >= 661)
1992 yy_c = yy_meta[(unsigned int)yy_c];
1993 }
1994 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int)yy_c];
1995 yy_is_jam = (yy_current_state == 660);
1996 return yy_is_jam ? 0 : yy_current_state;
1997 }
1998
1999 static void yyunput(int c, register char * yy_bp)
2000 {
2001 register char * yy_cp = yy_c_buf_p;
2002
2003 *yy_cp = yy_hold_char;
2004 if(yy_cp < (*yy_current_buffer).yy_ch_buf + 2)
2005 {
2006 register int number_to_move = yy_n_chars + 2;
2007 register char * dest = &(*yy_current_buffer).yy_ch_buf[(*yy_current_buffer).yy_buf_size + 2];
2008 register char * source = &(*yy_current_buffer).yy_ch_buf[number_to_move];
2009
2010 while(source > (*yy_current_buffer).yy_ch_buf)
2011 *--dest = *--source;
2012 yy_cp += (int)(dest - source);
2013 yy_bp += (int)(dest - source);
2014 (*yy_current_buffer).yy_n_chars = yy_n_chars = (*yy_current_buffer).yy_buf_size;
2015 if(yy_cp < (*yy_current_buffer).yy_ch_buf + 2)
2016 yy_fatal_error("flex scanner push-back overflow");
2017 }
2018 *--yy_cp = (char)c;
2019 yytext = yy_bp;
2020 yy_hold_char = *yy_cp;
2021 yy_c_buf_p = yy_cp;
2022 }
2023
2024 static int input()
2025 {
2026 int c;
2027
2028 *yy_c_buf_p = yy_hold_char;
2029 if(*yy_c_buf_p == (char)0)
2030 {
2031 if(yy_c_buf_p < &(*yy_current_buffer).yy_ch_buf[yy_n_chars])
2032 *yy_c_buf_p = '\0';
2033 else
2034 {
2035 int offset = yy_c_buf_p - yytext;
2036
2037 ++yy_c_buf_p;
2038 switch(yy_get_next_buffer())
2039 {
2040 case 2:
2041 yyrestart(yyin);
2042 case 1:
2043 {
2044 if(yywrap())
2045 return (-1);
2046 if(!yy_did_buffer_switch_on_eof)
2047 yyrestart(yyin);
2048 return input();
2049 }
2050 case 0:
2051 yy_c_buf_p = yytext + offset;
2052 break;
2053 }
2054 }
2055 }
2056 c = *(unsigned char *)yy_c_buf_p;
2057 *yy_c_buf_p = '\0';
2058 yy_hold_char = *++yy_c_buf_p;
2059 return c;
2060 }
2061
2062 void yyrestart(FILE * input_file)
2063 {
2064 if(!yy_current_buffer)
2065 yy_current_buffer = yy_create_buffer(yyin, 16384);
2066 yy_init_buffer(yy_current_buffer, input_file);
2067 yy_load_buffer_state();
2068 }
2069
2070 void yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)
2071 {
2072 if(yy_current_buffer == new_buffer)
2073 return ;
2074 if(yy_current_buffer)
2075 {
2076 *yy_c_buf_p = yy_hold_char;
2077 (*yy_current_buffer).yy_buf_pos = yy_c_buf_p;
2078 (*yy_current_buffer).yy_n_chars = yy_n_chars;
2079 }
2080 yy_current_buffer = new_buffer;
2081 yy_load_buffer_state();
2082 yy_did_buffer_switch_on_eof = 1;
2083 }
2084
2085 void yy_load_buffer_state(void)
2086 {
2087 yy_n_chars = (*yy_current_buffer).yy_n_chars;
2088 yytext = yy_c_buf_p = (*yy_current_buffer).yy_buf_pos;
2089 yyin = (*yy_current_buffer).yy_input_file;
2090 yy_hold_char = *yy_c_buf_p;
2091 }
2092
2093 YY_BUFFER_STATE yy_create_buffer(FILE * file, int size)
2094 {
2095 YY_BUFFER_STATE b;
2096
2097 b = (YY_BUFFER_STATE)yy_flex_alloc(sizeof(struct yy_buffer_state));
2098 if(!b)
2099 yy_fatal_error("out of dynamic memory in yy_create_buffer()");
2100 (*b).yy_buf_size = size;
2101 (*b).yy_ch_buf = (char *)yy_flex_alloc((*b).yy_buf_size + 2);
2102 if(!(*b).yy_ch_buf)
2103 yy_fatal_error("out of dynamic memory in yy_create_buffer()");
2104 (*b).yy_is_our_buffer = 1;
2105 yy_init_buffer(b, file);
2106 return b;
2107 }
2108
2109 void yy_delete_buffer(YY_BUFFER_STATE b)
2110 {
2111 if(!b)
2112 return ;
2113 if(b == yy_current_buffer)
2114 yy_current_buffer = (YY_BUFFER_STATE)0;
2115 if((*b).yy_is_our_buffer)
2116 yy_flex_free((void *)(*b).yy_ch_buf);
2117 yy_flex_free((void *)b);
2118 }
2119
2120 void yy_init_buffer(YY_BUFFER_STATE b, FILE * file)
2121 {
2122 yy_flush_buffer(b);
2123 (*b).yy_input_file = file;
2124 (*b).yy_fill_buffer = 1;
2125 (*b).yy_is_interactive = 0;
2126 }
2127
2128 void yy_flush_buffer(YY_BUFFER_STATE b)
2129 {
2130 if(!b)
2131 return ;
2132 (*b).yy_n_chars = 0;
2133 (*b).yy_ch_buf[0] = (char)0;
2134 (*b).yy_ch_buf[1] = (char)0;
2135 (*b).yy_buf_pos = &(*b).yy_ch_buf[0];
2136 (*b).yy_at_bol = 1;
2137 (*b).yy_buffer_status = 0;
2138 if(b == yy_current_buffer)
2139 yy_load_buffer_state();
2140 }
2141
2142 YY_BUFFER_STATE yy_scan_buffer(char * base, yy_size_t size)
2143 {
2144 YY_BUFFER_STATE b;
2145
2146 if(size < 2 || base[size - 2] != (char)0 || base[size - 1] != (char)0)
2147 return 0;
2148 b = (YY_BUFFER_STATE)yy_flex_alloc(sizeof(struct yy_buffer_state));
2149 if(!b)
2150 yy_fatal_error("out of dynamic memory in yy_scan_buffer()");
2151 (*b).yy_buf_size = size - 2;
2152 (*b).yy_buf_pos = (*b).yy_ch_buf = base;
2153 (*b).yy_is_our_buffer = 0;
2154 (*b).yy_input_file = 0;
2155 (*b).yy_n_chars = (*b).yy_buf_size;
2156 (*b).yy_is_interactive = 0;
2157 (*b).yy_at_bol = 1;
2158 (*b).yy_fill_buffer = 0;
2159 (*b).yy_buffer_status = 0;
2160 yy_switch_to_buffer(b);
2161 return b;
2162 }
2163
2164 YY_BUFFER_STATE yy_scan_string(const char * yy_str)
2165 {
2166 int len;
2167
2168 for(len = 0; yy_str[len]; ++len)
2169 ;
2170 return yy_scan_bytes(yy_str, len);
2171 }
2172
2173 YY_BUFFER_STATE yy_scan_bytes(const char * bytes, int len)
2174 {
2175 YY_BUFFER_STATE b;
2176 char * buf;
2177 yy_size_t n;
2178 int i;
2179
2180 n = len + 2;
2181 buf = (char *)yy_flex_alloc(n);
2182 if(!buf)
2183 yy_fatal_error("out of dynamic memory in yy_scan_bytes()");
2184 for(i = 0; i < len; ++i)
2185 buf[i] = bytes[i];
2186 buf[len] = buf[len + 1] = (char)0;
2187 b = yy_scan_buffer(buf, n);
2188 if(!b)
2189 yy_fatal_error("bad buffer in yy_scan_bytes()");
2190 (*b).yy_is_our_buffer = 1;
2191 return b;
2192 }
2193
2194 static void yy_fatal_error(const char msg[])
2195 {
2196 (void)fprintf((bsl_stderr()), "%s\n", msg);
2197 exit(2);
2198 }
2199
2200 static void * yy_flex_alloc(yy_size_t size)
2201 {
2202 return (void *)malloc(size);
2203 }
2204
2205 static void * yy_flex_realloc(void * ptr, yy_size_t size)
2206 {
2207 return (void *)realloc((char *)ptr, size);
2208 }
2209
2210 static void yy_flex_free(void * ptr)
2211 {
2212 free(ptr);
2213 }
2214
2215 yywrap()
2216 {
2217 return (1);
2218 }
2219
2220 int comment()
2221 {
2222 int c, last = 0;
2223
2224 for(; ; )
2225 {
2226 c = input();
2227 if(c == (-1))
2228 break;
2229 if(c == '\n')
2230 {
2231 yylloc.end.charPos = 1;
2232 yylloc.end.pos++;
2233 yylloc.end.line++;
2234 }
2235 else if(c == '\t')
2236 {
2237 yylloc.end.charPos++;
2238 yylloc.end.pos++;
2239 }
2240 else
2241 {
2242 yylloc.end.charPos++;
2243 yylloc.end.pos++;
2244 }
2245 if(c == '/' && last == '*')
2246 break;
2247 last = c;
2248 }
2249 yylloc.start = yylloc.end;
2250 return 0;
2251 }
2252
2253 int commentCPP()
2254 {
2255 int c, last = 0;
2256
2257 for(; ; )
2258 {
2259 c = input();
2260 if(c == (-1))
2261 break;
2262 if(c == '\n')
2263 {
2264 yylloc.end.charPos = 1;
2265 yylloc.end.pos++;
2266 yylloc.end.line++;
2267 break;
2268 }
2269 else if(c == '\t')
2270 {
2271 yylloc.end.charPos++;
2272 yylloc.end.pos++;
2273 }
2274 else
2275 {
2276 yylloc.end.charPos++;
2277 yylloc.end.pos++;
2278 }
2279 last = c;
2280 }
2281 yylloc.start = yylloc.end;
2282 return 0;
2283 }
2284
2285 extern int __ecereNameSpace__ecere__sys__GetValue(char * *  buffer);
2286
2287 extern unsigned int __ecereNameSpace__ecere__sys__GetString(char * *  buffer, char *  string, int max);
2288
2289 extern char *  __ecereNameSpace__ecere__sys__GetExtension(char *  string, char *  output);
2290
2291 extern int strcmp(const char * , const char * );
2292
2293 extern int GetIncludeFileID(char *  includeFile);
2294
2295 extern char *  __ecereNameSpace__ecere__sys__TrimLSpaces(char *  string, char *  output);
2296
2297 extern int strncmp(const char * , const char * , int n);
2298
2299 extern void *  memmove(void * , const void * , unsigned int size);
2300
2301 extern int strlen(const char * );
2302
2303 extern char *  strncpy(char * , const char * , int n);
2304
2305 extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
2306
2307 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
2308
2309 extern unsigned int inCompiler;
2310
2311 extern int FindIncludeFileID(char *  includeFile);
2312
2313 extern struct __ecereNameSpace__ecere__com__Instance * OpenIncludeFile(char *  includeFile);
2314
2315 extern int printf(char * , ...);
2316
2317 int preprocessor()
2318 {
2319 int c, last = 0;
2320 int count = 0;
2321 char line[1024];
2322
2323 line[0] = '\0';
2324 for(; ; )
2325 {
2326 c = input();
2327 if(c == (-1))
2328 break;
2329 if(c == '\n')
2330 {
2331 yylloc.end.charPos = 1;
2332 yylloc.end.pos++;
2333 yylloc.end.line++;
2334 if(last != '\\')
2335 {
2336 char * pointer = line + 1;
2337 int lineNumber;
2338
2339 line[count] = (char)0;
2340 lineNumber = __ecereNameSpace__ecere__sys__GetValue(&pointer);
2341 if(lineNumber)
2342 {
2343 char fileName[797];
2344 int inOut;
2345
2346 __ecereNameSpace__ecere__sys__GetString(&pointer, fileName, (797));
2347 inOut = __ecereNameSpace__ecere__sys__GetValue(&pointer);
2348 if(inOut == 1)
2349 {
2350 char extension[17];
2351
2352 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
2353 __ecereNameSpace__ecere__sys__GetExtension(fileName, extension);
2354 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
2355 declMode = defaultDeclMode = 0;
2356 include_stack_ptr++;
2357 }
2358 else if(inOut == 2)
2359 {
2360 include_stack_ptr--;
2361 defaultDeclMode = declMode = declModeStack[include_stack_ptr];
2362 }
2363 yylloc.end.charPos = 1;
2364 yylloc.end.line = lineNumber;
2365 yylloc.end.included = (include_stack_ptr > 0) ? (unsigned int)GetIncludeFileID(fileName) : (unsigned int)0;
2366 }
2367 break;
2368 }
2369 count = 0;
2370 }
2371 else if(c == '\t')
2372 {
2373 yylloc.end.charPos++;
2374 yylloc.end.pos++;
2375 line[count++] = c;
2376 }
2377 else
2378 {
2379 yylloc.end.pos++;
2380 if(c != '\r')
2381 {
2382 yylloc.end.charPos++;
2383 line[count++] = c;
2384 }
2385 }
2386 last = c;
2387 }
2388 yylloc.start = yylloc.end;
2389 line[count] = (char)0;
2390 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
2391 for(c = 0; line[c] && line[c] != ' '; c++)
2392 ;
2393 if(!strncmp(line, "include", c))
2394 {
2395 char includeFile[797] = "";
2396
2397 memmove(line, line + c, strlen(line + c) + 1);
2398 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
2399 if(line[0] == '\"')
2400 {
2401 for(c = 1; line[c]; c++)
2402 {
2403 if(line[c] == '\"')
2404 {
2405 strncpy(includeFile, line + 1, c - 1);
2406 includeFile[c - 1] = '\0';
2407 break;
2408 }
2409 }
2410 }
2411 else if(line[0] == '<')
2412 {
2413 for(c = 1; line[c]; c++)
2414 if(line[c] == '>')
2415 {
2416 strncpy(includeFile, line + 1, c - 1);
2417 includeFile[c - 1] = '\0';
2418 break;
2419 }
2420 }
2421 if(include_stack_ptr >= (10))
2422 {
2423 fprintf((bsl_stderr()), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Includes nested too deeply", (((void *)0))));
2424 exit(1);
2425 }
2426 if(inCompiler || !FindIncludeFileID(includeFile))
2427 {
2428 struct __ecereNameSpace__ecere__com__Instance * file = OpenIncludeFile(includeFile);
2429
2430 if(file)
2431 {
2432 char extension[17];
2433
2434 fileStack[include_stack_ptr] = fileInput;
2435 locStack[include_stack_ptr] = yylloc;
2436 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
2437 include_stack[include_stack_ptr++] = yy_current_buffer;
2438 yylloc.start.charPos = yylloc.end.charPos = 1;
2439 yylloc.start.line = yylloc.end.line = 1;
2440 yylloc.start.pos = yylloc.end.pos = 0;
2441 yylloc.start.included = yylloc.end.included = (unsigned int)GetIncludeFileID(includeFile);
2442 __ecereNameSpace__ecere__sys__GetExtension(includeFile, extension);
2443 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
2444 declMode = defaultDeclMode = 0;
2445 fileInput = file;
2446 yy_switch_to_buffer(yy_create_buffer(fileInput, 16384));
2447 yy_start = 1 + 2 * (0);
2448 }
2449 else
2450 printf("");
2451 }
2452 }
2453 return 0;
2454 }
2455
2456 void resetScanner()
2457 {
2458 yy_flush_buffer(yy_current_buffer);
2459 yylloc.start.charPos = yylloc.end.charPos = 1;
2460 yylloc.start.line = yylloc.end.line = 1;
2461 yylloc.start.pos = yylloc.end.pos = 0;
2462 yylloc.start.included = yylloc.end.included = 0x0;
2463 expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
2464 expression_yylloc.start.line = expression_yylloc.end.line = 1;
2465 expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
2466 expression_yylloc.start.included = expression_yylloc.end.included = 0x0;
2467 type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
2468 type_yylloc.start.line = type_yylloc.end.line = 1;
2469 type_yylloc.start.pos = type_yylloc.end.pos = 0;
2470 type_yylloc.start.included = type_yylloc.end.included = 0x0;
2471 include_stack_ptr = 0;
2472 }
2473
2474 void resetScannerPos(struct CodePosition * pos)
2475 {
2476 yy_flush_buffer(yy_current_buffer);
2477 yylloc.start = yylloc.end = *pos;
2478 type_yylloc.start = type_yylloc.end = *pos;
2479 expression_yylloc.start = expression_yylloc.end = *pos;
2480 }
2481
2482 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char *  name, char *  baseName, int size, int sizeClass, unsigned int (* )(void * ), void (* )(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
2483
2484 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
2485
2486 struct __ecereNameSpace__ecere__com__NameSpace
2487 {
2488 char *  name;
2489 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
2490 struct __ecereNameSpace__ecere__com__NameSpace *  left;
2491 struct __ecereNameSpace__ecere__com__NameSpace *  right;
2492 int depth;
2493 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
2494 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
2495 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
2496 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
2497 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
2498 };
2499
2500 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
2501
2502 struct __ecereNameSpace__ecere__com__Module
2503 {
2504 struct __ecereNameSpace__ecere__com__Instance * application;
2505 struct __ecereNameSpace__ecere__sys__OldList classes;
2506 struct __ecereNameSpace__ecere__sys__OldList defines;
2507 struct __ecereNameSpace__ecere__sys__OldList functions;
2508 struct __ecereNameSpace__ecere__sys__OldList modules;
2509 struct __ecereNameSpace__ecere__com__Instance * prev;
2510 struct __ecereNameSpace__ecere__com__Instance * next;
2511 char *  name;
2512 void *  library;
2513 void *  Unload;
2514 int importType;
2515 int origImportType;
2516 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
2517 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
2518 };
2519
2520 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, unsigned int size, unsigned int alignment, int declMode);
2521
2522 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
2523
2524 struct __ecereNameSpace__ecere__com__GlobalFunction;
2525
2526 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char *  name, char *  type, void *  func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
2527
2528 void __ecereRegisterModule_lexer(struct __ecereNameSpace__ecere__com__Instance * module)
2529 {
2530 struct __ecereNameSpace__ecere__com__Class * class;
2531
2532 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "yy_buffer_state", 0, sizeof(struct yy_buffer_state), 0, 0, 0, module, 2, 1);
2533 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
2534 __ecereClass_yy_buffer_state = class;
2535 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "yy_input_file", "void *", 4, 4, 1);
2536 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "yy_ch_buf", "char *", 4, 4, 1);
2537 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "yy_buf_pos", "char *", 4, 4, 1);
2538 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "yy_buf_size", "uint", 4, 4, 1);
2539 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "yy_n_chars", "int", 4, 4, 1);
2540 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "yy_is_our_buffer", "int", 4, 4, 1);
2541 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "yy_is_interactive", "int", 4, 4, 1);
2542 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "yy_at_bol", "int", 4, 4, 1);
2543 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "yy_fill_buffer", "int", 4, 4, 1);
2544 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "yy_buffer_status", "int", 4, 4, 1);
2545 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetEchoOn", "void SetEchoOn(bool b)", SetEchoOn, module, 1);
2546 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("TESTTTT", "void TESTTTT(void)", TESTTTT, module, 2);
2547 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetSomeSourceFileStack", "void SetSomeSourceFileStack(char * fileName, int index)", SetSomeSourceFileStack, module, 1);
2548 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("resetScanner", "void resetScanner(void)", resetScanner, module, 1);
2549 }
2550
2551 void __ecereUnregisterModule_lexer(struct __ecereNameSpace__ecere__com__Instance * module)
2552 {
2553
2554 }
2555