1
// created by jay 0.7 (c) 1998 Axel.Schreiner@informatik.uni-osnabrueck.de
3
#line 2 "cs-parser.jay"
5
// cs-parser.jay: The Parser for the C# compiler
7
// Authors: Miguel de Icaza (miguel@gnome.org)
8
// Ravi Pratap (ravi@ximian.com)
9
// Marek Safar (marek.safar@gmail.com)
11
// Dual Licensed under the terms of the GNU GPL and the MIT X11 license
13
// (C) 2001 Ximian, Inc (http://www.ximian.com)
14
// (C) 2004-2011 Novell, Inc
15
// Copyright 2011 Xamarin Inc.
18
// (1) Figure out why error productions dont work. `type-declaration' is a
19
// great spot to put an `error' because you can reproduce it with this input:
26
using System.Collections.Generic;
33
public class CSharpParser
36
enum ParameterModifierType
43
DefaultValue = 1 << 6,
45
All = Ref | Out | This | Params | Arglist | DefaultValue
48
static readonly object ModifierNone = 0;
50
NamespaceContainer current_namespace;
51
TypeContainer current_container;
52
TypeDefinition current_type;
53
PropertyBase current_property;
54
EventProperty current_event;
55
EventField current_event_field;
56
FieldBase current_field;
59
/// Current block is used to add statements as we find
64
BlockVariableDeclaration current_variable;
66
Delegate current_delegate;
68
AnonymousMethodExpression current_anonymous_method;
71
/// This is used by the unary_expression code to resolve
72
/// a name against a parameter.
75
// FIXME: This is very ugly and it's very hard to reset it correctly
76
// on all places, especially when some parameters are autogenerated.
77
ParametersCompiled current_local_parameters;
79
bool parsing_anonymous_method;
84
/// An out-of-band stack.
86
static Stack<object> oob_stack;
89
/// Controls the verbosity of the errors produced by the parser
91
int yacc_verbose_flag;
94
/// Used by the interactive shell, flags whether EOF was reached
95
/// and an error was produced
97
public bool UnexpectedEOF;
100
/// The current file.
102
readonly CompilationSourceFile file;
105
/// Temporary Xml documentation cache.
106
/// For enum types, we need one more temporary store.
109
string enumTypeComment;
111
/// Current attribute target
112
string current_attr_target;
114
ParameterModifierType valid_param_mod;
116
bool default_parameter_used;
118
/// When using the interactive parser, this holds the
119
/// resulting expression
120
public Class InteractiveResult;
123
// Keeps track of global data changes to undo on parser error
127
Stack<Linq.QueryBlock> linq_clause_blocks;
129
ModuleContainer module;
131
readonly CompilerContext compiler;
132
readonly LanguageVersion lang_version;
133
readonly bool doc_support;
134
readonly CompilerSettings settings;
135
readonly Report report;
138
// Instead of allocating carrier array everytime we
139
// share the bucket for very common constructs which can never
142
static List<Parameter> parameters_bucket = new List<Parameter> (6);
145
// Full AST support members
148
List<Tuple<Modifiers, Location>> mod_locations;
149
Location parameterModifierLocation, savedLocation, savedOpenLocation, savedCloseLocation;
150
Location savedAttrParenOpenLocation, savedAttrParenCloseLocation, savedOperatorLocation;
151
Stack<List<Location>> locationListStack = new Stack<List<Location>> (); // used for type parameters
152
Stack<Location> opt_intoStack = new Stack<Location> ();
154
bool HadAttributeParens;
155
List<Location> attributeCommas = new List<Location> ();
156
List<Location> attributeArgumentCommas = new List<Location> ();
157
List<Location> parameterListCommas = new List<Location> ();
160
/** error output stream.
161
It should be changeable.
163
public System.IO.TextWriter ErrorOutput = System.Console.Out;
165
/** simplified error message.
166
@see <a href="#yyerror(java.lang.String, java.lang.String[])">yyerror</a>
168
public void yyerror (string message) {
169
yyerror(message, null);
173
public int eof_token;
175
/** (syntax) error message.
176
Can be overwritten to control message format.
177
@param message text to be displayed.
178
@param expected vector of acceptable tokens, if available.
180
public void yyerror (string message, string[] expected) {
181
if ((yacc_verbose_flag > 0) && (expected != null) && (expected.Length > 0)) {
182
ErrorOutput.Write (message+", expecting");
183
for (int n = 0; n < expected.Length; ++ n)
184
ErrorOutput.Write (" "+expected[n]);
185
ErrorOutput.WriteLine ();
187
ErrorOutput.WriteLine (message);
190
/** debugging support, requires the package jay.yydebug.
191
Set to null to suppress debugging messages.
193
//t internal yydebug.yyDebug debug;
195
protected const int yyFinal = 7;
196
//t // Put this array into a separate class so it is only initialized if debugging is actually used
197
//t // Use MarshalByRefObject to disable inlining
198
//t class YYRules : MarshalByRefObject {
199
//t public static readonly string [] yyRule = {
200
//t "$accept : compilation_unit",
201
//t "compilation_unit : outer_declaration opt_EOF",
203
//t "compilation_unit : interactive_parsing $$1 opt_EOF",
204
//t "compilation_unit : documentation_parsing",
205
//t "outer_declaration : opt_extern_alias_directives opt_using_directives",
206
//t "outer_declaration : opt_extern_alias_directives opt_using_directives namespace_or_type_declarations opt_attributes",
207
//t "outer_declaration : opt_extern_alias_directives opt_using_directives attribute_sections",
208
//t "outer_declaration : error",
211
//t "extern_alias_directives : extern_alias_directive",
212
//t "extern_alias_directives : extern_alias_directives extern_alias_directive",
213
//t "extern_alias_directive : EXTERN_ALIAS IDENTIFIER IDENTIFIER SEMICOLON",
214
//t "extern_alias_directive : EXTERN_ALIAS error",
215
//t "using_directives : using_directive",
216
//t "using_directives : using_directives using_directive",
217
//t "using_directive : using_namespace",
218
//t "using_namespace : USING namespace_or_type_expr SEMICOLON",
219
//t "using_namespace : USING IDENTIFIER ASSIGN namespace_or_type_expr SEMICOLON",
220
//t "using_namespace : USING error",
223
//t "namespace_declaration : opt_attributes NAMESPACE namespace_name $$2 OPEN_BRACE $$3 opt_extern_alias_directives opt_using_directives opt_namespace_or_type_declarations CLOSE_BRACE opt_semicolon",
224
//t "namespace_name : IDENTIFIER",
225
//t "namespace_name : namespace_name DOT IDENTIFIER",
226
//t "namespace_name : error",
227
//t "opt_semicolon :",
228
//t "opt_semicolon : SEMICOLON",
230
//t "opt_comma : COMMA",
231
//t "opt_using_directives :",
232
//t "opt_using_directives : using_directives",
233
//t "opt_extern_alias_directives :",
234
//t "opt_extern_alias_directives : extern_alias_directives",
235
//t "opt_namespace_or_type_declarations :",
236
//t "opt_namespace_or_type_declarations : namespace_or_type_declarations",
237
//t "namespace_or_type_declarations : namespace_or_type_declaration",
238
//t "namespace_or_type_declarations : namespace_or_type_declarations namespace_or_type_declaration",
239
//t "namespace_or_type_declaration : type_declaration",
240
//t "namespace_or_type_declaration : namespace_declaration",
241
//t "namespace_or_type_declaration : attribute_sections CLOSE_BRACE",
242
//t "type_declaration : class_declaration",
243
//t "type_declaration : struct_declaration",
244
//t "type_declaration : interface_declaration",
245
//t "type_declaration : enum_declaration",
246
//t "type_declaration : delegate_declaration",
247
//t "opt_attributes :",
248
//t "opt_attributes : attribute_sections",
249
//t "attribute_sections : attribute_section",
250
//t "attribute_sections : attribute_sections attribute_section",
252
//t "attribute_section : OPEN_BRACKET $$4 attribute_section_cont",
254
//t "attribute_section_cont : attribute_target COLON $$5 attribute_list opt_comma CLOSE_BRACKET",
255
//t "attribute_section_cont : attribute_list opt_comma CLOSE_BRACKET",
256
//t "attribute_target : IDENTIFIER",
257
//t "attribute_target : EVENT",
258
//t "attribute_target : RETURN",
259
//t "attribute_target : error",
260
//t "attribute_list : attribute",
261
//t "attribute_list : attribute_list COMMA attribute",
263
//t "attribute : attribute_name $$6 opt_attribute_arguments",
264
//t "attribute_name : namespace_or_type_expr",
265
//t "opt_attribute_arguments :",
266
//t "opt_attribute_arguments : OPEN_PARENS attribute_arguments CLOSE_PARENS",
267
//t "attribute_arguments :",
268
//t "attribute_arguments : positional_or_named_argument",
269
//t "attribute_arguments : named_attribute_argument",
270
//t "attribute_arguments : attribute_arguments COMMA positional_or_named_argument",
271
//t "attribute_arguments : attribute_arguments COMMA named_attribute_argument",
272
//t "positional_or_named_argument : expression",
273
//t "positional_or_named_argument : named_argument",
275
//t "named_attribute_argument : IDENTIFIER ASSIGN $$7 expression",
276
//t "named_argument : identifier_inside_body COLON opt_named_modifier expression",
277
//t "opt_named_modifier :",
278
//t "opt_named_modifier : REF",
279
//t "opt_named_modifier : OUT",
280
//t "opt_class_member_declarations :",
281
//t "opt_class_member_declarations : class_member_declarations",
282
//t "class_member_declarations : class_member_declaration",
283
//t "class_member_declarations : class_member_declarations class_member_declaration",
284
//t "class_member_declaration : constant_declaration",
285
//t "class_member_declaration : field_declaration",
286
//t "class_member_declaration : method_declaration",
287
//t "class_member_declaration : property_declaration",
288
//t "class_member_declaration : event_declaration",
289
//t "class_member_declaration : indexer_declaration",
290
//t "class_member_declaration : operator_declaration",
291
//t "class_member_declaration : constructor_declaration",
292
//t "class_member_declaration : destructor_declaration",
293
//t "class_member_declaration : type_declaration",
294
//t "class_member_declaration : attributes_without_members",
295
//t "class_member_declaration : error",
301
//t "struct_declaration : opt_attributes opt_modifiers opt_partial STRUCT $$8 type_declaration_name $$9 opt_class_base opt_type_parameter_constraints_clauses $$10 OPEN_BRACE $$11 opt_class_member_declarations CLOSE_BRACE $$12 opt_semicolon",
302
//t "struct_declaration : opt_attributes opt_modifiers opt_partial STRUCT error",
304
//t "constant_declaration : opt_attributes opt_modifiers CONST type IDENTIFIER $$13 constant_initializer opt_constant_declarators SEMICOLON",
305
//t "opt_constant_declarators :",
306
//t "opt_constant_declarators : constant_declarators",
307
//t "constant_declarators : constant_declarator",
308
//t "constant_declarators : constant_declarators constant_declarator",
309
//t "constant_declarator : COMMA IDENTIFIER constant_initializer",
311
//t "constant_initializer : ASSIGN $$14 constant_initializer_expr",
312
//t "constant_initializer : error",
313
//t "constant_initializer_expr : constant_expression",
314
//t "constant_initializer_expr : array_initializer",
316
//t "field_declaration : opt_attributes opt_modifiers member_type IDENTIFIER $$15 opt_field_initializer opt_field_declarators SEMICOLON",
318
//t "field_declaration : opt_attributes opt_modifiers FIXED simple_type IDENTIFIER $$16 fixed_field_size opt_fixed_field_declarators SEMICOLON",
319
//t "field_declaration : opt_attributes opt_modifiers FIXED simple_type error SEMICOLON",
320
//t "opt_field_initializer :",
322
//t "opt_field_initializer : ASSIGN $$17 variable_initializer",
323
//t "opt_field_declarators :",
324
//t "opt_field_declarators : field_declarators",
325
//t "field_declarators : field_declarator",
326
//t "field_declarators : field_declarators field_declarator",
327
//t "field_declarator : COMMA IDENTIFIER",
329
//t "field_declarator : COMMA IDENTIFIER ASSIGN $$18 variable_initializer",
330
//t "opt_fixed_field_declarators :",
331
//t "opt_fixed_field_declarators : fixed_field_declarators",
332
//t "fixed_field_declarators : fixed_field_declarator",
333
//t "fixed_field_declarators : fixed_field_declarators fixed_field_declarator",
334
//t "fixed_field_declarator : COMMA IDENTIFIER fixed_field_size",
336
//t "fixed_field_size : OPEN_BRACKET $$19 expression CLOSE_BRACKET",
337
//t "fixed_field_size : OPEN_BRACKET error",
338
//t "variable_initializer : expression",
339
//t "variable_initializer : array_initializer",
340
//t "variable_initializer : error",
342
//t "method_declaration : method_header $$20 method_body",
345
//t "method_header : opt_attributes opt_modifiers member_type method_declaration_name OPEN_PARENS $$21 opt_formal_parameter_list CLOSE_PARENS $$22 opt_type_parameter_constraints_clauses",
349
//t "method_header : opt_attributes opt_modifiers PARTIAL VOID $$23 method_declaration_name OPEN_PARENS $$24 opt_formal_parameter_list CLOSE_PARENS $$25 opt_type_parameter_constraints_clauses",
350
//t "method_header : opt_attributes opt_modifiers member_type modifiers method_declaration_name OPEN_PARENS opt_formal_parameter_list CLOSE_PARENS",
351
//t "method_header : opt_attributes opt_modifiers member_type method_declaration_name error",
352
//t "method_body : block",
353
//t "method_body : SEMICOLON",
354
//t "opt_formal_parameter_list :",
355
//t "opt_formal_parameter_list : formal_parameter_list",
356
//t "formal_parameter_list : fixed_parameters",
357
//t "formal_parameter_list : fixed_parameters COMMA parameter_array",
358
//t "formal_parameter_list : fixed_parameters COMMA arglist_modifier",
359
//t "formal_parameter_list : parameter_array COMMA error",
360
//t "formal_parameter_list : fixed_parameters COMMA parameter_array COMMA error",
361
//t "formal_parameter_list : arglist_modifier COMMA error",
362
//t "formal_parameter_list : fixed_parameters COMMA ARGLIST COMMA error",
363
//t "formal_parameter_list : parameter_array",
364
//t "formal_parameter_list : arglist_modifier",
365
//t "formal_parameter_list : error",
366
//t "fixed_parameters : fixed_parameter",
367
//t "fixed_parameters : fixed_parameters COMMA fixed_parameter",
368
//t "fixed_parameter : opt_attributes opt_parameter_modifier parameter_type IDENTIFIER",
369
//t "fixed_parameter : opt_attributes opt_parameter_modifier parameter_type IDENTIFIER OPEN_BRACKET CLOSE_BRACKET",
370
//t "fixed_parameter : attribute_sections error",
371
//t "fixed_parameter : opt_attributes opt_parameter_modifier parameter_type error",
373
//t "fixed_parameter : opt_attributes opt_parameter_modifier parameter_type IDENTIFIER ASSIGN $$26 constant_expression",
374
//t "opt_parameter_modifier :",
375
//t "opt_parameter_modifier : parameter_modifiers",
376
//t "parameter_modifiers : parameter_modifier",
377
//t "parameter_modifiers : parameter_modifiers parameter_modifier",
378
//t "parameter_modifier : REF",
379
//t "parameter_modifier : OUT",
380
//t "parameter_modifier : THIS",
381
//t "parameter_array : opt_attributes params_modifier type IDENTIFIER",
382
//t "parameter_array : opt_attributes params_modifier type IDENTIFIER ASSIGN constant_expression",
383
//t "parameter_array : opt_attributes params_modifier type error",
384
//t "params_modifier : PARAMS",
385
//t "params_modifier : PARAMS parameter_modifier",
386
//t "params_modifier : PARAMS params_modifier",
387
//t "arglist_modifier : ARGLIST",
391
//t "property_declaration : opt_attributes opt_modifiers member_type member_declaration_name $$27 OPEN_BRACE $$28 accessor_declarations $$29 CLOSE_BRACE",
395
//t "indexer_declaration : opt_attributes opt_modifiers member_type indexer_declaration_name OPEN_BRACKET $$30 opt_formal_parameter_list CLOSE_BRACKET OPEN_BRACE $$31 accessor_declarations $$32 CLOSE_BRACE",
396
//t "accessor_declarations : get_accessor_declaration",
397
//t "accessor_declarations : get_accessor_declaration accessor_declarations",
398
//t "accessor_declarations : set_accessor_declaration",
399
//t "accessor_declarations : set_accessor_declaration accessor_declarations",
400
//t "accessor_declarations : error",
402
//t "get_accessor_declaration : opt_attributes opt_modifiers GET $$33 accessor_body",
404
//t "set_accessor_declaration : opt_attributes opt_modifiers SET $$34 accessor_body",
405
//t "accessor_body : block",
406
//t "accessor_body : SEMICOLON",
407
//t "accessor_body : error",
412
//t "interface_declaration : opt_attributes opt_modifiers opt_partial INTERFACE $$35 type_declaration_name $$36 opt_class_base opt_type_parameter_constraints_clauses $$37 OPEN_BRACE opt_interface_member_declarations CLOSE_BRACE $$38 opt_semicolon",
413
//t "interface_declaration : opt_attributes opt_modifiers opt_partial INTERFACE error",
414
//t "opt_interface_member_declarations :",
415
//t "opt_interface_member_declarations : interface_member_declarations",
416
//t "interface_member_declarations : interface_member_declaration",
417
//t "interface_member_declarations : interface_member_declarations interface_member_declaration",
418
//t "interface_member_declaration : constant_declaration",
419
//t "interface_member_declaration : field_declaration",
420
//t "interface_member_declaration : method_declaration",
421
//t "interface_member_declaration : property_declaration",
422
//t "interface_member_declaration : event_declaration",
423
//t "interface_member_declaration : indexer_declaration",
424
//t "interface_member_declaration : operator_declaration",
425
//t "interface_member_declaration : constructor_declaration",
426
//t "interface_member_declaration : type_declaration",
428
//t "operator_declaration : opt_attributes opt_modifiers operator_declarator $$39 operator_body",
429
//t "operator_body : block",
430
//t "operator_body : SEMICOLON",
431
//t "operator_type : type_expression_or_array",
432
//t "operator_type : VOID",
434
//t "operator_declarator : operator_type OPERATOR overloadable_operator OPEN_PARENS $$40 opt_formal_parameter_list CLOSE_PARENS",
435
//t "operator_declarator : conversion_operator_declarator",
436
//t "overloadable_operator : BANG",
437
//t "overloadable_operator : TILDE",
438
//t "overloadable_operator : OP_INC",
439
//t "overloadable_operator : OP_DEC",
440
//t "overloadable_operator : TRUE",
441
//t "overloadable_operator : FALSE",
442
//t "overloadable_operator : PLUS",
443
//t "overloadable_operator : MINUS",
444
//t "overloadable_operator : STAR",
445
//t "overloadable_operator : DIV",
446
//t "overloadable_operator : PERCENT",
447
//t "overloadable_operator : BITWISE_AND",
448
//t "overloadable_operator : BITWISE_OR",
449
//t "overloadable_operator : CARRET",
450
//t "overloadable_operator : OP_SHIFT_LEFT",
451
//t "overloadable_operator : OP_SHIFT_RIGHT",
452
//t "overloadable_operator : OP_EQ",
453
//t "overloadable_operator : OP_NE",
454
//t "overloadable_operator : OP_GT",
455
//t "overloadable_operator : OP_LT",
456
//t "overloadable_operator : OP_GE",
457
//t "overloadable_operator : OP_LE",
459
//t "conversion_operator_declarator : IMPLICIT OPERATOR type OPEN_PARENS $$41 opt_formal_parameter_list CLOSE_PARENS",
461
//t "conversion_operator_declarator : EXPLICIT OPERATOR type OPEN_PARENS $$42 opt_formal_parameter_list CLOSE_PARENS",
462
//t "conversion_operator_declarator : IMPLICIT error",
463
//t "conversion_operator_declarator : EXPLICIT error",
464
//t "constructor_declaration : constructor_declarator constructor_body",
467
//t "constructor_declarator : opt_attributes opt_modifiers IDENTIFIER $$43 OPEN_PARENS opt_formal_parameter_list CLOSE_PARENS $$44 opt_constructor_initializer",
468
//t "constructor_body : block_prepared",
469
//t "constructor_body : SEMICOLON",
470
//t "opt_constructor_initializer :",
471
//t "opt_constructor_initializer : constructor_initializer",
473
//t "constructor_initializer : COLON BASE OPEN_PARENS $$45 opt_argument_list CLOSE_PARENS",
475
//t "constructor_initializer : COLON THIS OPEN_PARENS $$46 opt_argument_list CLOSE_PARENS",
476
//t "constructor_initializer : COLON error",
477
//t "constructor_initializer : error",
479
//t "destructor_declaration : opt_attributes opt_modifiers TILDE $$47 IDENTIFIER OPEN_PARENS CLOSE_PARENS method_body",
481
//t "event_declaration : opt_attributes opt_modifiers EVENT type member_declaration_name $$48 opt_event_initializer opt_event_declarators SEMICOLON",
484
//t "event_declaration : opt_attributes opt_modifiers EVENT type member_declaration_name OPEN_BRACE $$49 event_accessor_declarations $$50 CLOSE_BRACE",
485
//t "opt_event_initializer :",
487
//t "opt_event_initializer : ASSIGN $$51 event_variable_initializer",
488
//t "opt_event_declarators :",
489
//t "opt_event_declarators : event_declarators",
490
//t "event_declarators : event_declarator",
491
//t "event_declarators : event_declarators event_declarator",
492
//t "event_declarator : COMMA IDENTIFIER",
494
//t "event_declarator : COMMA IDENTIFIER ASSIGN $$52 event_variable_initializer",
496
//t "event_variable_initializer : $$53 variable_initializer",
497
//t "event_accessor_declarations : add_accessor_declaration remove_accessor_declaration",
498
//t "event_accessor_declarations : remove_accessor_declaration add_accessor_declaration",
499
//t "event_accessor_declarations : add_accessor_declaration",
500
//t "event_accessor_declarations : remove_accessor_declaration",
501
//t "event_accessor_declarations : error",
503
//t "add_accessor_declaration : opt_attributes opt_modifiers ADD $$54 event_accessor_block",
505
//t "remove_accessor_declaration : opt_attributes opt_modifiers REMOVE $$55 event_accessor_block",
506
//t "event_accessor_block : opt_semicolon",
507
//t "event_accessor_block : block",
508
//t "attributes_without_members : attribute_sections CLOSE_BRACE",
512
//t "enum_declaration : opt_attributes opt_modifiers ENUM type_declaration_name opt_enum_base $$56 OPEN_BRACE $$57 opt_enum_member_declarations $$58 CLOSE_BRACE opt_semicolon",
513
//t "opt_enum_base :",
514
//t "opt_enum_base : COLON type",
515
//t "opt_enum_base : COLON error",
516
//t "opt_enum_member_declarations :",
517
//t "opt_enum_member_declarations : enum_member_declarations",
518
//t "opt_enum_member_declarations : enum_member_declarations COMMA",
519
//t "enum_member_declarations : enum_member_declaration",
520
//t "enum_member_declarations : enum_member_declarations COMMA enum_member_declaration",
521
//t "enum_member_declaration : opt_attributes IDENTIFIER",
523
//t "enum_member_declaration : opt_attributes IDENTIFIER $$59 ASSIGN constant_expression",
527
//t "delegate_declaration : opt_attributes opt_modifiers DELEGATE member_type type_declaration_name OPEN_PARENS $$60 opt_formal_parameter_list CLOSE_PARENS $$61 opt_type_parameter_constraints_clauses $$62 SEMICOLON",
528
//t "opt_nullable :",
529
//t "opt_nullable : INTERR_NULLABLE",
530
//t "namespace_or_type_expr : member_name",
531
//t "namespace_or_type_expr : qualified_alias_member IDENTIFIER opt_type_argument_list",
532
//t "member_name : simple_name_expr",
533
//t "member_name : namespace_or_type_expr DOT IDENTIFIER opt_type_argument_list",
534
//t "simple_name_expr : IDENTIFIER opt_type_argument_list",
535
//t "opt_type_argument_list :",
536
//t "opt_type_argument_list : OP_GENERICS_LT type_arguments OP_GENERICS_GT",
537
//t "opt_type_argument_list : OP_GENERICS_LT error",
538
//t "type_arguments : type",
539
//t "type_arguments : type_arguments COMMA type",
541
//t "type_declaration_name : IDENTIFIER $$63 opt_type_parameter_list",
542
//t "member_declaration_name : method_declaration_name",
543
//t "method_declaration_name : type_declaration_name",
544
//t "method_declaration_name : explicit_interface IDENTIFIER opt_type_parameter_list",
545
//t "indexer_declaration_name : THIS",
546
//t "indexer_declaration_name : explicit_interface THIS",
547
//t "explicit_interface : IDENTIFIER opt_type_argument_list DOT",
548
//t "explicit_interface : qualified_alias_member IDENTIFIER opt_type_argument_list DOT",
549
//t "explicit_interface : explicit_interface IDENTIFIER opt_type_argument_list DOT",
550
//t "opt_type_parameter_list :",
551
//t "opt_type_parameter_list : OP_GENERICS_LT_DECL type_parameters OP_GENERICS_GT",
552
//t "type_parameters : type_parameter",
553
//t "type_parameters : type_parameters COMMA type_parameter",
554
//t "type_parameter : opt_attributes opt_type_parameter_variance IDENTIFIER",
555
//t "type_parameter : error",
556
//t "type_and_void : type_expression_or_array",
557
//t "type_and_void : VOID",
558
//t "member_type : type_and_void",
559
//t "type : type_expression_or_array",
561
//t "simple_type : type_expression",
562
//t "simple_type : VOID",
563
//t "parameter_type : type_expression_or_array",
564
//t "parameter_type : VOID",
565
//t "type_expression_or_array : type_expression",
566
//t "type_expression_or_array : type_expression rank_specifiers",
567
//t "type_expression : namespace_or_type_expr opt_nullable",
568
//t "type_expression : namespace_or_type_expr pointer_stars",
569
//t "type_expression : builtin_types opt_nullable",
570
//t "type_expression : builtin_types pointer_stars",
571
//t "type_expression : VOID pointer_stars",
572
//t "type_list : base_type_name",
573
//t "type_list : type_list COMMA base_type_name",
574
//t "base_type_name : type",
575
//t "builtin_types : OBJECT",
576
//t "builtin_types : STRING",
577
//t "builtin_types : BOOL",
578
//t "builtin_types : DECIMAL",
579
//t "builtin_types : FLOAT",
580
//t "builtin_types : DOUBLE",
581
//t "builtin_types : integral_type",
582
//t "integral_type : SBYTE",
583
//t "integral_type : BYTE",
584
//t "integral_type : SHORT",
585
//t "integral_type : USHORT",
586
//t "integral_type : INT",
587
//t "integral_type : UINT",
588
//t "integral_type : LONG",
589
//t "integral_type : ULONG",
590
//t "integral_type : CHAR",
591
//t "primary_expression : primary_expression_or_type",
592
//t "primary_expression : literal",
593
//t "primary_expression : array_creation_expression",
594
//t "primary_expression : parenthesized_expression",
595
//t "primary_expression : default_value_expression",
596
//t "primary_expression : invocation_expression",
597
//t "primary_expression : element_access",
598
//t "primary_expression : this_access",
599
//t "primary_expression : base_access",
600
//t "primary_expression : post_increment_expression",
601
//t "primary_expression : post_decrement_expression",
602
//t "primary_expression : object_or_delegate_creation_expression",
603
//t "primary_expression : anonymous_type_expression",
604
//t "primary_expression : typeof_expression",
605
//t "primary_expression : sizeof_expression",
606
//t "primary_expression : checked_expression",
607
//t "primary_expression : unchecked_expression",
608
//t "primary_expression : pointer_member_access",
609
//t "primary_expression : anonymous_method_expression",
610
//t "primary_expression : undocumented_expressions",
611
//t "primary_expression_or_type : IDENTIFIER opt_type_argument_list",
612
//t "primary_expression_or_type : IDENTIFIER GENERATE_COMPLETION",
613
//t "primary_expression_or_type : member_access",
614
//t "literal : boolean_literal",
615
//t "literal : LITERAL",
616
//t "literal : NULL",
617
//t "boolean_literal : TRUE",
618
//t "boolean_literal : FALSE",
619
//t "open_parens_any : OPEN_PARENS",
620
//t "open_parens_any : OPEN_PARENS_CAST",
621
//t "close_parens : CLOSE_PARENS",
622
//t "close_parens : COMPLETE_COMPLETION",
623
//t "parenthesized_expression : OPEN_PARENS expression CLOSE_PARENS",
624
//t "parenthesized_expression : OPEN_PARENS expression COMPLETE_COMPLETION",
625
//t "member_access : primary_expression DOT IDENTIFIER opt_type_argument_list",
626
//t "member_access : builtin_types DOT IDENTIFIER opt_type_argument_list",
627
//t "member_access : BASE DOT IDENTIFIER opt_type_argument_list",
628
//t "member_access : qualified_alias_member IDENTIFIER opt_type_argument_list",
629
//t "member_access : primary_expression DOT GENERATE_COMPLETION",
630
//t "member_access : primary_expression DOT IDENTIFIER GENERATE_COMPLETION",
631
//t "member_access : builtin_types DOT GENERATE_COMPLETION",
632
//t "member_access : builtin_types DOT IDENTIFIER GENERATE_COMPLETION",
633
//t "invocation_expression : primary_expression open_parens_any opt_argument_list close_parens",
634
//t "opt_object_or_collection_initializer :",
635
//t "opt_object_or_collection_initializer : object_or_collection_initializer",
636
//t "object_or_collection_initializer : OPEN_BRACE opt_member_initializer_list close_brace_or_complete_completion",
637
//t "object_or_collection_initializer : OPEN_BRACE member_initializer_list COMMA CLOSE_BRACE",
638
//t "opt_member_initializer_list :",
639
//t "opt_member_initializer_list : member_initializer_list",
640
//t "member_initializer_list : member_initializer",
641
//t "member_initializer_list : member_initializer_list COMMA member_initializer",
642
//t "member_initializer_list : member_initializer_list error",
643
//t "member_initializer : IDENTIFIER ASSIGN initializer_value",
644
//t "member_initializer : GENERATE_COMPLETION",
645
//t "member_initializer : non_assignment_expression opt_COMPLETE_COMPLETION",
646
//t "member_initializer : OPEN_BRACE expression_list CLOSE_BRACE",
647
//t "member_initializer : OPEN_BRACE CLOSE_BRACE",
648
//t "initializer_value : expression",
649
//t "initializer_value : object_or_collection_initializer",
650
//t "opt_argument_list :",
651
//t "opt_argument_list : argument_list",
652
//t "argument_list : argument_or_named_argument",
653
//t "argument_list : argument_list COMMA argument",
654
//t "argument_list : argument_list COMMA named_argument",
655
//t "argument_list : argument_list COMMA error",
656
//t "argument_list : COMMA error",
657
//t "argument : expression",
658
//t "argument : non_simple_argument",
659
//t "argument_or_named_argument : argument",
660
//t "argument_or_named_argument : named_argument",
661
//t "non_simple_argument : REF variable_reference",
662
//t "non_simple_argument : OUT variable_reference",
663
//t "non_simple_argument : ARGLIST OPEN_PARENS argument_list CLOSE_PARENS",
664
//t "non_simple_argument : ARGLIST OPEN_PARENS CLOSE_PARENS",
665
//t "variable_reference : expression",
666
//t "element_access : primary_expression OPEN_BRACKET_EXPR expression_list_arguments CLOSE_BRACKET",
667
//t "element_access : primary_expression OPEN_BRACKET_EXPR expression_list_arguments error",
668
//t "element_access : primary_expression OPEN_BRACKET_EXPR error",
669
//t "expression_list : expression",
670
//t "expression_list : expression_list COMMA expression",
671
//t "expression_list : expression_list error",
672
//t "expression_list_arguments : expression_list_argument",
673
//t "expression_list_arguments : expression_list_arguments COMMA expression_list_argument",
674
//t "expression_list_argument : expression",
675
//t "expression_list_argument : named_argument",
676
//t "this_access : THIS",
677
//t "base_access : BASE OPEN_BRACKET_EXPR expression_list_arguments CLOSE_BRACKET",
678
//t "base_access : BASE OPEN_BRACKET error",
679
//t "post_increment_expression : primary_expression OP_INC",
680
//t "post_decrement_expression : primary_expression OP_DEC",
681
//t "object_or_delegate_creation_expression : NEW new_expr_type open_parens_any opt_argument_list CLOSE_PARENS opt_object_or_collection_initializer",
682
//t "object_or_delegate_creation_expression : NEW new_expr_type object_or_collection_initializer",
683
//t "array_creation_expression : NEW new_expr_type OPEN_BRACKET_EXPR expression_list CLOSE_BRACKET opt_rank_specifier opt_array_initializer",
684
//t "array_creation_expression : NEW new_expr_type rank_specifiers opt_array_initializer",
685
//t "array_creation_expression : NEW rank_specifier array_initializer",
686
//t "array_creation_expression : NEW new_expr_type OPEN_BRACKET CLOSE_BRACKET OPEN_BRACKET_EXPR error CLOSE_BRACKET",
687
//t "array_creation_expression : NEW new_expr_type error",
689
//t "new_expr_type : $$64 simple_type",
690
//t "anonymous_type_expression : NEW OPEN_BRACE anonymous_type_parameters_opt_comma CLOSE_BRACE",
691
//t "anonymous_type_parameters_opt_comma : anonymous_type_parameters_opt",
692
//t "anonymous_type_parameters_opt_comma : anonymous_type_parameters COMMA",
693
//t "anonymous_type_parameters_opt :",
694
//t "anonymous_type_parameters_opt : anonymous_type_parameters",
695
//t "anonymous_type_parameters : anonymous_type_parameter",
696
//t "anonymous_type_parameters : anonymous_type_parameters COMMA anonymous_type_parameter",
697
//t "anonymous_type_parameter : IDENTIFIER ASSIGN variable_initializer",
698
//t "anonymous_type_parameter : IDENTIFIER",
699
//t "anonymous_type_parameter : member_access",
700
//t "anonymous_type_parameter : error",
701
//t "opt_rank_specifier :",
702
//t "opt_rank_specifier : rank_specifiers",
703
//t "rank_specifiers : rank_specifier",
704
//t "rank_specifiers : rank_specifier rank_specifiers",
705
//t "rank_specifier : OPEN_BRACKET CLOSE_BRACKET",
706
//t "rank_specifier : OPEN_BRACKET dim_separators CLOSE_BRACKET",
707
//t "dim_separators : COMMA",
708
//t "dim_separators : dim_separators COMMA",
709
//t "opt_array_initializer :",
710
//t "opt_array_initializer : array_initializer",
711
//t "array_initializer : OPEN_BRACE CLOSE_BRACE",
712
//t "array_initializer : OPEN_BRACE variable_initializer_list opt_comma CLOSE_BRACE",
713
//t "variable_initializer_list : variable_initializer",
714
//t "variable_initializer_list : variable_initializer_list COMMA variable_initializer",
716
//t "typeof_expression : TYPEOF $$65 open_parens_any typeof_type_expression CLOSE_PARENS",
717
//t "typeof_type_expression : type_and_void",
718
//t "typeof_type_expression : unbound_type_name",
719
//t "typeof_type_expression : error",
720
//t "unbound_type_name : identifier_inside_body generic_dimension",
721
//t "unbound_type_name : qualified_alias_member identifier_inside_body generic_dimension",
722
//t "unbound_type_name : unbound_type_name DOT identifier_inside_body",
723
//t "unbound_type_name : unbound_type_name DOT identifier_inside_body generic_dimension",
724
//t "unbound_type_name : namespace_or_type_expr DOT identifier_inside_body generic_dimension",
725
//t "generic_dimension : GENERIC_DIMENSION",
726
//t "qualified_alias_member : IDENTIFIER DOUBLE_COLON",
727
//t "sizeof_expression : SIZEOF open_parens_any type CLOSE_PARENS",
728
//t "checked_expression : CHECKED open_parens_any expression CLOSE_PARENS",
729
//t "unchecked_expression : UNCHECKED open_parens_any expression CLOSE_PARENS",
730
//t "pointer_member_access : primary_expression OP_PTR IDENTIFIER opt_type_argument_list",
732
//t "anonymous_method_expression : DELEGATE opt_anonymous_method_signature $$66 block",
734
//t "anonymous_method_expression : ASYNC DELEGATE opt_anonymous_method_signature $$67 block",
735
//t "opt_anonymous_method_signature :",
736
//t "opt_anonymous_method_signature : anonymous_method_signature",
738
//t "anonymous_method_signature : OPEN_PARENS $$68 opt_formal_parameter_list CLOSE_PARENS",
739
//t "default_value_expression : DEFAULT open_parens_any type CLOSE_PARENS",
740
//t "unary_expression : primary_expression",
741
//t "unary_expression : BANG prefixed_unary_expression",
742
//t "unary_expression : TILDE prefixed_unary_expression",
743
//t "unary_expression : OPEN_PARENS_CAST type CLOSE_PARENS prefixed_unary_expression",
744
//t "unary_expression : AWAIT prefixed_unary_expression",
745
//t "prefixed_unary_expression : unary_expression",
746
//t "prefixed_unary_expression : PLUS prefixed_unary_expression",
747
//t "prefixed_unary_expression : MINUS prefixed_unary_expression",
748
//t "prefixed_unary_expression : OP_INC prefixed_unary_expression",
749
//t "prefixed_unary_expression : OP_DEC prefixed_unary_expression",
750
//t "prefixed_unary_expression : STAR prefixed_unary_expression",
751
//t "prefixed_unary_expression : BITWISE_AND prefixed_unary_expression",
752
//t "multiplicative_expression : prefixed_unary_expression",
753
//t "multiplicative_expression : multiplicative_expression STAR prefixed_unary_expression",
754
//t "multiplicative_expression : multiplicative_expression DIV prefixed_unary_expression",
755
//t "multiplicative_expression : multiplicative_expression PERCENT prefixed_unary_expression",
756
//t "additive_expression : multiplicative_expression",
757
//t "additive_expression : additive_expression PLUS multiplicative_expression",
758
//t "additive_expression : additive_expression MINUS multiplicative_expression",
759
//t "additive_expression : parenthesized_expression MINUS multiplicative_expression",
760
//t "additive_expression : additive_expression AS type",
761
//t "additive_expression : additive_expression IS type",
762
//t "shift_expression : additive_expression",
763
//t "shift_expression : shift_expression OP_SHIFT_LEFT additive_expression",
764
//t "shift_expression : shift_expression OP_SHIFT_RIGHT additive_expression",
765
//t "relational_expression : shift_expression",
766
//t "relational_expression : relational_expression OP_LT shift_expression",
767
//t "relational_expression : relational_expression OP_GT shift_expression",
768
//t "relational_expression : relational_expression OP_LE shift_expression",
769
//t "relational_expression : relational_expression OP_GE shift_expression",
770
//t "equality_expression : relational_expression",
771
//t "equality_expression : equality_expression OP_EQ relational_expression",
772
//t "equality_expression : equality_expression OP_NE relational_expression",
773
//t "and_expression : equality_expression",
774
//t "and_expression : and_expression BITWISE_AND equality_expression",
775
//t "exclusive_or_expression : and_expression",
776
//t "exclusive_or_expression : exclusive_or_expression CARRET and_expression",
777
//t "inclusive_or_expression : exclusive_or_expression",
778
//t "inclusive_or_expression : inclusive_or_expression BITWISE_OR exclusive_or_expression",
779
//t "conditional_and_expression : inclusive_or_expression",
780
//t "conditional_and_expression : conditional_and_expression OP_AND inclusive_or_expression",
781
//t "conditional_or_expression : conditional_and_expression",
782
//t "conditional_or_expression : conditional_or_expression OP_OR conditional_and_expression",
783
//t "null_coalescing_expression : conditional_or_expression",
784
//t "null_coalescing_expression : conditional_or_expression OP_COALESCING null_coalescing_expression",
785
//t "conditional_expression : null_coalescing_expression",
786
//t "conditional_expression : null_coalescing_expression INTERR expression COLON expression_or_error",
787
//t "conditional_expression : null_coalescing_expression INTERR expression error",
788
//t "assignment_expression : prefixed_unary_expression ASSIGN expression",
789
//t "assignment_expression : prefixed_unary_expression OP_MULT_ASSIGN expression",
790
//t "assignment_expression : prefixed_unary_expression OP_DIV_ASSIGN expression",
791
//t "assignment_expression : prefixed_unary_expression OP_MOD_ASSIGN expression",
792
//t "assignment_expression : prefixed_unary_expression OP_ADD_ASSIGN expression",
793
//t "assignment_expression : prefixed_unary_expression OP_SUB_ASSIGN expression",
794
//t "assignment_expression : prefixed_unary_expression OP_SHIFT_LEFT_ASSIGN expression",
795
//t "assignment_expression : prefixed_unary_expression OP_SHIFT_RIGHT_ASSIGN expression",
796
//t "assignment_expression : prefixed_unary_expression OP_AND_ASSIGN expression",
797
//t "assignment_expression : prefixed_unary_expression OP_OR_ASSIGN expression",
798
//t "assignment_expression : prefixed_unary_expression OP_XOR_ASSIGN expression",
799
//t "lambda_parameter_list : lambda_parameter",
800
//t "lambda_parameter_list : lambda_parameter_list COMMA lambda_parameter",
801
//t "lambda_parameter : parameter_modifier parameter_type identifier_inside_body",
802
//t "lambda_parameter : parameter_type identifier_inside_body",
803
//t "lambda_parameter : IDENTIFIER",
804
//t "opt_lambda_parameter_list :",
805
//t "opt_lambda_parameter_list : lambda_parameter_list",
806
//t "lambda_expression_body : lambda_expression_body_simple",
807
//t "lambda_expression_body : block",
809
//t "lambda_expression_body_simple : $$69 expression_or_error",
810
//t "expression_or_error : expression",
811
//t "expression_or_error : error",
813
//t "lambda_expression : IDENTIFIER ARROW $$70 lambda_expression_body",
815
//t "lambda_expression : ASYNC identifier_inside_body ARROW $$71 lambda_expression_body",
818
//t "lambda_expression : OPEN_PARENS_LAMBDA $$72 opt_lambda_parameter_list CLOSE_PARENS ARROW $$73 lambda_expression_body",
821
//t "lambda_expression : ASYNC OPEN_PARENS_LAMBDA $$74 opt_lambda_parameter_list CLOSE_PARENS ARROW $$75 lambda_expression_body",
822
//t "expression : assignment_expression",
823
//t "expression : non_assignment_expression",
824
//t "non_assignment_expression : conditional_expression",
825
//t "non_assignment_expression : lambda_expression",
826
//t "non_assignment_expression : query_expression",
827
//t "non_assignment_expression : ARGLIST",
828
//t "undocumented_expressions : REFVALUE OPEN_PARENS non_assignment_expression COMMA type CLOSE_PARENS",
829
//t "undocumented_expressions : REFTYPE open_parens_any expression CLOSE_PARENS",
830
//t "undocumented_expressions : MAKEREF open_parens_any expression CLOSE_PARENS",
831
//t "constant_expression : expression",
832
//t "boolean_expression : expression",
837
//t "class_declaration : opt_attributes opt_modifiers opt_partial CLASS $$76 type_declaration_name $$77 opt_class_base opt_type_parameter_constraints_clauses $$78 OPEN_BRACE opt_class_member_declarations CLOSE_BRACE $$79 opt_semicolon",
839
//t "opt_partial : PARTIAL",
840
//t "opt_modifiers :",
841
//t "opt_modifiers : modifiers",
842
//t "modifiers : modifier",
843
//t "modifiers : modifiers modifier",
844
//t "modifier : NEW",
845
//t "modifier : PUBLIC",
846
//t "modifier : PROTECTED",
847
//t "modifier : INTERNAL",
848
//t "modifier : PRIVATE",
849
//t "modifier : ABSTRACT",
850
//t "modifier : SEALED",
851
//t "modifier : STATIC",
852
//t "modifier : READONLY",
853
//t "modifier : VIRTUAL",
854
//t "modifier : OVERRIDE",
855
//t "modifier : EXTERN",
856
//t "modifier : VOLATILE",
857
//t "modifier : UNSAFE",
858
//t "modifier : ASYNC",
859
//t "opt_class_base :",
860
//t "opt_class_base : COLON type_list",
861
//t "opt_class_base : COLON type_list error",
862
//t "opt_type_parameter_constraints_clauses :",
863
//t "opt_type_parameter_constraints_clauses : type_parameter_constraints_clauses",
864
//t "type_parameter_constraints_clauses : type_parameter_constraints_clause",
865
//t "type_parameter_constraints_clauses : type_parameter_constraints_clauses type_parameter_constraints_clause",
866
//t "type_parameter_constraints_clause : WHERE IDENTIFIER COLON type_parameter_constraints",
867
//t "type_parameter_constraints_clause : WHERE IDENTIFIER error",
868
//t "type_parameter_constraints : type_parameter_constraint",
869
//t "type_parameter_constraints : type_parameter_constraints COMMA type_parameter_constraint",
870
//t "type_parameter_constraint : type",
871
//t "type_parameter_constraint : NEW OPEN_PARENS CLOSE_PARENS",
872
//t "type_parameter_constraint : CLASS",
873
//t "type_parameter_constraint : STRUCT",
874
//t "opt_type_parameter_variance :",
875
//t "opt_type_parameter_variance : type_parameter_variance",
876
//t "type_parameter_variance : OUT",
877
//t "type_parameter_variance : IN",
879
//t "block : OPEN_BRACE $$80 opt_statement_list block_end",
880
//t "block_end : CLOSE_BRACE",
881
//t "block_end : COMPLETE_COMPLETION",
883
//t "block_prepared : OPEN_BRACE $$81 opt_statement_list CLOSE_BRACE",
884
//t "block_prepared : CLOSE_BRACE",
885
//t "opt_statement_list :",
886
//t "opt_statement_list : statement_list",
887
//t "statement_list : statement",
888
//t "statement_list : statement_list statement",
889
//t "statement : block_variable_declaration",
890
//t "statement : valid_declaration_statement",
891
//t "statement : labeled_statement",
892
//t "statement : IDENTIFIER error",
893
//t "statement : error",
894
//t "interactive_statement_list : interactive_statement",
895
//t "interactive_statement_list : interactive_statement_list interactive_statement",
896
//t "interactive_statement : block_variable_declaration",
897
//t "interactive_statement : interactive_valid_declaration_statement",
898
//t "interactive_statement : labeled_statement",
899
//t "valid_declaration_statement : block",
900
//t "valid_declaration_statement : empty_statement",
901
//t "valid_declaration_statement : expression_statement",
902
//t "valid_declaration_statement : selection_statement",
903
//t "valid_declaration_statement : iteration_statement",
904
//t "valid_declaration_statement : jump_statement",
905
//t "valid_declaration_statement : try_statement",
906
//t "valid_declaration_statement : checked_statement",
907
//t "valid_declaration_statement : unchecked_statement",
908
//t "valid_declaration_statement : lock_statement",
909
//t "valid_declaration_statement : using_statement",
910
//t "valid_declaration_statement : unsafe_statement",
911
//t "valid_declaration_statement : fixed_statement",
912
//t "interactive_valid_declaration_statement : block",
913
//t "interactive_valid_declaration_statement : empty_statement",
914
//t "interactive_valid_declaration_statement : interactive_expression_statement",
915
//t "interactive_valid_declaration_statement : selection_statement",
916
//t "interactive_valid_declaration_statement : iteration_statement",
917
//t "interactive_valid_declaration_statement : jump_statement",
918
//t "interactive_valid_declaration_statement : try_statement",
919
//t "interactive_valid_declaration_statement : checked_statement",
920
//t "interactive_valid_declaration_statement : unchecked_statement",
921
//t "interactive_valid_declaration_statement : lock_statement",
922
//t "interactive_valid_declaration_statement : using_statement",
923
//t "interactive_valid_declaration_statement : unsafe_statement",
924
//t "interactive_valid_declaration_statement : fixed_statement",
925
//t "embedded_statement : valid_declaration_statement",
926
//t "embedded_statement : block_variable_declaration",
927
//t "embedded_statement : labeled_statement",
928
//t "embedded_statement : error",
929
//t "empty_statement : SEMICOLON",
931
//t "labeled_statement : identifier_inside_body COLON $$82 statement",
932
//t "variable_type : variable_type_simple",
933
//t "variable_type : variable_type_simple rank_specifiers",
934
//t "variable_type_simple : primary_expression_or_type opt_nullable",
935
//t "variable_type_simple : primary_expression_or_type pointer_stars",
936
//t "variable_type_simple : builtin_types opt_nullable",
937
//t "variable_type_simple : builtin_types pointer_stars",
938
//t "variable_type_simple : VOID pointer_stars",
939
//t "variable_type_simple : VOID",
940
//t "pointer_stars : pointer_star",
941
//t "pointer_stars : pointer_star pointer_stars",
942
//t "pointer_star : STAR",
943
//t "identifier_inside_body : IDENTIFIER",
944
//t "identifier_inside_body : AWAIT",
946
//t "block_variable_declaration : variable_type identifier_inside_body $$83 opt_local_variable_initializer opt_variable_declarators semicolon_or_handle_error_close_brace",
948
//t "block_variable_declaration : CONST variable_type identifier_inside_body $$84 const_variable_initializer opt_const_declarators SEMICOLON",
949
//t "semicolon_or_handle_error_close_brace : SEMICOLON",
950
//t "semicolon_or_handle_error_close_brace : CLOSE_BRACE",
951
//t "opt_local_variable_initializer :",
952
//t "opt_local_variable_initializer : ASSIGN block_variable_initializer",
953
//t "opt_local_variable_initializer : ASSIGN error",
954
//t "opt_local_variable_initializer : error",
955
//t "opt_variable_declarators :",
956
//t "opt_variable_declarators : variable_declarators",
957
//t "opt_using_or_fixed_variable_declarators :",
958
//t "opt_using_or_fixed_variable_declarators : variable_declarators",
959
//t "variable_declarators : variable_declarator",
960
//t "variable_declarators : variable_declarators variable_declarator",
961
//t "variable_declarator : COMMA identifier_inside_body",
962
//t "variable_declarator : COMMA identifier_inside_body ASSIGN block_variable_initializer",
963
//t "const_variable_initializer :",
964
//t "const_variable_initializer : ASSIGN constant_initializer_expr",
965
//t "opt_const_declarators :",
966
//t "opt_const_declarators : const_declarators",
967
//t "const_declarators : const_declarator",
968
//t "const_declarators : const_declarators const_declarator",
969
//t "const_declarator : COMMA identifier_inside_body ASSIGN constant_initializer_expr",
970
//t "block_variable_initializer : variable_initializer",
971
//t "block_variable_initializer : STACKALLOC simple_type OPEN_BRACKET_EXPR expression CLOSE_BRACKET",
972
//t "block_variable_initializer : STACKALLOC simple_type",
973
//t "expression_statement : statement_expression SEMICOLON",
974
//t "expression_statement : statement_expression COMPLETE_COMPLETION",
975
//t "expression_statement : statement_expression CLOSE_BRACE",
976
//t "interactive_expression_statement : interactive_statement_expression SEMICOLON",
977
//t "interactive_expression_statement : interactive_statement_expression COMPLETE_COMPLETION",
978
//t "statement_expression : expression",
979
//t "interactive_statement_expression : expression",
980
//t "interactive_statement_expression : error",
981
//t "selection_statement : if_statement",
982
//t "selection_statement : switch_statement",
983
//t "if_statement : IF open_parens_any boolean_expression CLOSE_PARENS embedded_statement",
984
//t "if_statement : IF open_parens_any boolean_expression CLOSE_PARENS embedded_statement ELSE embedded_statement",
985
//t "if_statement : IF open_parens_any boolean_expression error",
987
//t "switch_statement : SWITCH open_parens_any expression CLOSE_PARENS OPEN_BRACE $$85 opt_switch_sections CLOSE_BRACE",
988
//t "switch_statement : SWITCH open_parens_any expression error",
989
//t "opt_switch_sections :",
990
//t "opt_switch_sections : switch_sections",
991
//t "switch_sections : switch_section",
992
//t "switch_sections : switch_sections switch_section",
993
//t "switch_sections : error",
995
//t "switch_section : switch_labels $$86 statement_list",
996
//t "switch_labels : switch_label",
997
//t "switch_labels : switch_labels switch_label",
998
//t "switch_label : CASE constant_expression COLON",
999
//t "switch_label : CASE constant_expression error",
1000
//t "switch_label : DEFAULT_COLON",
1001
//t "iteration_statement : while_statement",
1002
//t "iteration_statement : do_statement",
1003
//t "iteration_statement : for_statement",
1004
//t "iteration_statement : foreach_statement",
1005
//t "while_statement : WHILE open_parens_any boolean_expression CLOSE_PARENS embedded_statement",
1006
//t "while_statement : WHILE open_parens_any boolean_expression error",
1007
//t "do_statement : DO embedded_statement WHILE open_parens_any boolean_expression CLOSE_PARENS SEMICOLON",
1008
//t "do_statement : DO embedded_statement error",
1009
//t "do_statement : DO embedded_statement WHILE open_parens_any boolean_expression error",
1011
//t "for_statement : FOR open_parens_any $$87 for_statement_cont",
1013
//t "for_statement_cont : opt_for_initializer SEMICOLON $$88 for_statement_condition",
1014
//t "for_statement_cont : opt_for_initializer CLOSE_PARENS",
1016
//t "for_statement_condition : opt_for_condition SEMICOLON $$89 for_statement_end",
1017
//t "for_statement_condition : boolean_expression CLOSE_PARENS",
1018
//t "for_statement_end : opt_for_iterator CLOSE_PARENS embedded_statement",
1019
//t "for_statement_end : error",
1020
//t "opt_for_initializer :",
1021
//t "opt_for_initializer : for_initializer",
1023
//t "for_initializer : variable_type identifier_inside_body $$90 opt_local_variable_initializer opt_variable_declarators",
1024
//t "for_initializer : statement_expression_list",
1025
//t "opt_for_condition :",
1026
//t "opt_for_condition : boolean_expression",
1027
//t "opt_for_iterator :",
1028
//t "opt_for_iterator : for_iterator",
1029
//t "for_iterator : statement_expression_list",
1030
//t "statement_expression_list : statement_expression",
1031
//t "statement_expression_list : statement_expression_list COMMA statement_expression",
1032
//t "foreach_statement : FOREACH open_parens_any type error",
1033
//t "foreach_statement : FOREACH open_parens_any type identifier_inside_body error",
1035
//t "foreach_statement : FOREACH open_parens_any type identifier_inside_body IN expression CLOSE_PARENS $$91 embedded_statement",
1036
//t "foreach_statement : FOREACH open_parens_any type identifier_inside_body error",
1037
//t "foreach_statement : FOREACH open_parens_any type error",
1038
//t "jump_statement : break_statement",
1039
//t "jump_statement : continue_statement",
1040
//t "jump_statement : goto_statement",
1041
//t "jump_statement : return_statement",
1042
//t "jump_statement : throw_statement",
1043
//t "jump_statement : yield_statement",
1044
//t "break_statement : BREAK SEMICOLON",
1045
//t "continue_statement : CONTINUE SEMICOLON",
1046
//t "continue_statement : CONTINUE error",
1047
//t "goto_statement : GOTO identifier_inside_body SEMICOLON",
1048
//t "goto_statement : GOTO CASE constant_expression SEMICOLON",
1049
//t "goto_statement : GOTO DEFAULT SEMICOLON",
1050
//t "return_statement : RETURN opt_expression SEMICOLON",
1051
//t "return_statement : RETURN error",
1052
//t "throw_statement : THROW opt_expression SEMICOLON",
1053
//t "throw_statement : THROW error",
1054
//t "yield_statement : identifier_inside_body RETURN opt_expression SEMICOLON",
1055
//t "yield_statement : identifier_inside_body BREAK SEMICOLON",
1056
//t "opt_expression :",
1057
//t "opt_expression : expression",
1058
//t "try_statement : TRY block catch_clauses",
1059
//t "try_statement : TRY block FINALLY block",
1060
//t "try_statement : TRY block catch_clauses FINALLY block",
1061
//t "try_statement : TRY block error",
1062
//t "catch_clauses : catch_clause",
1063
//t "catch_clauses : catch_clauses catch_clause",
1064
//t "opt_identifier :",
1065
//t "opt_identifier : identifier_inside_body",
1066
//t "catch_clause : CATCH block",
1068
//t "catch_clause : CATCH open_parens_any type opt_identifier CLOSE_PARENS $$92 block_prepared",
1069
//t "catch_clause : CATCH open_parens_any error",
1070
//t "checked_statement : CHECKED block",
1071
//t "unchecked_statement : UNCHECKED block",
1073
//t "unsafe_statement : UNSAFE $$93 block",
1074
//t "lock_statement : LOCK open_parens_any expression CLOSE_PARENS embedded_statement",
1075
//t "lock_statement : LOCK open_parens_any expression error",
1078
//t "fixed_statement : FIXED open_parens_any variable_type identifier_inside_body $$94 using_or_fixed_variable_initializer opt_using_or_fixed_variable_declarators CLOSE_PARENS $$95 embedded_statement",
1081
//t "using_statement : USING open_parens_any variable_type identifier_inside_body $$96 using_initialization CLOSE_PARENS $$97 embedded_statement",
1082
//t "using_statement : USING open_parens_any expression CLOSE_PARENS embedded_statement",
1083
//t "using_statement : USING open_parens_any expression error",
1084
//t "using_initialization : using_or_fixed_variable_initializer opt_using_or_fixed_variable_declarators",
1085
//t "using_initialization : error",
1086
//t "using_or_fixed_variable_initializer :",
1087
//t "using_or_fixed_variable_initializer : ASSIGN variable_initializer",
1088
//t "query_expression : first_from_clause query_body",
1089
//t "query_expression : nested_from_clause query_body",
1090
//t "query_expression : first_from_clause COMPLETE_COMPLETION",
1091
//t "query_expression : nested_from_clause COMPLETE_COMPLETION",
1092
//t "first_from_clause : FROM_FIRST identifier_inside_body IN expression",
1093
//t "first_from_clause : FROM_FIRST type identifier_inside_body IN expression",
1094
//t "nested_from_clause : FROM identifier_inside_body IN expression",
1095
//t "nested_from_clause : FROM type identifier_inside_body IN expression",
1097
//t "from_clause : FROM identifier_inside_body IN $$98 expression_or_error",
1099
//t "from_clause : FROM type identifier_inside_body IN $$99 expression_or_error",
1100
//t "query_body : query_body_clauses select_or_group_clause opt_query_continuation",
1101
//t "query_body : select_or_group_clause opt_query_continuation",
1102
//t "query_body : query_body_clauses COMPLETE_COMPLETION",
1103
//t "query_body : query_body_clauses error",
1104
//t "query_body : error",
1106
//t "select_or_group_clause : SELECT $$100 expression_or_error",
1109
//t "select_or_group_clause : GROUP $$101 expression_or_error $$102 BY expression_or_error",
1110
//t "query_body_clauses : query_body_clause",
1111
//t "query_body_clauses : query_body_clauses query_body_clause",
1112
//t "query_body_clause : from_clause",
1113
//t "query_body_clause : let_clause",
1114
//t "query_body_clause : where_clause",
1115
//t "query_body_clause : join_clause",
1116
//t "query_body_clause : orderby_clause",
1118
//t "let_clause : LET identifier_inside_body ASSIGN $$103 expression_or_error",
1120
//t "where_clause : WHERE $$104 expression_or_error",
1124
//t "join_clause : JOIN identifier_inside_body IN $$105 expression_or_error ON $$106 expression_or_error EQUALS $$107 expression_or_error opt_join_into",
1128
//t "join_clause : JOIN type identifier_inside_body IN $$108 expression_or_error ON $$109 expression_or_error EQUALS $$110 expression_or_error opt_join_into",
1129
//t "opt_join_into :",
1130
//t "opt_join_into : INTO identifier_inside_body",
1132
//t "orderby_clause : ORDERBY $$111 orderings",
1133
//t "orderings : order_by",
1135
//t "orderings : order_by COMMA $$112 orderings_then_by",
1136
//t "orderings_then_by : then_by",
1138
//t "orderings_then_by : orderings_then_by COMMA $$113 then_by",
1139
//t "order_by : expression",
1140
//t "order_by : expression ASCENDING",
1141
//t "order_by : expression DESCENDING",
1142
//t "then_by : expression",
1143
//t "then_by : expression ASCENDING",
1144
//t "then_by : expression DESCENDING",
1145
//t "opt_query_continuation :",
1147
//t "opt_query_continuation : INTO identifier_inside_body $$114 query_body",
1148
//t "interactive_parsing : EVAL_STATEMENT_PARSER EOF",
1149
//t "interactive_parsing : EVAL_USING_DECLARATIONS_UNIT_PARSER using_directives opt_COMPLETE_COMPLETION",
1151
//t "interactive_parsing : EVAL_STATEMENT_PARSER $$115 interactive_statement_list opt_COMPLETE_COMPLETION",
1152
//t "interactive_parsing : EVAL_COMPILATION_UNIT_PARSER interactive_compilation_unit",
1153
//t "interactive_compilation_unit : opt_extern_alias_directives opt_using_directives",
1154
//t "interactive_compilation_unit : opt_extern_alias_directives opt_using_directives namespace_or_type_declarations",
1155
//t "opt_COMPLETE_COMPLETION :",
1156
//t "opt_COMPLETE_COMPLETION : COMPLETE_COMPLETION",
1157
//t "close_brace_or_complete_completion : CLOSE_BRACE",
1158
//t "close_brace_or_complete_completion : COMPLETE_COMPLETION",
1159
//t "documentation_parsing : DOC_SEE doc_cref",
1160
//t "doc_cref : doc_type_declaration_name opt_doc_method_sig",
1161
//t "doc_cref : builtin_types opt_doc_method_sig",
1162
//t "doc_cref : builtin_types DOT IDENTIFIER opt_doc_method_sig",
1163
//t "doc_cref : doc_type_declaration_name DOT THIS",
1165
//t "doc_cref : doc_type_declaration_name DOT THIS OPEN_BRACKET $$116 opt_doc_parameters CLOSE_BRACKET",
1166
//t "doc_cref : EXPLICIT OPERATOR type opt_doc_method_sig",
1167
//t "doc_cref : IMPLICIT OPERATOR type opt_doc_method_sig",
1168
//t "doc_cref : OPERATOR overloadable_operator opt_doc_method_sig",
1169
//t "doc_type_declaration_name : type_declaration_name",
1170
//t "doc_type_declaration_name : doc_type_declaration_name DOT type_declaration_name",
1171
//t "opt_doc_method_sig :",
1173
//t "opt_doc_method_sig : OPEN_PARENS $$117 opt_doc_parameters CLOSE_PARENS",
1174
//t "opt_doc_parameters :",
1175
//t "opt_doc_parameters : doc_parameters",
1176
//t "doc_parameters : doc_parameter",
1177
//t "doc_parameters : doc_parameters COMMA doc_parameter",
1178
//t "doc_parameter : opt_parameter_modifier parameter_type",
1180
//t public static string getRule (int index) {
1181
//t return yyRule [index];
1184
protected static readonly string [] yyNames = {
1185
"end-of-file",null,null,null,null,null,null,null,null,null,null,null,
1186
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1187
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1188
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1189
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1190
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1191
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1192
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1193
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1194
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1195
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1196
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1197
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1198
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1199
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1200
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1201
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1202
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1203
null,null,null,null,null,null,null,"EOF","NONE","ERROR",
1204
"FIRST_KEYWORD","ABSTRACT","AS","ADD","BASE","BOOL","BREAK","BYTE",
1205
"CASE","CATCH","CHAR","CHECKED","CLASS","CONST","CONTINUE","DECIMAL",
1206
"DEFAULT","DELEGATE","DO","DOUBLE","ELSE","ENUM","EVENT","EXPLICIT",
1207
"EXTERN","FALSE","FINALLY","FIXED","FLOAT","FOR","FOREACH","GOTO",
1208
"IF","IMPLICIT","IN","INT","INTERFACE","INTERNAL","IS","LOCK","LONG",
1209
"NAMESPACE","NEW","NULL","OBJECT","OPERATOR","OUT","OVERRIDE",
1210
"PARAMS","PRIVATE","PROTECTED","PUBLIC","READONLY","REF","RETURN",
1211
"REMOVE","SBYTE","SEALED","SHORT","SIZEOF","STACKALLOC","STATIC",
1212
"STRING","STRUCT","SWITCH","THIS","THROW","TRUE","TRY","TYPEOF",
1213
"UINT","ULONG","UNCHECKED","UNSAFE","USHORT","USING","VIRTUAL","VOID",
1214
"VOLATILE","WHERE","WHILE","ARGLIST","PARTIAL","ARROW","FROM",
1215
"FROM_FIRST","JOIN","ON","EQUALS","SELECT","GROUP","BY","LET",
1216
"ORDERBY","ASCENDING","DESCENDING","INTO","INTERR_NULLABLE",
1217
"EXTERN_ALIAS","REFVALUE","REFTYPE","MAKEREF","ASYNC","AWAIT","GET",
1218
"SET","LAST_KEYWORD","OPEN_BRACE","CLOSE_BRACE","OPEN_BRACKET",
1219
"CLOSE_BRACKET","OPEN_PARENS","CLOSE_PARENS","DOT","COMMA","COLON",
1220
"SEMICOLON","TILDE","PLUS","MINUS","BANG","ASSIGN","OP_LT","OP_GT",
1221
"BITWISE_AND","BITWISE_OR","STAR","PERCENT","DIV","CARRET","INTERR",
1222
"DOUBLE_COLON","OP_INC","OP_DEC","OP_SHIFT_LEFT","OP_SHIFT_RIGHT",
1223
"OP_LE","OP_GE","OP_EQ","OP_NE","OP_AND","OP_OR","OP_MULT_ASSIGN",
1224
"OP_DIV_ASSIGN","OP_MOD_ASSIGN","OP_ADD_ASSIGN","OP_SUB_ASSIGN",
1225
"OP_SHIFT_LEFT_ASSIGN","OP_SHIFT_RIGHT_ASSIGN","OP_AND_ASSIGN",
1226
"OP_XOR_ASSIGN","OP_OR_ASSIGN","OP_PTR","OP_COALESCING",
1227
"OP_GENERICS_LT","OP_GENERICS_LT_DECL","OP_GENERICS_GT","LITERAL",
1228
"IDENTIFIER","OPEN_PARENS_LAMBDA","OPEN_PARENS_CAST",
1229
"GENERIC_DIMENSION","DEFAULT_COLON","OPEN_BRACKET_EXPR",
1230
"EVAL_STATEMENT_PARSER","EVAL_COMPILATION_UNIT_PARSER",
1231
"EVAL_USING_DECLARATIONS_UNIT_PARSER","DOC_SEE","GENERATE_COMPLETION",
1232
"COMPLETE_COMPLETION","UMINUS",
1235
/** index-checked interface to yyNames[].
1236
@param token single character or %token value.
1237
@return token name or [illegal] or [unknown].
1239
//t public static string yyname (int token) {
1240
//t if ((token < 0) || (token > yyNames.Length)) return "[illegal]";
1242
//t if ((name = yyNames[token]) != null) return name;
1243
//t return "[unknown]";
1246
int yyExpectingState;
1247
/** computes list of expected tokens on error by tracing the tables.
1248
@param state for which to compute the list.
1249
@return list of token names.
1251
protected int [] yyExpectingTokens (int state){
1252
int token, n, len = 0;
1253
bool[] ok = new bool[yyNames.Length];
1254
if ((n = yySindex[state]) != 0)
1255
for (token = n < 0 ? -n : 0;
1256
(token < yyNames.Length) && (n+token < yyTable.Length); ++ token)
1257
if (yyCheck[n+token] == token && !ok[token] && yyNames[token] != null) {
1261
if ((n = yyRindex[state]) != 0)
1262
for (token = n < 0 ? -n : 0;
1263
(token < yyNames.Length) && (n+token < yyTable.Length); ++ token)
1264
if (yyCheck[n+token] == token && !ok[token] && yyNames[token] != null) {
1268
int [] result = new int [len];
1269
for (n = token = 0; n < len; ++ token)
1270
if (ok[token]) result[n++] = token;
1273
protected string[] yyExpecting (int state) {
1274
int [] tokens = yyExpectingTokens (state);
1275
string [] result = new string[tokens.Length];
1276
for (int n = 0; n < tokens.Length; n++)
1277
result[n++] = yyNames[tokens [n]];
1281
/** the generated parser, with debugging messages.
1282
Maintains a state and a value stack, currently with fixed maximum size.
1283
@param yyLex scanner.
1284
@param yydebug debug message writer implementing yyDebug, or null.
1285
@return result of the last reduction, if any.
1286
@throws yyException on irrecoverable parse error.
1288
internal Object yyparse (yyParser.yyInput yyLex, Object yyd)
1290
//t this.debug = (yydebug.yyDebug)yyd;
1291
return yyparse(yyLex);
1294
/** initial size and increment of the state/value stack [default 256].
1295
This is not final so that it can be overwritten outside of invocations
1298
protected int yyMax;
1300
/** executed at the beginning of a reduce action.
1301
Used as $$ = yyDefault($1), prior to the user-specified action, if any.
1302
Can be overwritten to provide deep copy, etc.
1303
@param first value for $1, or null.
1306
protected Object yyDefault (Object first) {
1310
static int[] global_yyStates;
1311
static object[] global_yyVals;
1312
protected bool use_global_stacks;
1313
object[] yyVals; // value stack
1314
object yyVal; // value stack ptr
1315
int yyToken; // current input
1318
/** the generated parser.
1319
Maintains a state and a value stack, currently with fixed maximum size.
1320
@param yyLex scanner.
1321
@return result of the last reduction, if any.
1322
@throws yyException on irrecoverable parse error.
1324
internal Object yyparse (yyParser.yyInput yyLex)
1326
if (yyMax <= 0) yyMax = 256; // initial size
1327
int yyState = 0; // state stack ptr
1328
int [] yyStates; // state stack
1331
int yyErrorFlag = 0; // #tks to shift
1332
if (use_global_stacks && global_yyStates != null) {
1333
yyVals = global_yyVals;
1334
yyStates = global_yyStates;
1336
yyVals = new object [yyMax];
1337
yyStates = new int [yyMax];
1338
if (use_global_stacks) {
1339
global_yyVals = yyVals;
1340
global_yyStates = yyStates;
1344
/*yyLoop:*/ for (yyTop = 0;; ++ yyTop) {
1345
if (yyTop >= yyStates.Length) { // dynamically increase
1346
global::System.Array.Resize (ref yyStates, yyStates.Length+yyMax);
1347
global::System.Array.Resize (ref yyVals, yyVals.Length+yyMax);
1349
yyStates[yyTop] = yyState;
1350
yyVals[yyTop] = yyVal;
1351
//t if (debug != null) debug.push(yyState, yyVal);
1353
/*yyDiscarded:*/ while (true) { // discarding a token does not change stack
1355
if ((yyN = yyDefRed[yyState]) == 0) { // else [default] reduce (yyN)
1357
yyToken = yyLex.advance() ? yyLex.token() : 0;
1358
//t if (debug != null)
1359
//t debug.lex(yyState, yyToken, yyname(yyToken), yyLex.value());
1361
if ((yyN = yySindex[yyState]) != 0 && ((yyN += yyToken) >= 0)
1362
&& (yyN < yyTable.Length) && (yyCheck[yyN] == yyToken)) {
1363
//t if (debug != null)
1364
//t debug.shift(yyState, yyTable[yyN], yyErrorFlag-1);
1365
yyState = yyTable[yyN]; // shift to yyN
1366
yyVal = yyLex.value();
1368
if (yyErrorFlag > 0) -- yyErrorFlag;
1369
goto continue_yyLoop;
1371
if ((yyN = yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0
1372
&& yyN < yyTable.Length && yyCheck[yyN] == yyToken)
1373
yyN = yyTable[yyN]; // reduce (yyN)
1375
switch (yyErrorFlag) {
1378
yyExpectingState = yyState;
1379
// yyerror(String.Format ("syntax error, got token `{0}'", yyname (yyToken)), yyExpecting(yyState));
1380
//t if (debug != null) debug.error("syntax error");
1381
if (yyToken == 0 /*eof*/ || yyToken == eof_token) throw new yyParser.yyUnexpectedEof ();
1386
if ((yyN = yySindex[yyStates[yyTop]]) != 0
1387
&& (yyN += Token.yyErrorCode) >= 0 && yyN < yyTable.Length
1388
&& yyCheck[yyN] == Token.yyErrorCode) {
1389
//t if (debug != null)
1390
//t debug.shift(yyStates[yyTop], yyTable[yyN], 3);
1391
yyState = yyTable[yyN];
1392
yyVal = yyLex.value();
1393
goto continue_yyLoop;
1395
//t if (debug != null) debug.pop(yyStates[yyTop]);
1396
} while (-- yyTop >= 0);
1397
//t if (debug != null) debug.reject();
1398
throw new yyParser.yyException("irrecoverable syntax error");
1402
//t if (debug != null) debug.reject();
1403
throw new yyParser.yyException("irrecoverable syntax error at end-of-file");
1405
//t if (debug != null)
1406
//t debug.discard(yyState, yyToken, yyname(yyToken),
1409
goto continue_yyDiscarded; // leave stack alone
1412
int yyV = yyTop + 1-yyLen[yyN];
1413
//t if (debug != null)
1414
//t debug.reduce(yyState, yyStates[yyV-1], yyN, YYRules.getRule (yyN), yyLen[yyN]);
1415
yyVal = yyV > yyTop ? null : yyVals[yyV]; // yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]);
1418
#line 390 "cs-parser.jay"
1420
Lexer.check_incorrect_doc_comment ();
1424
#line 391 "cs-parser.jay"
1425
{ Lexer.CompleteOnEOF = false; }
1431
#line 410 "cs-parser.jay"
1433
module.AddAttributes ((Attributes) yyVals[0+yyTop], current_namespace);
1443
#line 455 "cs-parser.jay"
1445
Error_SyntaxError (yyToken);
1482
#line 621 "cs-parser.jay"
1484
current_namespace.DeclarationFound = true;
1515
#line 735 "cs-parser.jay"
1516
{ yyVal = "event"; savedCloseLocation = GetLocation (yyVals[0+yyTop]); }
1519
#line 736 "cs-parser.jay"
1520
{ yyVal = "return"; savedCloseLocation = GetLocation (yyVals[0+yyTop]); }
1526
#line 753 "cs-parser.jay"
1528
yyVal = new List<Attribute> (4) { (Attribute) yyVals[0+yyTop] };
1535
#line 768 "cs-parser.jay"
1537
++lexer.parsing_block;
1544
#line 796 "cs-parser.jay"
1545
{ yyVal = null; HadAttributeParens = false; }
1551
#line 808 "cs-parser.jay"
1567
#line 852 "cs-parser.jay"
1569
yyVal = new Argument ((Expression) yyVals[0+yyTop]);
1573
#line 860 "cs-parser.jay"
1575
++lexer.parsing_block;
1585
#line 886 "cs-parser.jay"
1589
#line 890 "cs-parser.jay"
1591
yyVal = Argument.AType.Ref;
1595
#line 894 "cs-parser.jay"
1597
yyVal = Argument.AType.Out;
1601
#line 906 "cs-parser.jay"
1603
lexer.parsing_modifiers = true;
1607
#line 910 "cs-parser.jay"
1609
lexer.parsing_modifiers = true;
1616
#line 941 "cs-parser.jay"
1618
lexer.ConstraintsParsing = true;
1637
#line 984 "cs-parser.jay"
1639
Error_SyntaxError (yyToken);
1649
#line 1025 "cs-parser.jay"
1651
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1655
#line 1029 "cs-parser.jay"
1657
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1664
#line 1045 "cs-parser.jay"
1666
++lexer.parsing_block;
1688
#line 1124 "cs-parser.jay"
1690
report.Error (1641, GetLocation (yyVals[-1+yyTop]), "A fixed size buffer field must have the array size specifier after the field name");
1700
#line 1154 "cs-parser.jay"
1702
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1706
#line 1158 "cs-parser.jay"
1708
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1715
#line 1171 "cs-parser.jay"
1717
++lexer.parsing_block;
1724
#line 1190 "cs-parser.jay"
1726
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1730
#line 1194 "cs-parser.jay"
1732
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1739
#line 1210 "cs-parser.jay"
1741
++lexer.parsing_block;
1760
#line 1281 "cs-parser.jay"
1762
valid_param_mod = ParameterModifierType.All;
1766
#line 1285 "cs-parser.jay"
1768
lexer.ConstraintsParsing = true;
1775
#line 1311 "cs-parser.jay"
1777
lexer.parsing_generic_declaration = true;
1784
#line 1321 "cs-parser.jay"
1786
lexer.ConstraintsParsing = true;
1799
#line 1386 "cs-parser.jay"
1800
{ savedLocation = GetLocation (yyVals[0+yyTop]); yyVal = null; }
1803
#line 1390 "cs-parser.jay"
1804
{ yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
1828
#line 1462 "cs-parser.jay"
1830
yyVal = new ParametersCompiled (new Parameter[] { (Parameter) yyVals[0+yyTop] } );
1834
#line 1466 "cs-parser.jay"
1836
yyVal = new ParametersCompiled (new Parameter [] { new ArglistParameter (GetLocation (yyVals[0+yyTop])) }, true);
1861
#line 1547 "cs-parser.jay"
1863
++lexer.parsing_block;
1870
#line 1588 "cs-parser.jay"
1871
{ yyVal = Parameter.Modifier.NONE; }
1874
#line 1596 "cs-parser.jay"
1876
yyVal = yyVals[0+yyTop];
1907
#line 1689 "cs-parser.jay"
1909
Error_DuplicateParameterModifier (GetLocation (yyVals[-1+yyTop]), Parameter.Modifier.PARAMS);
1928
#line 1743 "cs-parser.jay"
1930
valid_param_mod = ParameterModifierType.Params | ParameterModifierType.DefaultValue;
1937
#line 1772 "cs-parser.jay"
1939
lexer.PropertyParsing = false;
1967
#line 1921 "cs-parser.jay"
1969
lexer.ConstraintsParsing = true;
1985
#line 1960 "cs-parser.jay"
1987
Error_SyntaxError (yyToken);
1991
#line 1972 "cs-parser.jay"
1993
lexer.parsing_modifiers = true;
1997
#line 1976 "cs-parser.jay"
1999
lexer.parsing_modifiers = true;
2003
#line 1983 "cs-parser.jay"
2005
report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants");
2009
#line 1987 "cs-parser.jay"
2011
report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants");
2015
#line 1995 "cs-parser.jay"
2017
report.Error (567, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain operators");
2021
#line 1999 "cs-parser.jay"
2023
report.Error (526, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain contructors");
2027
#line 2003 "cs-parser.jay"
2029
report.Error (524, GetLocation (yyVals[0+yyTop]), "Interfaces cannot declare classes, structs, interfaces, delegates, or enumerations");
2033
#line 2009 "cs-parser.jay"
2041
#line 2042 "cs-parser.jay"
2042
{ savedLocation = GetLocation (yyVals[0+yyTop]); yyVal = null; }
2048
#line 2058 "cs-parser.jay"
2050
valid_param_mod = ParameterModifierType.DefaultValue;
2057
#line 2104 "cs-parser.jay"
2058
{ yyVal = Operator.OpType.LogicalNot; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2061
#line 2105 "cs-parser.jay"
2062
{ yyVal = Operator.OpType.OnesComplement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2065
#line 2106 "cs-parser.jay"
2066
{ yyVal = Operator.OpType.Increment; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2069
#line 2107 "cs-parser.jay"
2070
{ yyVal = Operator.OpType.Decrement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2073
#line 2108 "cs-parser.jay"
2074
{ yyVal = Operator.OpType.True; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2077
#line 2109 "cs-parser.jay"
2078
{ yyVal = Operator.OpType.False; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2081
#line 2111 "cs-parser.jay"
2082
{ yyVal = Operator.OpType.Addition; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2085
#line 2112 "cs-parser.jay"
2086
{ yyVal = Operator.OpType.Subtraction; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2089
#line 2114 "cs-parser.jay"
2090
{ yyVal = Operator.OpType.Multiply; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2093
#line 2115 "cs-parser.jay"
2094
{ yyVal = Operator.OpType.Division; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2097
#line 2116 "cs-parser.jay"
2098
{ yyVal = Operator.OpType.Modulus; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2101
#line 2117 "cs-parser.jay"
2102
{ yyVal = Operator.OpType.BitwiseAnd; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2105
#line 2118 "cs-parser.jay"
2106
{ yyVal = Operator.OpType.BitwiseOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2109
#line 2119 "cs-parser.jay"
2110
{ yyVal = Operator.OpType.ExclusiveOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2113
#line 2120 "cs-parser.jay"
2114
{ yyVal = Operator.OpType.LeftShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2117
#line 2121 "cs-parser.jay"
2118
{ yyVal = Operator.OpType.RightShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2121
#line 2122 "cs-parser.jay"
2122
{ yyVal = Operator.OpType.Equality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2125
#line 2123 "cs-parser.jay"
2126
{ yyVal = Operator.OpType.Inequality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2129
#line 2124 "cs-parser.jay"
2130
{ yyVal = Operator.OpType.GreaterThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2133
#line 2125 "cs-parser.jay"
2134
{ yyVal = Operator.OpType.LessThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2137
#line 2126 "cs-parser.jay"
2138
{ yyVal = Operator.OpType.GreaterThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2141
#line 2127 "cs-parser.jay"
2142
{ yyVal = Operator.OpType.LessThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2145
#line 2134 "cs-parser.jay"
2147
valid_param_mod = ParameterModifierType.DefaultValue;
2154
#line 2153 "cs-parser.jay"
2156
valid_param_mod = ParameterModifierType.DefaultValue;
2181
#line 2259 "cs-parser.jay"
2182
{ current_block = null; yyVal = null; }
2185
#line 2271 "cs-parser.jay"
2187
++lexer.parsing_block;
2194
#line 2281 "cs-parser.jay"
2196
++lexer.parsing_block;
2230
#line 2397 "cs-parser.jay"
2232
++lexer.parsing_block;
2239
#line 2414 "cs-parser.jay"
2241
current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
2245
#line 2418 "cs-parser.jay"
2247
current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
2254
#line 2431 "cs-parser.jay"
2256
++lexer.parsing_block;
2266
#line 2456 "cs-parser.jay"
2268
yyVal = yyVals[0+yyTop];
2317
#line 2624 "cs-parser.jay"
2319
lbag.AppendToMember (current_container, GetLocation (yyVals[0+yyTop]));
2335
#line 2682 "cs-parser.jay"
2337
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out | ParameterModifierType.Params | ParameterModifierType.DefaultValue;
2344
#line 2701 "cs-parser.jay"
2346
lexer.ConstraintsParsing = false;
2377
#line 2807 "cs-parser.jay"
2379
lexer.parsing_generic_declaration = true;
2422
#line 2929 "cs-parser.jay"
2424
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
2428
#line 2936 "cs-parser.jay"
2430
lexer.parsing_generic_declaration = true;
2443
#line 2974 "cs-parser.jay"
2445
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
2452
#line 2993 "cs-parser.jay"
2454
yyVal = new ComposedCast ((ATypeNameExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
2461
#line 3002 "cs-parser.jay"
2463
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
2467
#line 3006 "cs-parser.jay"
2469
yyVal = new ComposedCast (new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-1+yyTop])), (ComposedTypeSpecifier) yyVals[0+yyTop]);
2482
#line 3040 "cs-parser.jay"
2483
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Object, GetLocation (yyVals[0+yyTop])); }
2486
#line 3041 "cs-parser.jay"
2487
{ yyVal = new TypeExpression (compiler.BuiltinTypes.String, GetLocation (yyVals[0+yyTop])); }
2490
#line 3042 "cs-parser.jay"
2491
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Bool, GetLocation (yyVals[0+yyTop])); }
2494
#line 3043 "cs-parser.jay"
2495
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Decimal, GetLocation (yyVals[0+yyTop])); }
2498
#line 3044 "cs-parser.jay"
2499
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Float, GetLocation (yyVals[0+yyTop])); }
2502
#line 3045 "cs-parser.jay"
2503
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Double, GetLocation (yyVals[0+yyTop])); }
2506
#line 3050 "cs-parser.jay"
2507
{ yyVal = new TypeExpression (compiler.BuiltinTypes.SByte, GetLocation (yyVals[0+yyTop])); }
2510
#line 3051 "cs-parser.jay"
2511
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Byte, GetLocation (yyVals[0+yyTop])); }
2514
#line 3052 "cs-parser.jay"
2515
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Short, GetLocation (yyVals[0+yyTop])); }
2518
#line 3053 "cs-parser.jay"
2519
{ yyVal = new TypeExpression (compiler.BuiltinTypes.UShort, GetLocation (yyVals[0+yyTop])); }
2522
#line 3054 "cs-parser.jay"
2523
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Int, GetLocation (yyVals[0+yyTop])); }
2526
#line 3055 "cs-parser.jay"
2527
{ yyVal = new TypeExpression (compiler.BuiltinTypes.UInt, GetLocation (yyVals[0+yyTop])); }
2530
#line 3056 "cs-parser.jay"
2531
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Long, GetLocation (yyVals[0+yyTop])); }
2534
#line 3057 "cs-parser.jay"
2535
{ yyVal = new TypeExpression (compiler.BuiltinTypes.ULong, GetLocation (yyVals[0+yyTop])); }
2538
#line 3058 "cs-parser.jay"
2539
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Char, GetLocation (yyVals[0+yyTop])); }
2548
#line 3105 "cs-parser.jay"
2549
{ yyVal = new NullLiteral (GetLocation (yyVals[0+yyTop])); }
2552
#line 3109 "cs-parser.jay"
2553
{ yyVal = new BoolLiteral (compiler.BuiltinTypes, true, GetLocation (yyVals[0+yyTop])); }
2556
#line 3110 "cs-parser.jay"
2557
{ yyVal = new BoolLiteral (compiler.BuiltinTypes, false, GetLocation (yyVals[0+yyTop])); }
2563
#line 3143 "cs-parser.jay"
2565
yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop]);
2581
#line 3178 "cs-parser.jay"
2583
yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null,GetLocation (yyVals[0+yyTop]));
2590
#line 3186 "cs-parser.jay"
2592
yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null, lexer.Location);
2602
#line 3202 "cs-parser.jay"
2612
#line 3225 "cs-parser.jay"
2616
#line 3229 "cs-parser.jay"
2618
yyVal = yyVals[0+yyTop];
2634
#line 3262 "cs-parser.jay"
2636
yyVal = new CompletionElementInitializer (null, GetLocation (yyVals[0+yyTop]));
2649
#line 3293 "cs-parser.jay"
2668
#line 3346 "cs-parser.jay"
2670
yyVal = new Argument ((Expression) yyVals[0+yyTop]);
2710
#line 3443 "cs-parser.jay"
2712
yyVal = new Argument ((Expression) yyVals[0+yyTop]);
2716
#line 3451 "cs-parser.jay"
2718
yyVal = new This (GetLocation (yyVals[0+yyTop]));
2728
#line 3471 "cs-parser.jay"
2730
yyVal = new UnaryMutator (UnaryMutator.Mode.PostIncrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
2734
#line 3478 "cs-parser.jay"
2736
yyVal = new UnaryMutator (UnaryMutator.Mode.PostDecrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
2761
#line 3545 "cs-parser.jay"
2763
++lexer.parsing_type;
2773
#line 3572 "cs-parser.jay"
2804
#line 3650 "cs-parser.jay"
2810
#line 3654 "cs-parser.jay"
2812
yyVal = ((int) yyVals[-1+yyTop]) + 1;
2816
#line 3661 "cs-parser.jay"
2822
#line 3665 "cs-parser.jay"
2824
yyVal = yyVals[0+yyTop];
2840
#line 3709 "cs-parser.jay"
2842
lexer.TypeOfParsing = true;
2885
#line 3829 "cs-parser.jay"
2887
start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], false, GetLocation (yyVals[-1+yyTop]));
2894
#line 3842 "cs-parser.jay"
2896
start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], true, GetLocation (yyVals[-2+yyTop]));
2903
#line 3859 "cs-parser.jay"
2905
yyVal = ParametersCompiled.Undefined;
2909
#line 3867 "cs-parser.jay"
2911
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
2921
#line 3893 "cs-parser.jay"
2923
yyVal = new Unary (Unary.Operator.LogicalNot, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2927
#line 3897 "cs-parser.jay"
2929
yyVal = new Unary (Unary.Operator.OnesComplement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2939
#line 3933 "cs-parser.jay"
2941
yyVal = new Unary (Unary.Operator.UnaryPlus, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2945
#line 3937 "cs-parser.jay"
2947
yyVal = new Unary (Unary.Operator.UnaryNegation, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2951
#line 3941 "cs-parser.jay"
2953
yyVal = new UnaryMutator (UnaryMutator.Mode.PreIncrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2957
#line 3945 "cs-parser.jay"
2959
yyVal = new UnaryMutator (UnaryMutator.Mode.PreDecrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2963
#line 3949 "cs-parser.jay"
2965
yyVal = new Indirection ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2969
#line 3953 "cs-parser.jay"
2971
yyVal = new Unary (Unary.Operator.AddressOf, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2987
#line 3985 "cs-parser.jay"
2989
yyVal = new Binary (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2996
#line 3994 "cs-parser.jay"
2998
yyVal = new As ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3002
#line 3998 "cs-parser.jay"
3004
yyVal = new Is ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3056
#line 4127 "cs-parser.jay"
3058
yyVal = new SimpleAssign ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3107
#line 4224 "cs-parser.jay"
3108
{ yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
3114
#line 4240 "cs-parser.jay"
3116
start_block (Location.Null);
3138
#line 4285 "cs-parser.jay"
3140
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
3150
#line 4299 "cs-parser.jay"
3152
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
3162
#line 4324 "cs-parser.jay"
3164
yyVal = new ArglistAccess (GetLocation (yyVals[0+yyTop]));
3177
#line 4353 "cs-parser.jay"
3179
yyVal = new BooleanExpression ((Expression) yyVals[0+yyTop]);
3183
#line 4366 "cs-parser.jay"
3185
lexer.ConstraintsParsing = true;
3201
#line 4411 "cs-parser.jay"
3205
#line 4413 "cs-parser.jay"
3206
{ yyVal = yyVals[0+yyTop]; StoreModifierLocation (Modifiers.PARTIAL, GetLocation (yyVals[0+yyTop])); }
3212
#line 4426 "cs-parser.jay"
3214
lexer.parsing_modifiers = false;
3272
#line 4552 "cs-parser.jay"
3274
yyVal = yyVals[0+yyTop];
3302
#line 4645 "cs-parser.jay"
3304
yyVal = new SpecialContraintExpr (SpecialConstraint.Class, GetLocation (yyVals[0+yyTop]));
3308
#line 4649 "cs-parser.jay"
3310
yyVal = new SpecialContraintExpr (SpecialConstraint.Struct, GetLocation (yyVals[0+yyTop]));
3314
#line 4656 "cs-parser.jay"
3316
yyVal = Variance.None;
3332
#line 4701 "cs-parser.jay"
3334
yyVal = yyVals[0+yyTop];
3353
#line 4750 "cs-parser.jay"
3355
current_block.AddStatement ((Statement) yyVals[0+yyTop]);
3359
#line 4754 "cs-parser.jay"
3361
current_block.AddStatement ((Statement) yyVals[0+yyTop]);
3371
#line 4788 "cs-parser.jay"
3373
current_block.AddStatement ((Statement) yyVals[0+yyTop]);
3377
#line 4792 "cs-parser.jay"
3379
current_block.AddStatement ((Statement) yyVals[0+yyTop]);
3410
#line 4936 "cs-parser.jay"
3412
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
3416
#line 4940 "cs-parser.jay"
3418
yyVal = new ComposedCast (new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-1+yyTop])), (ComposedTypeSpecifier) yyVals[0+yyTop]);
3428
#line 4961 "cs-parser.jay"
3430
yyVal = ComposedTypeSpecifier.CreatePointer (GetLocation (yyVals[0+yyTop]));
3470
#line 5096 "cs-parser.jay"
3472
report.Error (145, lexer.Location, "A const field requires a value to be provided");
3491
#line 5146 "cs-parser.jay"
3492
{ yyVal = yyVals[-1+yyTop]; }
3498
#line 5156 "cs-parser.jay"
3499
{ yyVal = yyVals[-1+yyTop]; }
3502
#line 5157 "cs-parser.jay"
3503
{ yyVal = yyVals[-1+yyTop]; }
3524
#line 5232 "cs-parser.jay"
3526
start_block (GetLocation (yyVals[0+yyTop]));
3548
#line 5283 "cs-parser.jay"
3550
current_block = current_block.CreateSwitchBlock (lexer.Location);
3554
#line 5287 "cs-parser.jay"
3556
yyVal = new SwitchSection ((List<SwitchLabel>) yyVals[-2+yyTop], current_block);
3572
#line 5321 "cs-parser.jay"
3574
yyVal = new SwitchLabel (null, GetLocation (yyVals[0+yyTop]));
3596
#line 5382 "cs-parser.jay"
3598
yyVal = yyVals[0+yyTop];
3605
#line 5397 "cs-parser.jay"
3607
yyVal = yyVals[0+yyTop];
3617
#line 5418 "cs-parser.jay"
3619
yyVal = yyVals[0+yyTop];
3632
#line 5452 "cs-parser.jay"
3633
{ yyVal = new EmptyStatement (lexer.Location); }
3642
#line 5473 "cs-parser.jay"
3646
#line 5478 "cs-parser.jay"
3647
{ yyVal = new EmptyStatement (lexer.Location); }
3707
#line 5695 "cs-parser.jay"
3709
yyVal = new TryCatch ((Block) yyVals[-1+yyTop], (List<Catch>) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]), false);
3728
#line 5745 "cs-parser.jay"
3730
yyVal = new Catch ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3737
#line 5764 "cs-parser.jay"
3739
yyVal = yyVals[-1+yyTop];
3746
#line 5782 "cs-parser.jay"
3748
yyVal = new Checked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3752
#line 5789 "cs-parser.jay"
3754
yyVal = new Unchecked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3761
#line 5799 "cs-parser.jay"
3763
yyVal = new Unsafe ((Block) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
3800
#line 5904 "cs-parser.jay"
3802
Error_MissingInitializer (lexer.Location);
3833
#line 6009 "cs-parser.jay"
3835
current_block = new Linq.QueryBlock (current_block, lexer.Location);
3842
#line 6025 "cs-parser.jay"
3844
current_block = new Linq.QueryBlock (current_block, lexer.Location);
3863
#line 6089 "cs-parser.jay"
3865
current_block = new Linq.QueryBlock (current_block, lexer.Location);
3884
#line 6143 "cs-parser.jay"
3886
current_block = new Linq.QueryBlock (current_block, lexer.Location);
3893
#line 6162 "cs-parser.jay"
3895
current_block = new Linq.QueryBlock (current_block, lexer.Location);
3929
#line 6316 "cs-parser.jay"
3931
current_block = new Linq.QueryBlock (current_block, lexer.Location);
3950
#line 6362 "cs-parser.jay"
3952
yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);
3962
#line 6379 "cs-parser.jay"
3964
yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);
3986
#line 6501 "cs-parser.jay"
3988
module.DocumentationBuilder.ParsedName = (MemberName) yyVals[0+yyTop];
3992
#line 6508 "cs-parser.jay"
3994
module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
4004
#line 6525 "cs-parser.jay"
4006
yyVal = new MemberName ((MemberName) yyVals[-2+yyTop], MemberCache.IndexerNameAlias, Location.Null);
4010
#line 6529 "cs-parser.jay"
4012
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
4028
#line 6565 "cs-parser.jay"
4030
yyVal = new MemberName (((MemberName) yyVals[-2+yyTop]), (MemberName) yyVals[0+yyTop]);
4034
#line 6573 "cs-parser.jay"
4036
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
4040
#line 6577 "cs-parser.jay"
4042
yyVal = yyVals[-1+yyTop];
4046
#line 6584 "cs-parser.jay"
4048
yyVal = new List<DocumentationParameter> (0);
4062
yyTop -= yyLen[yyN];
4063
yyState = yyStates[yyTop];
4064
int yyM = yyLhs[yyN];
4065
if (yyState == 0 && yyM == 0) {
4066
//t if (debug != null) debug.shift(0, yyFinal);
4069
yyToken = yyLex.advance() ? yyLex.token() : 0;
4070
//t if (debug != null)
4071
//t debug.lex(yyState, yyToken,yyname(yyToken), yyLex.value());
4074
//t if (debug != null) debug.accept(yyVal);
4077
goto continue_yyLoop;
4079
if (((yyN = yyGindex[yyM]) != 0) && ((yyN += yyState) >= 0)
4080
&& (yyN < yyTable.Length) && (yyCheck[yyN] == yyState))
4081
yyState = yyTable[yyN];
4083
yyState = yyDgoto[yyM];
4084
//t if (debug != null) debug.shift(yyStates[yyTop], yyState);
4085
goto continue_yyLoop;
4086
continue_yyDiscarded: ; // implements the named-loop continue: 'continue yyDiscarded'
4088
continue_yyLoop: ; // implements the named-loop continue: 'continue yyLoop'
4093
All more than 3 lines long rules are wrapped into a method
4096
#line 398 "cs-parser.jay"
4098
if (yyVals[0+yyTop] != null) {
4099
Attributes attrs = (Attributes) yyVals[0+yyTop];
4100
report.Error (1730, attrs.Attrs [0].Location,
4101
"Assembly and module attributes must precede all other elements except using clauses and extern alias declarations");
4103
current_namespace.UnattachedAttributes = attrs;
4108
#line 412 "cs-parser.jay"
4110
if (yyToken == Token.EXTERN_ALIAS)
4111
report.Error (439, lexer.Location, "An extern alias declaration must precede all other elements");
4113
Error_SyntaxError (yyToken);
4117
#line 432 "cs-parser.jay"
4119
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
4120
string s = lt.Value;
4122
syntax_error (lt.Location, "`alias' expected");
4124
if (lang_version == LanguageVersion.ISO_1)
4125
FeatureIsNotAvailable (lt.Location, "external alias");
4127
lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
4128
if (lt.Value == QualifiedAliasMember.GlobalAlias) {
4129
RootNamespace.Error_GlobalNamespaceRedefined (report, lt.Location);
4132
var na = new UsingExternAlias (new SimpleMemberName (lt.Value, lt.Location), GetLocation (yyVals[-3+yyTop]));
4133
current_namespace.AddUsing (na);
4135
lbag.AddLocation (na, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
4140
#line 465 "cs-parser.jay"
4143
Lexer.doc_state = XmlCommentState.Allowed;
4147
#line 473 "cs-parser.jay"
4149
var un = new UsingNamespace ((ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
4150
current_namespace.AddUsing (un);
4152
lbag.AddLocation (un, GetLocation (yyVals[0+yyTop]));
4156
#line 480 "cs-parser.jay"
4158
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
4159
if (lang_version != LanguageVersion.ISO_1 && lt.Value == "global") {
4160
report.Warning (440, 2, lt.Location,
4161
"An alias named `global' will not be used when resolving `global::'. The global namespace will be used instead");
4164
var un = new UsingAliasNamespace (new SimpleMemberName (lt.Value, lt.Location), (ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
4165
current_namespace.AddUsing (un);
4166
lbag.AddLocation (un, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
4170
#line 492 "cs-parser.jay"
4172
Error_SyntaxError (yyToken);
4177
#line 505 "cs-parser.jay"
4179
Attributes attrs = (Attributes) yyVals[-2+yyTop];
4180
var name = (MemberName) yyVals[0+yyTop];
4181
if (attrs != null) {
4182
bool valid_global_attrs = true;
4183
if ((current_namespace.DeclarationFound || current_namespace != file)) {
4184
valid_global_attrs = false;
4186
foreach (var a in attrs.Attrs) {
4187
if (a.ExplicitTarget == "assembly" || a.ExplicitTarget == "module")
4190
valid_global_attrs = false;
4195
if (!valid_global_attrs)
4196
report.Error (1671, name.Location, "A namespace declaration cannot have modifiers or attributes");
4199
module.AddAttributes (attrs, current_namespace);
4201
var ns = new NamespaceContainer (name, current_namespace);
4202
current_namespace.AddTypeContainer (ns);
4203
current_container = current_namespace = ns;
4207
#line 533 "cs-parser.jay"
4210
Lexer.doc_state = XmlCommentState.Allowed;
4214
#line 538 "cs-parser.jay"
4216
if (yyVals[0+yyTop] != null)
4217
lbag.AddLocation (current_container, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
4219
lbag.AddLocation (current_container, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-1+yyTop]));
4221
current_container = current_namespace = current_namespace.Parent;
4225
#line 550 "cs-parser.jay"
4227
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4228
yyVal = new MemberName (lt.Value, lt.Location);
4232
#line 555 "cs-parser.jay"
4234
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4235
yyVal = new MemberName ((MemberName) yyVals[-2+yyTop], lt.Value, lt.Location) {
4236
DotLocation = GetLocation (yyVals[-1+yyTop])
4241
#line 562 "cs-parser.jay"
4243
Error_SyntaxError (yyToken);
4244
yyVal = new MemberName ("<invalid>", lexer.Location);
4248
#line 600 "cs-parser.jay"
4250
if (yyVals[0+yyTop] != null) {
4251
TypeContainer ds = (TypeContainer)yyVals[0+yyTop];
4253
if ((ds.ModFlags & (Modifiers.PRIVATE | Modifiers.PROTECTED)) != 0){
4254
report.Error (1527, ds.Location,
4255
"Namespace elements cannot be explicitly declared as private, protected or protected internal");
4258
/* Here is a trick, for explicit attributes we don't know where they belong to until*/
4259
/* we parse succeeding declaration hence we parse them as normal and re-attach them*/
4260
/* when we know whether they are global (assembly:, module:) or local (type:).*/
4261
if (ds.OptAttributes != null) {
4262
ds.OptAttributes.ConvertGlobalAttributes (ds, current_namespace, !current_namespace.DeclarationFound && current_namespace == file);
4265
current_namespace.DeclarationFound = true;
4269
#line 622 "cs-parser.jay"
4271
current_namespace.UnattachedAttributes = (Attributes) yyVals[-1+yyTop];
4272
report.Error (1518, lexer.Location, "Attributes must be attached to class, delegate, enum, interface or struct");
4273
lexer.putback ('}');
4277
#line 655 "cs-parser.jay"
4279
var sect = (List<Attribute>) yyVals[0+yyTop];
4280
yyVal = new Attributes (sect);
4281
if (locationListStack.Count > 0)
4282
lbag.AddLocation (sect, locationListStack.Pop ());
4283
if (attributeCommas.Count > 0) {
4284
lbag.AppendTo (sect, attributeCommas);
4285
attributeCommas.Clear ();
4290
#line 666 "cs-parser.jay"
4292
Attributes attrs = yyVals[-1+yyTop] as Attributes;
4293
var sect = (List<Attribute>) yyVals[0+yyTop];
4295
if (locationListStack.Count > 0)
4296
lbag.AddLocation (sect, locationListStack.Pop ());
4298
attrs = new Attributes (sect);
4300
attrs.AddAttributes (sect);
4305
#line 682 "cs-parser.jay"
4307
lexer.parsing_attribute_section = true;
4308
savedOpenLocation = GetLocation (yyVals[0+yyTop]);
4312
#line 687 "cs-parser.jay"
4314
lexer.parsing_attribute_section = false;
4315
yyVal = yyVals[0+yyTop];
4319
#line 695 "cs-parser.jay"
4321
current_attr_target = (string) yyVals[-1+yyTop];
4322
if (current_attr_target == "assembly" || current_attr_target == "module") {
4323
Lexer.check_incorrect_doc_comment ();
4328
#line 702 "cs-parser.jay"
4330
/* when attribute target is invalid*/
4331
if (current_attr_target == string.Empty)
4332
yyVal = new List<Attribute> (0);
4334
yyVal = yyVals[-2+yyTop];
4336
current_attr_target = null;
4337
lexer.parsing_attribute_section = false;
4338
if (yyVals[-1+yyTop] != null) {
4339
locationListStack.Push (new List<Location>(new [] { savedOpenLocation, savedCloseLocation, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]) }));
4341
locationListStack.Push (new List<Location>(new [] { savedOpenLocation, savedCloseLocation, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[0+yyTop]) }));
4346
#line 718 "cs-parser.jay"
4348
yyVal = yyVals[-2+yyTop];
4349
if (yyVals[-1+yyTop] != null) {
4350
locationListStack.Push (new List<Location>(new [] { savedOpenLocation, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]) }));
4352
locationListStack.Push (new List<Location>(new [] { savedOpenLocation, GetLocation (yyVals[0+yyTop]) }));
4357
#line 730 "cs-parser.jay"
4359
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4360
yyVal = CheckAttributeTarget (lt.Value, lt.Location);
4361
savedCloseLocation = GetLocation (yyVals[0+yyTop]);
4365
#line 738 "cs-parser.jay"
4367
if (yyToken == Token.IDENTIFIER) {
4368
Error_SyntaxError (yyToken);
4371
string name = GetTokenName (yyToken);
4372
yyVal = CheckAttributeTarget (name, GetLocation (yyVals[0+yyTop]));
4377
#line 755 "cs-parser.jay"
4379
var attrs = (List<Attribute>) yyVals[-2+yyTop];
4380
attrs.Add ((Attribute) yyVals[0+yyTop]);
4381
attributeCommas.Add (GetLocation (yyVals[-1+yyTop]));
4387
#line 770 "cs-parser.jay"
4389
--lexer.parsing_block;
4391
var tne = (ATypeNameExpression) yyVals[-2+yyTop];
4392
if (tne.HasTypeArguments) {
4393
report.Error (404, tne.Location, "Attributes cannot be generic");
4395
Arguments [] arguments = (Arguments []) yyVals[0+yyTop];
4397
yyVal = new Attribute (current_attr_target, tne, (Arguments[]) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]), lexer.IsEscapedIdentifier (tne));
4398
if (arguments != null) {
4399
attributeArgumentCommas.Insert (0, savedAttrParenOpenLocation);
4400
attributeArgumentCommas.Add (savedAttrParenCloseLocation);
4401
lbag.AddLocation (yyVal, attributeArgumentCommas);
4402
attributeArgumentCommas.Clear ();
4403
} else if (HadAttributeParens) {
4404
lbag.AddLocation (yyVal, savedAttrParenOpenLocation, savedAttrParenCloseLocation);
4409
#line 798 "cs-parser.jay"
4411
savedAttrParenOpenLocation = GetLocation (yyVals[-2+yyTop]);
4412
savedAttrParenCloseLocation = GetLocation (yyVals[0+yyTop]);
4413
yyVal = yyVals[-1+yyTop];
4414
HadAttributeParens = true;
4418
#line 810 "cs-parser.jay"
4420
Arguments a = new Arguments (4);
4421
a.Add ((Argument) yyVals[0+yyTop]);
4422
yyVal = new Arguments [] { a, null };
4426
#line 816 "cs-parser.jay"
4428
Arguments a = new Arguments (4);
4429
a.Add ((Argument) yyVals[0+yyTop]);
4430
yyVal = new Arguments [] { null, a };
4434
#line 822 "cs-parser.jay"
4436
Arguments[] o = (Arguments[]) yyVals[-2+yyTop];
4437
if (o [1] != null) {
4438
report.Error (1016, ((Argument) yyVals[0+yyTop]).Expr.Location, "Named attribute arguments must appear after the positional arguments");
4439
o [0] = new Arguments (4);
4442
Arguments args = ((Arguments) o [0]);
4443
if (args.Count > 0 && !(yyVals[0+yyTop] is NamedArgument) && args [args.Count - 1] is NamedArgument)
4444
Error_NamedArgumentExpected ((NamedArgument) args [args.Count - 1]);
4446
args.Add ((Argument) yyVals[0+yyTop]);
4447
attributeArgumentCommas.Add (GetLocation (yyVals[-1+yyTop]));
4451
#line 837 "cs-parser.jay"
4453
Arguments[] o = (Arguments[]) yyVals[-2+yyTop];
4454
if (o [1] == null) {
4455
o [1] = new Arguments (4);
4458
((Arguments) o [1]).Add ((Argument) yyVals[0+yyTop]);
4459
attributeArgumentCommas.Add (GetLocation (yyVals[-1+yyTop]));
4463
#line 862 "cs-parser.jay"
4465
--lexer.parsing_block;
4466
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
4467
yyVal = new NamedArgument (lt.Value, lt.Location, (Expression) yyVals[0+yyTop]);
4468
lbag.AddLocation (yyVal, GetLocation(yyVals[-2+yyTop]));
4472
#line 872 "cs-parser.jay"
4474
if (lang_version <= LanguageVersion.V_3)
4475
FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "named argument");
4477
/* Avoid boxing in common case (no modifier)*/
4478
var arg_mod = yyVals[-1+yyTop] == null ? Argument.AType.None : (Argument.AType) yyVals[-1+yyTop];
4480
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
4481
yyVal = new NamedArgument (lt.Value, lt.Location, (Expression) yyVals[0+yyTop], arg_mod);
4482
lbag.AddLocation (yyVal, GetLocation(yyVals[-2+yyTop]));
4486
#line 926 "cs-parser.jay"
4488
report.Error (1519, lexer.Location, "Unexpected symbol `{0}' in class, struct, or interface member declaration",
4489
GetSymbolName (yyToken));
4491
lexer.parsing_generic_declaration = false;
4495
#line 943 "cs-parser.jay"
4497
push_current_container (new Struct (current_container, (MemberName) yyVals[0+yyTop], (Modifiers) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop]), yyVals[-3+yyTop]);
4498
lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]));
4502
#line 949 "cs-parser.jay"
4504
lexer.ConstraintsParsing = false;
4506
if (yyVals[0+yyTop] != null)
4507
current_container.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
4510
current_container.PartialContainer.DocComment = Lexer.consume_doc_comment ();
4513
lexer.parsing_modifiers = true;
4517
#line 962 "cs-parser.jay"
4520
Lexer.doc_state = XmlCommentState.Allowed;
4524
#line 967 "cs-parser.jay"
4526
--lexer.parsing_declaration;
4528
Lexer.doc_state = XmlCommentState.Allowed;
4532
#line 973 "cs-parser.jay"
4534
if (yyVals[0+yyTop] == null) {
4535
lbag.AppendToMember (current_container, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]));
4537
lbag.AppendToMember (current_container, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
4539
yyVal = pop_current_class ();
4543
#line 991 "cs-parser.jay"
4545
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4546
var mod = (Modifiers) yyVals[-3+yyTop];
4547
current_field = new Const (current_type, (FullNamedExpression) yyVals[-1+yyTop], mod, new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-4+yyTop]);
4548
current_type.AddMember (current_field);
4550
if ((mod & Modifiers.STATIC) != 0) {
4551
report.Error (504, current_field.Location, "The constant `{0}' cannot be marked static", current_field.GetSignatureForError ());
4554
yyVal = current_field;
4558
#line 1004 "cs-parser.jay"
4561
current_field.DocComment = Lexer.consume_doc_comment ();
4562
Lexer.doc_state = XmlCommentState.Allowed;
4565
current_field.Initializer = (ConstInitializer) yyVals[-2+yyTop];
4566
lbag.AddMember (current_field, GetModifierLocations (), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
4567
current_field = null;
4571
#line 1034 "cs-parser.jay"
4573
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
4574
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (ConstInitializer) yyVals[0+yyTop]);
4575
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
4579
#line 1047 "cs-parser.jay"
4581
--lexer.parsing_block;
4582
yyVal = new ConstInitializer (current_field, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
4583
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
4587
#line 1053 "cs-parser.jay"
4589
report.Error (145, lexer.Location, "A const field requires a value to be provided");
4594
#line 1068 "cs-parser.jay"
4596
lexer.parsing_generic_declaration = false;
4598
FullNamedExpression type = (FullNamedExpression) yyVals[-1+yyTop];
4599
if (type.Type != null && type.Type.Kind == MemberKind.Void)
4600
report.Error (670, GetLocation (yyVals[-1+yyTop]), "Fields cannot have void type");
4602
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4603
current_field = new Field (current_type, type, (Modifiers) yyVals[-2+yyTop], new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-3+yyTop]);
4604
current_type.AddField (current_field);
4605
yyVal = current_field;
4609
#line 1083 "cs-parser.jay"
4612
current_field.DocComment = Lexer.consume_doc_comment ();
4613
Lexer.doc_state = XmlCommentState.Allowed;
4616
lbag.AddMember (current_field, GetModifierLocations (), GetLocation (yyVals[0+yyTop]));
4617
yyVal = current_field;
4618
current_field = null;
4622
#line 1096 "cs-parser.jay"
4624
if (lang_version < LanguageVersion.ISO_2)
4625
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "fixed size buffers");
4627
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4628
current_field = new FixedField (current_type, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop],
4629
new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-4+yyTop]);
4631
current_type.AddField (current_field);
4635
#line 1107 "cs-parser.jay"
4638
current_field.DocComment = Lexer.consume_doc_comment ();
4639
Lexer.doc_state = XmlCommentState.Allowed;
4642
current_field.Initializer = (ConstInitializer) yyVals[-2+yyTop];
4643
lbag.AddMember (current_field, GetModifierLocations (), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
4644
yyVal = current_field;
4645
current_field = null;
4649
#line 1130 "cs-parser.jay"
4651
++lexer.parsing_block;
4652
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
4653
start_block (GetLocation (yyVals[0+yyTop]));
4657
#line 1136 "cs-parser.jay"
4659
--lexer.parsing_block;
4660
current_field.Initializer = (Expression) yyVals[0+yyTop];
4661
lbag.AppendToMember (current_field, GetLocation (yyVals[-2+yyTop]));
4662
end_block (lexer.Location);
4663
current_local_parameters = null;
4667
#line 1163 "cs-parser.jay"
4669
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4670
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), null);
4671
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
4675
#line 1173 "cs-parser.jay"
4677
--lexer.parsing_block;
4678
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
4679
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (Expression) yyVals[0+yyTop]);
4680
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
4684
#line 1199 "cs-parser.jay"
4686
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
4687
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (ConstInitializer) yyVals[0+yyTop]);
4688
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
4692
#line 1212 "cs-parser.jay"
4694
--lexer.parsing_block;
4695
yyVal = new ConstInitializer (current_field, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
4696
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
4700
#line 1218 "cs-parser.jay"
4702
report.Error (443, lexer.Location, "Value or constant expected");
4707
#line 1228 "cs-parser.jay"
4709
/* It has to be here for the parent to safely restore artificial block*/
4710
Error_SyntaxError (yyToken);
4715
#line 1237 "cs-parser.jay"
4718
Lexer.doc_state = XmlCommentState.NotAllowed;
4720
/* Add it early in the case of body being eof for full ast*/
4721
Method m = (Method) yyVals[0+yyTop];
4722
async_block = (m.ModFlags & Modifiers.ASYNC) != 0;
4723
current_type.AddMember (m);
4727
#line 1247 "cs-parser.jay"
4729
Method method = (Method) yyVals[-2+yyTop];
4730
method.Block = (ToplevelBlock) yyVals[0+yyTop];
4731
async_block = false;
4733
if (method.Block == null) {
4734
lbag.AppendToMember (method, savedLocation); /* semicolon*/
4735
method.ParameterInfo.CheckParameters (method);
4737
if ((method.ModFlags & Modifiers.ASYNC) != 0) {
4738
report.Error (1994, method.Location, "`{0}': The async modifier can only be used with methods that have a body",
4739
method.GetSignatureForError ());
4742
if (current_container.Kind == MemberKind.Interface) {
4743
report.Error (531, method.Location, "`{0}': interface members cannot have a definition",
4744
method.GetSignatureForError ());
4748
current_local_parameters = null;
4751
Lexer.doc_state = XmlCommentState.Allowed;
4755
#line 1287 "cs-parser.jay"
4757
lexer.ConstraintsParsing = false;
4758
valid_param_mod = 0;
4759
MemberName name = (MemberName) yyVals[-6+yyTop];
4760
current_local_parameters = (ParametersCompiled) yyVals[-3+yyTop];
4762
var method = Method.Create (current_type, (FullNamedExpression) yyVals[-7+yyTop], (Modifiers) yyVals[-8+yyTop],
4763
name, current_local_parameters, (Attributes) yyVals[-9+yyTop], yyVals[0+yyTop] != null);
4765
if (yyVals[0+yyTop] != null)
4766
method.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
4769
method.DocComment = Lexer.consume_doc_comment ();
4771
lbag.AddMember (method, GetModifierLocations (), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]));
4776
#line 1314 "cs-parser.jay"
4778
lexer.parsing_generic_declaration = false;
4779
valid_param_mod = ParameterModifierType.All;
4783
#line 1323 "cs-parser.jay"
4785
lexer.ConstraintsParsing = false;
4786
valid_param_mod = 0;
4788
MemberName name = (MemberName) yyVals[-6+yyTop];
4789
current_local_parameters = (ParametersCompiled) yyVals[-3+yyTop];
4791
var modifiers = (Modifiers) yyVals[-10+yyTop];
4792
modifiers |= Modifiers.PARTIAL;
4794
var method = Method.Create (current_type, new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-8+yyTop])),
4795
modifiers, name, current_local_parameters, (Attributes) yyVals[-11+yyTop], yyVals[-1+yyTop] != null);
4797
if (yyVals[-1+yyTop] != null)
4798
method.SetConstraints ((List<Constraints>) yyVals[-1+yyTop]);
4801
method.DocComment = Lexer.consume_doc_comment ();
4803
StoreModifierLocation (Modifiers.PARTIAL, GetLocation (yyVals[-9+yyTop]));
4804
lbag.AddMember (method, GetModifierLocations (), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]));
4809
#line 1350 "cs-parser.jay"
4811
MemberName name = (MemberName) yyVals[-3+yyTop];
4812
report.Error (1585, name.Location,
4813
"Member modifier `{0}' must precede the member type and name", ModifiersExtensions.Name ((Modifiers) yyVals[-4+yyTop]));
4815
var method = Method.Create (current_type, (FullNamedExpression) yyVals[-5+yyTop],
4816
0, name, (ParametersCompiled) yyVals[-1+yyTop], (Attributes) yyVals[-7+yyTop], false);
4818
current_local_parameters = (ParametersCompiled) yyVals[-1+yyTop];
4821
method.DocComment = Lexer.consume_doc_comment ();
4827
#line 1369 "cs-parser.jay"
4829
Error_SyntaxError (yyToken);
4830
current_local_parameters = ParametersCompiled.Undefined;
4832
MemberName name = (MemberName) yyVals[-1+yyTop];
4833
var method = Method.Create (current_type, (FullNamedExpression) yyVals[-2+yyTop], (Modifiers) yyVals[-3+yyTop],
4834
name, current_local_parameters, (Attributes) yyVals[-4+yyTop], false);
4837
method.DocComment = Lexer.consume_doc_comment ();
4843
#line 1396 "cs-parser.jay"
4845
var pars_list = (List<Parameter>) yyVals[0+yyTop];
4846
yyVal = new ParametersCompiled (pars_list.ToArray ());
4847
lbag.AddLocation (yyVal, parameterListCommas);
4851
#line 1402 "cs-parser.jay"
4853
var pars_list = (List<Parameter>) yyVals[-2+yyTop];
4854
pars_list.Add ((Parameter) yyVals[0+yyTop]);
4855
parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
4857
yyVal = new ParametersCompiled (pars_list.ToArray ());
4858
lbag.AddLocation (yyVal, parameterListCommas);
4862
#line 1411 "cs-parser.jay"
4864
var pars_list = (List<Parameter>) yyVals[-2+yyTop];
4865
pars_list.Add (new ArglistParameter (GetLocation (yyVals[0+yyTop])));
4866
parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
4868
yyVal = new ParametersCompiled (pars_list.ToArray (), true);
4869
lbag.AddLocation (yyVal, parameterListCommas);
4873
#line 1420 "cs-parser.jay"
4875
if (yyVals[-2+yyTop] != null)
4876
report.Error (231, ((Parameter) yyVals[-2+yyTop]).Location, "A params parameter must be the last parameter in a formal parameter list");
4878
yyVal = new ParametersCompiled (new Parameter[] { (Parameter) yyVals[-2+yyTop] } );
4879
lbag.AddLocation (yyVal, parameterListCommas);
4883
#line 1428 "cs-parser.jay"
4885
if (yyVals[-2+yyTop] != null)
4886
report.Error (231, ((Parameter) yyVals[-2+yyTop]).Location, "A params parameter must be the last parameter in a formal parameter list");
4888
var pars_list = (List<Parameter>) yyVals[-4+yyTop];
4889
pars_list.Add (new ArglistParameter (GetLocation (yyVals[-2+yyTop])));
4890
parameterListCommas.Add (GetLocation (yyVals[-3+yyTop]));
4891
parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
4893
yyVal = new ParametersCompiled (pars_list.ToArray (), true);
4894
lbag.AddLocation (yyVal, parameterListCommas);
4898
#line 1441 "cs-parser.jay"
4900
report.Error (257, GetLocation (yyVals[-2+yyTop]), "An __arglist parameter must be the last parameter in a formal parameter list");
4902
yyVal = new ParametersCompiled (new Parameter [] { new ArglistParameter (GetLocation (yyVals[-2+yyTop])) }, true);
4903
lbag.AddLocation (yyVal, parameterListCommas);
4907
#line 1448 "cs-parser.jay"
4909
report.Error (257, GetLocation (yyVals[-2+yyTop]), "An __arglist parameter must be the last parameter in a formal parameter list");
4911
var pars_list = (List<Parameter>) yyVals[-4+yyTop];
4912
pars_list.Add (new ArglistParameter (GetLocation (yyVals[-2+yyTop])));
4913
parameterListCommas.Add (GetLocation (yyVals[-3+yyTop]));
4914
parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
4916
yyVal = new ParametersCompiled (pars_list.ToArray (), true);
4917
lbag.AddLocation (yyVal, parameterListCommas);
4921
#line 1468 "cs-parser.jay"
4923
Error_SyntaxError (yyToken);
4924
yyVal = ParametersCompiled.EmptyReadOnlyParameters;
4928
#line 1476 "cs-parser.jay"
4930
parameters_bucket.Clear ();
4931
Parameter p = (Parameter) yyVals[0+yyTop];
4932
parameters_bucket.Add (p);
4933
parameterListCommas.Clear ();
4934
default_parameter_used = p.HasDefaultValue;
4935
yyVal = parameters_bucket;
4939
#line 1485 "cs-parser.jay"
4941
var pars = (List<Parameter>) yyVals[-2+yyTop];
4942
Parameter p = (Parameter) yyVals[0+yyTop];
4944
if (p.HasExtensionMethodModifier)
4945
report.Error (1100, p.Location, "The parameter modifier `this' can only be used on the first parameter");
4946
else if (!p.HasDefaultValue && default_parameter_used)
4947
report.Error (1737, p.Location, "Optional parameter cannot precede required parameters");
4949
default_parameter_used |= p.HasDefaultValue;
4952
parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
4955
yyVal = yyVals[-2+yyTop];
4959
#line 1509 "cs-parser.jay"
4961
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4962
yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Parameter.Modifier) yyVals[-2+yyTop], (Attributes) yyVals[-3+yyTop], lt.Location);
4963
lbag.AddLocation (yyVal, parameterModifierLocation);
4967
#line 1518 "cs-parser.jay"
4969
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
4970
report.Error (1552, lt.Location, "Array type specifier, [], must appear before parameter name");
4971
yyVal = new Parameter ((FullNamedExpression) yyVals[-3+yyTop], lt.Value, (Parameter.Modifier) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop], lt.Location);
4972
lbag.AddLocation (yyVal, parameterModifierLocation);
4976
#line 1525 "cs-parser.jay"
4978
Error_SyntaxError (yyToken);
4979
Location l = GetLocation (yyVals[0+yyTop]);
4980
yyVal = new Parameter (null, null, Parameter.Modifier.NONE, (Attributes) yyVals[-1+yyTop], l);
4984
#line 1534 "cs-parser.jay"
4986
Error_SyntaxError (yyToken);
4987
Location l = GetLocation (yyVals[0+yyTop]);
4988
yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], null, (Parameter.Modifier) yyVals[-2+yyTop], (Attributes) yyVals[-3+yyTop], l);
4989
lbag.AddLocation (yyVal, parameterModifierLocation);
4993
#line 1549 "cs-parser.jay"
4995
--lexer.parsing_block;
4996
if (lang_version <= LanguageVersion.V_3) {
4997
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "optional parameter");
5000
Parameter.Modifier mod = (Parameter.Modifier) yyVals[-5+yyTop];
5001
if (mod != Parameter.Modifier.NONE) {
5003
case Parameter.Modifier.REF:
5004
case Parameter.Modifier.OUT:
5005
report.Error (1741, GetLocation (yyVals[-5+yyTop]), "Cannot specify a default value for the `{0}' parameter",
5006
Parameter.GetModifierSignature (mod));
5009
case Parameter.Modifier.This:
5010
report.Error (1743, GetLocation (yyVals[-5+yyTop]), "Cannot specify a default value for the `{0}' parameter",
5011
Parameter.GetModifierSignature (mod));
5014
throw new NotImplementedException (mod.ToString ());
5017
mod = Parameter.Modifier.NONE;
5020
if ((valid_param_mod & ParameterModifierType.DefaultValue) == 0)
5021
report.Error (1065, GetLocation (yyVals[-2+yyTop]), "Optional parameter is not valid in this context");
5023
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
5024
yyVal = new Parameter ((FullNamedExpression) yyVals[-4+yyTop], lt.Value, mod, (Attributes) yyVals[-6+yyTop], lt.Location);
5025
lbag.AddLocation (yyVal, parameterModifierLocation, GetLocation (yyVals[-2+yyTop])); /* parameterModifierLocation should be ignored when mod == NONE*/
5027
if (yyVals[0+yyTop] != null)
5028
((Parameter) yyVal).DefaultValue = new DefaultParameterValueExpression ((Expression) yyVals[0+yyTop]);
5032
#line 1598 "cs-parser.jay"
5034
Parameter.Modifier p2 = (Parameter.Modifier)yyVals[0+yyTop];
5035
Parameter.Modifier mod = (Parameter.Modifier)yyVals[-1+yyTop] | p2;
5036
if (((Parameter.Modifier)yyVals[-1+yyTop] & p2) == p2) {
5037
Error_DuplicateParameterModifier (lexer.Location, p2);
5039
switch (mod & ~Parameter.Modifier.This) {
5040
case Parameter.Modifier.REF:
5041
report.Error (1101, lexer.Location, "The parameter modifiers `this' and `ref' cannot be used altogether");
5043
case Parameter.Modifier.OUT:
5044
report.Error (1102, lexer.Location, "The parameter modifiers `this' and `out' cannot be used altogether");
5047
report.Error (1108, lexer.Location, "A parameter cannot have specified more than one modifier");
5055
#line 1622 "cs-parser.jay"
5057
if ((valid_param_mod & ParameterModifierType.Ref) == 0)
5058
Error_ParameterModifierNotValid ("ref", GetLocation (yyVals[0+yyTop]));
5059
parameterModifierLocation = GetLocation (yyVals[0+yyTop]);
5060
yyVal = Parameter.Modifier.REF;
5064
#line 1629 "cs-parser.jay"
5066
if ((valid_param_mod & ParameterModifierType.Out) == 0)
5067
Error_ParameterModifierNotValid ("out", GetLocation (yyVals[0+yyTop]));
5068
parameterModifierLocation = GetLocation (yyVals[0+yyTop]);
5069
yyVal = Parameter.Modifier.OUT;
5073
#line 1636 "cs-parser.jay"
5075
if ((valid_param_mod & ParameterModifierType.This) == 0)
5076
Error_ParameterModifierNotValid ("this", GetLocation (yyVals[0+yyTop]));
5078
if (lang_version <= LanguageVersion.ISO_2)
5079
FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "extension methods");
5080
parameterModifierLocation = GetLocation (yyVals[0+yyTop]);
5081
yyVal = Parameter.Modifier.This;
5085
#line 1649 "cs-parser.jay"
5087
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
5088
yyVal = new ParamsParameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Attributes) yyVals[-3+yyTop], lt.Location);
5089
lbag.AddLocation (yyVal, savedLocation);
5093
#line 1655 "cs-parser.jay"
5095
report.Error (1751, GetLocation (yyVals[-4+yyTop]), "Cannot specify a default value for a parameter array");
5097
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
5098
yyVal = new ParamsParameter ((FullNamedExpression) yyVals[-3+yyTop], lt.Value, (Attributes) yyVals[-5+yyTop], lt.Location);
5099
lbag.AddLocation (yyVal, savedLocation);
5103
#line 1663 "cs-parser.jay"
5105
Error_SyntaxError (yyToken);
5110
#line 1671 "cs-parser.jay"
5112
if ((valid_param_mod & ParameterModifierType.Params) == 0)
5113
report.Error (1670, (GetLocation (yyVals[0+yyTop])), "The `params' modifier is not allowed in current context");
5114
savedLocation = GetLocation (yyVals[0+yyTop]);
5118
#line 1677 "cs-parser.jay"
5120
Parameter.Modifier mod = (Parameter.Modifier)yyVals[0+yyTop];
5121
if ((mod & Parameter.Modifier.This) != 0) {
5122
report.Error (1104, GetLocation (yyVals[-1+yyTop]), "The parameter modifiers `this' and `params' cannot be used altogether");
5124
report.Error (1611, GetLocation (yyVals[-1+yyTop]), "The params parameter cannot be declared as ref or out");
5126
savedLocation = GetLocation (yyVals[-1+yyTop]);
5130
#line 1694 "cs-parser.jay"
5132
if ((valid_param_mod & ParameterModifierType.Arglist) == 0)
5133
report.Error (1669, GetLocation (yyVals[0+yyTop]), "__arglist is not valid in this context");
5137
#line 1705 "cs-parser.jay"
5140
tmpComment = Lexer.consume_doc_comment ();
5144
#line 1710 "cs-parser.jay"
5146
var type = (FullNamedExpression) yyVals[-3+yyTop];
5147
current_property = new Property (current_type, type, (Modifiers) yyVals[-4+yyTop],
5148
(MemberName) yyVals[-2+yyTop], (Attributes) yyVals[-5+yyTop]);
5150
if (type.Type != null && type.Type.Kind == MemberKind.Void)
5151
report.Error (547, GetLocation (yyVals[-3+yyTop]), "`{0}': property or indexer cannot have void type", current_property.GetSignatureForError ());
5153
current_type.AddMember (current_property);
5154
lbag.AddMember (current_property, GetModifierLocations (), GetLocation (yyVals[0+yyTop]));
5156
lexer.PropertyParsing = true;
5160
#line 1724 "cs-parser.jay"
5162
lexer.PropertyParsing = false;
5165
current_property.DocComment = ConsumeStoredComment ();
5169
#line 1731 "cs-parser.jay"
5171
lbag.AppendToMember (current_property, GetLocation (yyVals[0+yyTop]));
5172
current_property = null;
5176
#line 1745 "cs-parser.jay"
5178
valid_param_mod = 0;
5179
var type = (FullNamedExpression) yyVals[-6+yyTop];
5180
Indexer indexer = new Indexer (current_type, type, (MemberName) yyVals[-5+yyTop], (Modifiers) yyVals[-7+yyTop], (ParametersCompiled) yyVals[-2+yyTop], (Attributes) yyVals[-8+yyTop]);
5182
current_property = indexer;
5184
current_type.AddIndexer (indexer);
5185
lbag.AddMember (current_property, GetModifierLocations (), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
5187
if (type.Type != null && type.Type.Kind == MemberKind.Void)
5188
report.Error (620, GetLocation (yyVals[-6+yyTop]), "`{0}': indexer return type cannot be `void'", indexer.GetSignatureForError ());
5190
if (indexer.ParameterInfo.IsEmpty) {
5191
report.Error (1551, GetLocation (yyVals[-4+yyTop]), "Indexers must have at least one parameter");
5195
tmpComment = Lexer.consume_doc_comment ();
5196
Lexer.doc_state = XmlCommentState.Allowed;
5199
lexer.PropertyParsing = true;
5203
#line 1774 "cs-parser.jay"
5205
if (current_property.AccessorFirst != null && current_property.AccessorFirst.Block == null)
5206
((Indexer) current_property).ParameterInfo.CheckParameters (current_property);
5209
current_property.DocComment = ConsumeStoredComment ();
5211
lbag.AppendToMember (current_property, GetLocation (yyVals[-1+yyTop]));
5212
current_property = null;
5216
#line 1793 "cs-parser.jay"
5218
if (yyToken == Token.CLOSE_BRACE) {
5219
report.Error (548, lexer.Location, "`{0}': property or indexer must have at least one accessor", current_property.GetSignatureForError ());
5221
if (yyToken == Token.SEMICOLON)
5222
report.Error (1597, lexer.Location, "Semicolon after method or accessor block is not valid");
5224
report.Error (1014, GetLocation (yyVals[0+yyTop]), "A get or set accessor expected");
5229
#line 1807 "cs-parser.jay"
5231
if (yyVals[-1+yyTop] != ModifierNone && lang_version == LanguageVersion.ISO_1) {
5232
FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "access modifiers on properties");
5235
if (current_property.Get != null) {
5236
report.Error (1007, GetLocation (yyVals[0+yyTop]), "Property accessor already defined");
5239
if (current_property is Indexer) {
5240
current_property.Get = new Indexer.GetIndexerMethod (current_property, (Modifiers) yyVals[-1+yyTop], ((Indexer)current_property).ParameterInfo.Clone (),
5241
(Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
5243
current_property.Get = new Property.GetMethod (current_property,
5244
(Modifiers) yyVals[-1+yyTop], (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
5247
current_local_parameters = current_property.Get.ParameterInfo;
5248
lexer.PropertyParsing = false;
5252
#line 1828 "cs-parser.jay"
5254
if (yyVals[0+yyTop] != null) {
5255
current_property.Get.Block = (ToplevelBlock) yyVals[0+yyTop];
5257
if (current_container.Kind == MemberKind.Interface) {
5258
report.Error (531, current_property.Get.Block.StartLocation,
5259
"`{0}': interface members cannot have a definition", current_property.Get.GetSignatureForError ());
5261
lbag.AddMember (current_property.Get, GetModifierLocations ());
5263
lbag.AddMember (current_property.Get, GetModifierLocations (), savedLocation);
5266
current_local_parameters = null;
5267
lexer.PropertyParsing = true;
5270
if (Lexer.doc_state == XmlCommentState.Error)
5271
Lexer.doc_state = XmlCommentState.NotAllowed;
5275
#line 1852 "cs-parser.jay"
5277
if (yyVals[-1+yyTop] != ModifierNone && lang_version == LanguageVersion.ISO_1) {
5278
FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "access modifiers on properties");
5281
if (current_property.Set != null) {
5282
report.Error (1007, GetLocation (yyVals[0+yyTop]), "Property accessor already defined");
5285
if (current_property is Indexer) {
5286
current_property.Set = new Indexer.SetIndexerMethod (current_property, (Modifiers) yyVals[-1+yyTop],
5287
ParametersCompiled.MergeGenerated (compiler,
5288
((Indexer)current_property).ParameterInfo, true, new Parameter (
5289
current_property.TypeExpression, "value", Parameter.Modifier.NONE, null, GetLocation (yyVals[0+yyTop])),
5291
(Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
5293
current_property.Set = new Property.SetMethod (current_property, (Modifiers) yyVals[-1+yyTop],
5294
ParametersCompiled.CreateImplicitParameter (current_property.TypeExpression, GetLocation (yyVals[0+yyTop])),
5295
(Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
5298
current_local_parameters = current_property.Set.ParameterInfo;
5299
lexer.PropertyParsing = false;
5303
#line 1878 "cs-parser.jay"
5305
if (yyVals[0+yyTop] != null) {
5306
current_property.Set.Block = (ToplevelBlock) yyVals[0+yyTop];
5308
if (current_container.Kind == MemberKind.Interface) {
5309
report.Error (531, current_property.Set.Block.StartLocation,
5310
"`{0}': interface members cannot have a definition", current_property.Set.GetSignatureForError ());
5312
lbag.AddMember (current_property.Set, GetModifierLocations ());
5314
lbag.AddMember (current_property.Set, GetModifierLocations (), savedLocation);
5317
current_local_parameters = null;
5318
lexer.PropertyParsing = true;
5321
&& Lexer.doc_state == XmlCommentState.Error)
5322
Lexer.doc_state = XmlCommentState.NotAllowed;
5326
#line 1903 "cs-parser.jay"
5328
savedLocation = GetLocation (yyVals[0+yyTop]);
5333
#line 1908 "cs-parser.jay"
5335
Error_SyntaxError (1043, yyToken, "Invalid accessor body");
5340
#line 1923 "cs-parser.jay"
5342
push_current_container (new Interface (current_container, (MemberName) yyVals[0+yyTop], (Modifiers) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop]), yyVals[-3+yyTop]);
5343
lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]));
5347
#line 1929 "cs-parser.jay"
5349
lexer.ConstraintsParsing = false;
5351
if (yyVals[0+yyTop] != null)
5352
current_container.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
5355
current_container.PartialContainer.DocComment = Lexer.consume_doc_comment ();
5356
Lexer.doc_state = XmlCommentState.Allowed;
5359
lexer.parsing_modifiers = true;
5363
#line 1943 "cs-parser.jay"
5365
--lexer.parsing_declaration;
5367
Lexer.doc_state = XmlCommentState.Allowed;
5371
#line 1949 "cs-parser.jay"
5373
if (yyVals[0+yyTop] == null) {
5374
lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
5376
lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
5378
yyVal = pop_current_class ();
5382
#line 2011 "cs-parser.jay"
5384
OperatorDeclaration decl = (OperatorDeclaration) yyVals[-2+yyTop];
5386
Operator op = new Operator (
5387
current_type, decl.optype, decl.ret_type, (Modifiers) yyVals[-3+yyTop],
5388
current_local_parameters,
5389
(ToplevelBlock) yyVals[0+yyTop], (Attributes) yyVals[-4+yyTop], decl.location);
5391
if (op.Block == null)
5392
op.ParameterInfo.CheckParameters (op);
5395
op.DocComment = tmpComment;
5396
Lexer.doc_state = XmlCommentState.Allowed;
5399
/* Note again, checking is done in semantic analysis*/
5400
current_type.AddOperator (op);
5402
lbag.AddMember (op, GetModifierLocations (), lbag.GetLocations (decl));
5403
if (yyVals[0+yyTop] == null) { /* Semicolon*/
5404
lbag.AppendTo (op, savedLocation);
5408
current_local_parameters = null;
5412
#line 2048 "cs-parser.jay"
5414
report.Error (590, GetLocation (yyVals[0+yyTop]), "User-defined operators cannot return void");
5415
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
5419
#line 2060 "cs-parser.jay"
5421
valid_param_mod = 0;
5423
Location loc = GetLocation (yyVals[-5+yyTop]);
5424
Operator.OpType op = (Operator.OpType) yyVals[-4+yyTop];
5425
current_local_parameters = (ParametersCompiled)yyVals[-1+yyTop];
5427
int p_count = current_local_parameters.Count;
5429
if (op == Operator.OpType.Addition)
5430
op = Operator.OpType.UnaryPlus;
5431
else if (op == Operator.OpType.Subtraction)
5432
op = Operator.OpType.UnaryNegation;
5435
if (IsUnaryOperator (op)) {
5437
report.Error (1020, loc, "Overloadable binary operator expected");
5438
} else if (p_count != 1) {
5439
report.Error (1535, loc, "Overloaded unary operator `{0}' takes one parameter",
5440
Operator.GetName (op));
5444
report.Error (1534, loc, "Overloaded binary operator `{0}' takes two parameters",
5445
Operator.GetName (op));
5446
} else if (p_count != 2) {
5447
report.Error (1019, loc, "Overloadable unary operator expected");
5452
tmpComment = Lexer.consume_doc_comment ();
5453
Lexer.doc_state = XmlCommentState.NotAllowed;
5456
yyVal = new OperatorDeclaration (op, (FullNamedExpression) yyVals[-6+yyTop], loc);
5457
lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), savedOperatorLocation, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5461
#line 2136 "cs-parser.jay"
5463
valid_param_mod = 0;
5465
Location loc = GetLocation (yyVals[-5+yyTop]);
5466
current_local_parameters = (ParametersCompiled)yyVals[-1+yyTop];
5469
tmpComment = Lexer.consume_doc_comment ();
5470
Lexer.doc_state = XmlCommentState.NotAllowed;
5473
yyVal = new OperatorDeclaration (Operator.OpType.Implicit, (FullNamedExpression) yyVals[-4+yyTop], loc);
5474
lbag.AddLocation (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5478
#line 2155 "cs-parser.jay"
5480
valid_param_mod = 0;
5482
Location loc = GetLocation (yyVals[-5+yyTop]);
5483
current_local_parameters = (ParametersCompiled)yyVals[-1+yyTop];
5486
tmpComment = Lexer.consume_doc_comment ();
5487
Lexer.doc_state = XmlCommentState.NotAllowed;
5490
yyVal = new OperatorDeclaration (Operator.OpType.Explicit, (FullNamedExpression) yyVals[-4+yyTop], loc);
5491
lbag.AddLocation (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5495
#line 2170 "cs-parser.jay"
5497
Error_SyntaxError (yyToken);
5498
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
5499
yyVal = new OperatorDeclaration (Operator.OpType.Implicit, null, GetLocation (yyVals[-1+yyTop]));
5503
#line 2176 "cs-parser.jay"
5505
Error_SyntaxError (yyToken);
5506
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
5507
yyVal = new OperatorDeclaration (Operator.OpType.Explicit, null, GetLocation (yyVals[-1+yyTop]));
5511
#line 2186 "cs-parser.jay"
5513
Constructor c = (Constructor) yyVals[-1+yyTop];
5514
c.Block = (ToplevelBlock) yyVals[0+yyTop];
5517
c.DocComment = ConsumeStoredComment ();
5519
current_local_parameters = null;
5521
Lexer.doc_state = XmlCommentState.Allowed;
5525
#line 2203 "cs-parser.jay"
5528
tmpComment = Lexer.consume_doc_comment ();
5529
Lexer.doc_state = XmlCommentState.Allowed;
5532
valid_param_mod = ParameterModifierType.All;
5536
#line 2212 "cs-parser.jay"
5538
valid_param_mod = 0;
5539
current_local_parameters = (ParametersCompiled) yyVals[-1+yyTop];
5541
var lt = (Tokenizer.LocatedToken) yyVals[-4+yyTop];
5542
var mods = (Modifiers) yyVals[-5+yyTop];
5543
var c = new Constructor (current_type, lt.Value, mods, (Attributes) yyVals[-6+yyTop], current_local_parameters, lt.Location);
5545
if (lt.Value != current_container.MemberName.Name) {
5546
report.Error (1520, c.Location, "Class, struct, or interface method must have a return type");
5547
} else if ((mods & Modifiers.STATIC) != 0) {
5548
if ((mods & Modifiers.AccessibilityMask) != 0){
5549
report.Error (515, c.Location,
5550
"`{0}': static constructor cannot have an access modifier",
5551
c.GetSignatureForError ());
5555
current_type.AddConstructor (c);
5556
lbag.AddMember (c, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
5560
/* start block here, so possible anonymous methods inside*/
5561
/* constructor initializer can get correct parent block*/
5563
start_block (lexer.Location);
5567
#line 2241 "cs-parser.jay"
5569
if (yyVals[0+yyTop] != null) {
5570
var c = (Constructor) yyVals[-1+yyTop];
5571
c.Initializer = (ConstructorInitializer) yyVals[0+yyTop];
5574
report.Error (514, c.Location,
5575
"`{0}': static constructor cannot have an explicit `this' or `base' constructor call",
5576
c.GetSignatureForError ());
5580
yyVal = yyVals[-1+yyTop];
5584
#line 2273 "cs-parser.jay"
5586
--lexer.parsing_block;
5587
yyVal = new ConstructorBaseInitializer ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
5588
lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5592
#line 2283 "cs-parser.jay"
5594
--lexer.parsing_block;
5595
yyVal = new ConstructorThisInitializer ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
5596
lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5600
#line 2289 "cs-parser.jay"
5602
Error_SyntaxError (yyToken);
5603
yyVal = new ConstructorThisInitializer (null, GetLocation (yyVals[0+yyTop]));
5604
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
5608
#line 2295 "cs-parser.jay"
5610
Error_SyntaxError (yyToken);
5615
#line 2303 "cs-parser.jay"
5618
tmpComment = Lexer.consume_doc_comment ();
5619
Lexer.doc_state = XmlCommentState.NotAllowed;
5622
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
5626
#line 2312 "cs-parser.jay"
5628
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
5629
if (lt.Value != current_container.MemberName.Name){
5630
report.Error (574, lt.Location, "Name of destructor must match name of class");
5631
} else if (current_container.Kind != MemberKind.Class){
5632
report.Error (575, lt.Location, "Only class types can contain destructor");
5635
Destructor d = new Destructor (current_type, (Modifiers) yyVals[-6+yyTop],
5636
ParametersCompiled.EmptyReadOnlyParameters, (Attributes) yyVals[-7+yyTop], lt.Location);
5637
d.Identifier = lt.Value;
5639
d.DocComment = ConsumeStoredComment ();
5641
d.Block = (ToplevelBlock) yyVals[0+yyTop];
5642
current_type.AddMember (d);
5643
lbag.AddMember (d, GetModifierLocations (), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[-1+yyTop]));
5645
current_local_parameters = null;
5649
#line 2338 "cs-parser.jay"
5651
current_event_field = new EventField (current_type, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop], (MemberName) yyVals[0+yyTop], (Attributes) yyVals[-4+yyTop]);
5652
current_type.AddMember (current_event_field);
5654
if (current_event_field.MemberName.ExplicitInterface != null) {
5655
report.Error (71, current_event_field.Location, "`{0}': An explicit interface implementation of an event must use property syntax",
5656
current_event_field.GetSignatureForError ());
5659
yyVal = current_event_field;
5663
#line 2352 "cs-parser.jay"
5666
current_event_field.DocComment = Lexer.consume_doc_comment ();
5667
Lexer.doc_state = XmlCommentState.Allowed;
5670
lbag.AddMember (current_event_field, GetModifierLocations (), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
5671
current_event_field = null;
5675
#line 2365 "cs-parser.jay"
5677
current_event = new EventProperty (current_type, (FullNamedExpression) yyVals[-2+yyTop], (Modifiers) yyVals[-4+yyTop], (MemberName) yyVals[-1+yyTop], (Attributes) yyVals[-5+yyTop]);
5678
current_type.AddMember (current_event);
5679
lbag.AddMember (current_event, GetModifierLocations (), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5681
lexer.EventParsing = true;
5685
#line 2373 "cs-parser.jay"
5687
if (current_container.Kind == MemberKind.Interface)
5688
report.Error (69, GetLocation (yyVals[-2+yyTop]), "Event in interface cannot have add or remove accessors");
5690
lexer.EventParsing = false;
5694
#line 2380 "cs-parser.jay"
5697
current_event.DocComment = Lexer.consume_doc_comment ();
5698
Lexer.doc_state = XmlCommentState.Allowed;
5701
lbag.AppendToMember (current_event, GetLocation (yyVals[-1+yyTop]));
5702
current_event = null;
5703
current_local_parameters = null;
5707
#line 2399 "cs-parser.jay"
5709
--lexer.parsing_block;
5710
current_event_field.Initializer = (Expression) yyVals[0+yyTop];
5714
#line 2423 "cs-parser.jay"
5716
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
5717
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), null);
5718
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
5722
#line 2433 "cs-parser.jay"
5724
--lexer.parsing_block;
5725
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
5726
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (Expression) yyVals[0+yyTop]);
5727
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
5731
#line 2442 "cs-parser.jay"
5733
if (current_container.Kind == MemberKind.Interface) {
5734
report.Error (68, lexer.Location, "`{0}': event in interface cannot have an initializer",
5735
current_event_field.GetSignatureForError ());
5738
if ((current_event_field.ModFlags & Modifiers.ABSTRACT) != 0) {
5739
report.Error (74, lexer.Location, "`{0}': abstract event cannot have an initializer",
5740
current_event_field.GetSignatureForError ());
5745
#line 2463 "cs-parser.jay"
5747
report.Error (65, lexer.Location, "`{0}': event property must have both add and remove accessors",
5748
current_event.GetSignatureForError ());
5752
#line 2468 "cs-parser.jay"
5754
report.Error (65, lexer.Location, "`{0}': event property must have both add and remove accessors",
5755
current_event.GetSignatureForError ());
5759
#line 2473 "cs-parser.jay"
5761
report.Error (1055, GetLocation (yyVals[0+yyTop]), "An add or remove accessor expected");
5766
#line 2481 "cs-parser.jay"
5768
if (yyVals[-1+yyTop] != ModifierNone) {
5769
report.Error (1609, GetLocation (yyVals[-1+yyTop]), "Modifiers cannot be placed on event accessor declarations");
5772
current_event.Add = new EventProperty.AddDelegateMethod (current_event, (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
5773
current_local_parameters = current_event.Add.ParameterInfo;
5775
lbag.AddMember (current_event.Add, GetModifierLocations ());
5776
lexer.EventParsing = false;
5780
#line 2493 "cs-parser.jay"
5782
lexer.EventParsing = true;
5784
current_event.Add.Block = (ToplevelBlock) yyVals[0+yyTop];
5786
if (current_container.Kind == MemberKind.Interface) {
5787
report.Error (531, current_event.Add.Block.StartLocation,
5788
"`{0}': interface members cannot have a definition", current_event.Add.GetSignatureForError ());
5791
current_local_parameters = null;
5795
#line 2509 "cs-parser.jay"
5797
if (yyVals[-1+yyTop] != ModifierNone) {
5798
report.Error (1609, GetLocation (yyVals[-1+yyTop]), "Modifiers cannot be placed on event accessor declarations");
5801
current_event.Remove = new EventProperty.RemoveDelegateMethod (current_event, (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
5802
current_local_parameters = current_event.Remove.ParameterInfo;
5804
lbag.AddMember (current_event.Remove, GetModifierLocations ());
5805
lexer.EventParsing = false;
5809
#line 2521 "cs-parser.jay"
5811
lexer.EventParsing = true;
5813
current_event.Remove.Block = (ToplevelBlock) yyVals[0+yyTop];
5815
if (current_container.Kind == MemberKind.Interface) {
5816
report.Error (531, current_event.Remove.Block.StartLocation,
5817
"`{0}': interface members cannot have a definition", current_event.Remove.GetSignatureForError ());
5820
current_local_parameters = null;
5824
#line 2537 "cs-parser.jay"
5826
report.Error (73, lexer.Location, "An add or remove accessor must have a body");
5831
#line 2546 "cs-parser.jay"
5833
current_type.UnattachedAttributes = (Attributes) yyVals[-1+yyTop];
5834
report.Error (1519, GetLocation (yyVals[-1+yyTop]), "An attribute is missing member declaration");
5835
lexer.putback ('}');
5839
#line 2559 "cs-parser.jay"
5842
enumTypeComment = Lexer.consume_doc_comment ();
5846
#line 2564 "cs-parser.jay"
5849
Lexer.doc_state = XmlCommentState.Allowed;
5851
MemberName name = (MemberName) yyVals[-3+yyTop];
5852
if (name.IsGeneric) {
5853
report.Error (1675, name.Location, "Enums cannot have type parameters");
5856
push_current_container (new Enum (current_container, (FullNamedExpression) yyVals[-2+yyTop], (Modifiers) yyVals[-5+yyTop], name, (Attributes) yyVals[-6+yyTop]), null);
5857
if (yyVals[-2+yyTop] != null) {
5858
lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-4+yyTop]), savedLocation, GetLocation (yyVals[0+yyTop]));
5860
lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[0+yyTop]));
5865
#line 2581 "cs-parser.jay"
5867
/* here will be evaluated after CLOSE_BLACE is consumed.*/
5869
Lexer.doc_state = XmlCommentState.Allowed;
5873
#line 2587 "cs-parser.jay"
5875
lbag.AppendToMember (current_container, GetLocation (yyVals[-1+yyTop]));
5876
if (yyVals[0+yyTop] != null) {
5877
lbag.AppendToMember (current_container, GetLocation (yyVals[0+yyTop]));
5880
current_container.DocComment = enumTypeComment;
5882
--lexer.parsing_declaration;
5884
/* if (doc_support)*/
5885
/* em.DocComment = ev.DocComment;*/
5887
yyVal = pop_current_class ();
5891
#line 2607 "cs-parser.jay"
5893
savedLocation = GetLocation (yyVals[-1+yyTop]);
5894
yyVal = yyVals[0+yyTop];
5898
#line 2612 "cs-parser.jay"
5900
Error_TypeExpected (GetLocation (yyVals[-1+yyTop]));
5905
#line 2630 "cs-parser.jay"
5907
lbag.AppendToMember (current_container, GetLocation (yyVals[-1+yyTop]));
5908
yyVal = yyVals[0+yyTop];
5912
#line 2638 "cs-parser.jay"
5914
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
5915
var em = new EnumMember ((Enum) current_type, new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-1+yyTop]);
5916
((Enum) current_type).AddEnumMember (em);
5919
em.DocComment = Lexer.consume_doc_comment ();
5920
Lexer.doc_state = XmlCommentState.Allowed;
5927
#line 2651 "cs-parser.jay"
5929
++lexer.parsing_block;
5931
tmpComment = Lexer.consume_doc_comment ();
5932
Lexer.doc_state = XmlCommentState.NotAllowed;
5937
#line 2659 "cs-parser.jay"
5939
--lexer.parsing_block;
5941
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
5942
var em = new EnumMember ((Enum) current_type, new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-4+yyTop]);
5943
em.Initializer = new ConstInitializer (em, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
5944
((Enum) current_type).AddEnumMember (em);
5947
em.DocComment = ConsumeStoredComment ();
5953
#line 2684 "cs-parser.jay"
5955
valid_param_mod = 0;
5957
ParametersCompiled p = (ParametersCompiled) yyVals[-1+yyTop];
5959
Delegate del = new Delegate (current_container, (FullNamedExpression) yyVals[-5+yyTop], (Modifiers) yyVals[-7+yyTop], (MemberName) yyVals[-4+yyTop], p, (Attributes) yyVals[-8+yyTop]);
5961
p.CheckParameters (del);
5963
current_container.AddTypeContainer (del);
5965
current_delegate = del;
5966
lexer.ConstraintsParsing = true;
5970
#line 2703 "cs-parser.jay"
5973
current_delegate.DocComment = Lexer.consume_doc_comment ();
5974
Lexer.doc_state = XmlCommentState.Allowed;
5977
if (yyVals[-2+yyTop] != null)
5978
current_delegate.SetConstraints ((List<Constraints>) yyVals[-2+yyTop]);
5979
lbag.AddMember (current_delegate, GetModifierLocations (), GetLocation (yyVals[-10+yyTop]), GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[0+yyTop]));
5981
yyVal = current_delegate;
5983
current_delegate = null;
5987
#line 2722 "cs-parser.jay"
5989
if (lang_version < LanguageVersion.ISO_2)
5990
FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "nullable types");
5992
yyVal = ComposedTypeSpecifier.CreateNullable (GetLocation (yyVals[0+yyTop]));
5996
#line 2733 "cs-parser.jay"
5998
var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
5999
var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6001
yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (TypeArguments) yyVals[0+yyTop], lt1.Location);
6002
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6006
#line 2745 "cs-parser.jay"
6008
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6009
yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location);
6010
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
6014
#line 2754 "cs-parser.jay"
6016
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6017
yyVal = new SimpleName (lt.Value, (TypeArguments)yyVals[0+yyTop], lt.Location);
6021
#line 2766 "cs-parser.jay"
6023
if (lang_version < LanguageVersion.ISO_2)
6024
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "generics");
6025
var list = locationListStack.Pop ();
6026
list.Add (GetLocation (yyVals[-2+yyTop]));
6027
list.Add (GetLocation (yyVals[-1+yyTop]));
6028
lbag.AddLocation (yyVals[-1+yyTop], list);
6030
yyVal = yyVals[-1+yyTop];;
6034
#line 2777 "cs-parser.jay"
6036
Error_TypeExpected (lexer.Location);
6037
yyVal = new TypeArguments ();
6041
#line 2785 "cs-parser.jay"
6043
TypeArguments type_args = new TypeArguments ();
6044
type_args.Add ((FullNamedExpression) yyVals[0+yyTop]);
6046
locationListStack.Push (new List<Location> ());
6050
#line 2792 "cs-parser.jay"
6052
TypeArguments type_args = (TypeArguments) yyVals[-2+yyTop];
6053
type_args.Add ((FullNamedExpression) yyVals[0+yyTop]);
6055
locationListStack.Peek ().Add (GetLocation (yyVals[-1+yyTop]));
6059
#line 2809 "cs-parser.jay"
6061
lexer.parsing_generic_declaration = false;
6062
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6063
yyVal = new MemberName (lt.Value, (TypeParameters)yyVals[0+yyTop], lt.Location);
6067
#line 2818 "cs-parser.jay"
6069
MemberName mn = (MemberName)yyVals[0+yyTop];
6070
if (mn.TypeParameters != null)
6071
syntax_error (mn.Location, string.Format ("Member `{0}' cannot declare type arguments",
6072
mn.GetSignatureForError ()));
6076
#line 2829 "cs-parser.jay"
6078
lexer.parsing_generic_declaration = false;
6079
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6080
yyVal = new MemberName (lt.Value, (TypeParameters) yyVals[0+yyTop], (ATypeNameExpression) yyVals[-2+yyTop], lt.Location);
6084
#line 2838 "cs-parser.jay"
6086
lexer.parsing_generic_declaration = false;
6087
yyVal = new MemberName (TypeDefinition.DefaultIndexerName, GetLocation (yyVals[0+yyTop]));
6091
#line 2843 "cs-parser.jay"
6093
lexer.parsing_generic_declaration = false;
6094
yyVal = new MemberName (TypeDefinition.DefaultIndexerName, null, (ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
6098
#line 2851 "cs-parser.jay"
6100
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6101
yyVal = new SimpleName (lt.Value, (TypeArguments) yyVals[-1+yyTop], lt.Location);
6102
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6106
#line 2857 "cs-parser.jay"
6108
var lt1 = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
6109
var lt2 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6111
yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (TypeArguments) yyVals[-1+yyTop], lt1.Location);
6112
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6116
#line 2865 "cs-parser.jay"
6118
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6119
yyVal = new MemberAccess ((ATypeNameExpression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[-1+yyTop], lt.Location);
6120
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6124
#line 2875 "cs-parser.jay"
6126
if (lang_version < LanguageVersion.ISO_2)
6127
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "generics");
6129
yyVal = yyVals[-1+yyTop];
6130
var list = locationListStack.Pop ();
6131
list.Add (GetLocation (yyVals[-2+yyTop]));
6132
list.Add (GetLocation (yyVals[-1+yyTop]));
6133
lbag.AddLocation (yyVals[-1+yyTop], list);
6137
#line 2889 "cs-parser.jay"
6139
var tparams = new TypeParameters ();
6140
tparams.Add ((TypeParameter)yyVals[0+yyTop]);
6142
locationListStack.Push (new List<Location> ());
6146
#line 2896 "cs-parser.jay"
6148
var tparams = (TypeParameters) yyVals[-2+yyTop];
6149
tparams.Add ((TypeParameter)yyVals[0+yyTop]);
6151
locationListStack.Peek ().Add (GetLocation (yyVals[-1+yyTop]));
6155
#line 2906 "cs-parser.jay"
6157
var lt = (Tokenizer.LocatedToken)yyVals[0+yyTop];
6158
yyVal = new TypeParameter (new MemberName (lt.Value, lt.Location), (Attributes)yyVals[-2+yyTop], (Variance) yyVals[-1+yyTop]);
6162
#line 2911 "cs-parser.jay"
6164
if (GetTokenName (yyToken) == "type")
6165
report.Error (81, GetLocation (yyVals[0+yyTop]), "Type parameter declaration must be an identifier not a type");
6167
Error_SyntaxError (yyToken);
6169
yyVal = new TypeParameter (MemberName.Null, null, Variance.None);
6173
#line 2945 "cs-parser.jay"
6175
Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report);
6176
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
6180
#line 2954 "cs-parser.jay"
6182
Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report);
6183
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
6187
#line 2963 "cs-parser.jay"
6189
report.Error (1536, GetLocation (yyVals[0+yyTop]), "Invalid parameter type `void'");
6190
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
6194
#line 2979 "cs-parser.jay"
6196
if (yyVals[0+yyTop] != null) {
6197
yyVal = new ComposedCast ((ATypeNameExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
6199
var sn = yyVals[-1+yyTop] as SimpleName;
6200
if (sn != null && sn.Name == "var")
6201
yyVal = new VarExpr (sn.Location);
6203
yyVal = yyVals[-1+yyTop];
6208
#line 2995 "cs-parser.jay"
6210
if (yyVals[0+yyTop] != null)
6211
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
6215
#line 3011 "cs-parser.jay"
6217
var types = new List<FullNamedExpression> (2);
6218
types.Add ((FullNamedExpression) yyVals[0+yyTop]);
6223
#line 3017 "cs-parser.jay"
6225
var types = (List<FullNamedExpression>) yyVals[-2+yyTop];
6226
types.Add ((FullNamedExpression) yyVals[0+yyTop]);
6227
lbag.AppendTo (types, GetLocation (yyVals[-1+yyTop]));
6232
#line 3027 "cs-parser.jay"
6234
if (yyVals[0+yyTop] is ComposedCast) {
6235
report.Error (1521, GetLocation (yyVals[0+yyTop]), "Invalid base type `{0}'", ((ComposedCast)yyVals[0+yyTop]).GetSignatureForError ());
6237
yyVal = yyVals[0+yyTop];
6241
#line 3091 "cs-parser.jay"
6243
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6244
yyVal = new SimpleName (lt.Value, (TypeArguments)yyVals[0+yyTop], lt.Location);
6248
#line 3095 "cs-parser.jay"
6250
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6251
yyVal = new CompletionSimpleName (MemberName.MakeName (lt.Value, null), lt.Location);
6255
#line 3136 "cs-parser.jay"
6257
yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop]);
6258
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6262
#line 3148 "cs-parser.jay"
6264
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6265
yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location) {
6266
DotLocation = GetLocation (yyVals[-2+yyTop])
6271
#line 3155 "cs-parser.jay"
6273
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6274
yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location) {
6275
DotLocation = GetLocation (yyVals[-2+yyTop])
6280
#line 3162 "cs-parser.jay"
6282
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6283
yyVal = new MemberAccess (new BaseThis (GetLocation (yyVals[-3+yyTop])), lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location) {
6284
DotLocation = GetLocation (yyVals[-2+yyTop])
6289
#line 3169 "cs-parser.jay"
6291
var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6292
var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6294
yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (TypeArguments) yyVals[0+yyTop], lt1.Location);
6295
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6299
#line 3179 "cs-parser.jay"
6301
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6302
yyVal = new CompletionMemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, lt.Location);
6306
#line 3187 "cs-parser.jay"
6308
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6309
yyVal = new CompletionMemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, lt.Location);
6313
#line 3195 "cs-parser.jay"
6315
yyVal = new Invocation ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop]);
6316
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6320
#line 3208 "cs-parser.jay"
6322
if (yyVals[-1+yyTop] == null) {
6323
yyVal = new CollectionOrObjectInitializers (new List<Expression> (), GetLocation (yyVals[-2+yyTop]));
6324
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6326
yyVal = new CollectionOrObjectInitializers ((List<Expression>) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6327
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6332
#line 3218 "cs-parser.jay"
6334
yyVal = new CollectionOrObjectInitializers ((List<Expression>) yyVals[-2+yyTop], GetLocation (yyVals[-3+yyTop]));
6335
lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
6339
#line 3234 "cs-parser.jay"
6341
var a = new List<Expression> ();
6342
a.Add ((Expression) yyVals[0+yyTop]);
6347
#line 3240 "cs-parser.jay"
6349
var a = (List<Expression>)yyVals[-2+yyTop];
6350
a.Add ((Expression) yyVals[0+yyTop]);
6351
lbag.AppendTo (a, GetLocation (yyVals[-1+yyTop]));
6356
#line 3246 "cs-parser.jay"
6358
Error_SyntaxError (yyToken);
6359
yyVal = yyVals[-1+yyTop];
6363
#line 3254 "cs-parser.jay"
6365
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6366
yyVal = new ElementInitializer (lt.Value, (Expression)yyVals[0+yyTop], lt.Location);
6367
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6371
#line 3263 "cs-parser.jay"
6373
CompletionSimpleName csn = yyVals[-1+yyTop] as CompletionSimpleName;
6375
yyVal = new CollectionElementInitializer ((Expression)yyVals[-1+yyTop]);
6377
yyVal = new CompletionElementInitializer (csn.Prefix, csn.Location);
6381
#line 3271 "cs-parser.jay"
6383
if (yyVals[-1+yyTop] == null)
6386
yyVal = new CollectionElementInitializer ((List<Expression>)yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6387
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6392
#line 3280 "cs-parser.jay"
6394
report.Error (1920, GetLocation (yyVals[-1+yyTop]), "An element initializer cannot be empty");
6395
yyVal = new CollectionElementInitializer (new List<Expression> (), GetLocation (yyVals[-1+yyTop]));
6396
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6400
#line 3299 "cs-parser.jay"
6402
Arguments list = new Arguments (4);
6403
list.Add ((Argument) yyVals[0+yyTop]);
6408
#line 3305 "cs-parser.jay"
6410
Arguments list = (Arguments) yyVals[-2+yyTop];
6411
if (list [list.Count - 1] is NamedArgument)
6412
Error_NamedArgumentExpected ((NamedArgument) list [list.Count - 1]);
6414
list.Add ((Argument) yyVals[0+yyTop]);
6415
lbag.AppendTo (list, GetLocation (yyVals[-1+yyTop]));
6420
#line 3315 "cs-parser.jay"
6422
Arguments list = (Arguments) yyVals[-2+yyTop];
6423
NamedArgument a = (NamedArgument) yyVals[0+yyTop];
6424
for (int i = 0; i < list.Count; ++i) {
6425
NamedArgument na = list [i] as NamedArgument;
6426
if (na != null && na.Name == a.Name)
6427
report.Error (1740, na.Location, "Named argument `{0}' specified multiple times",
6432
lbag.AppendTo (list, GetLocation (yyVals[-1+yyTop]));
6437
#line 3330 "cs-parser.jay"
6439
lexer.putback (')'); /* TODO: Wrong but what can I do*/
6440
Error_SyntaxError (yyToken);
6441
yyVal = yyVals[-2+yyTop];
6445
#line 3336 "cs-parser.jay"
6447
report.Error (839, GetLocation (yyVals[-1+yyTop]), "An argument is missing");
6452
#line 3357 "cs-parser.jay"
6454
yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Ref);
6455
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6459
#line 3362 "cs-parser.jay"
6461
yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Out);
6462
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6466
#line 3367 "cs-parser.jay"
6468
yyVal = new Argument (new Arglist ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop])));
6469
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6473
#line 3372 "cs-parser.jay"
6475
yyVal = new Argument (new Arglist (GetLocation (yyVals[-2+yyTop])));
6476
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
6480
#line 3384 "cs-parser.jay"
6482
yyVal = new ElementAccess ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6483
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6487
#line 3389 "cs-parser.jay"
6489
Error_SyntaxError (yyToken);
6490
yyVal = new ElementAccess ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6494
#line 3394 "cs-parser.jay"
6496
Error_SyntaxError (yyToken);
6497
yyVal = new ElementAccess ((Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-1+yyTop]));
6501
#line 3402 "cs-parser.jay"
6503
var list = new List<Expression> (4);
6504
list.Add ((Expression) yyVals[0+yyTop]);
6509
#line 3408 "cs-parser.jay"
6511
var list = (List<Expression>) yyVals[-2+yyTop];
6512
list.Add ((Expression) yyVals[0+yyTop]);
6513
lbag.AppendTo (list, GetLocation (yyVals[-1+yyTop]));
6518
#line 3414 "cs-parser.jay"
6520
Error_SyntaxError (yyToken);
6521
yyVal = yyVals[-1+yyTop];
6525
#line 3422 "cs-parser.jay"
6527
Arguments args = new Arguments (4);
6528
args.Add ((Argument) yyVals[0+yyTop]);
6533
#line 3428 "cs-parser.jay"
6535
Arguments args = (Arguments) yyVals[-2+yyTop];
6536
if (args [args.Count - 1] is NamedArgument && !(yyVals[0+yyTop] is NamedArgument))
6537
Error_NamedArgumentExpected ((NamedArgument) args [args.Count - 1]);
6539
args.Add ((Argument) yyVals[0+yyTop]);
6540
lbag.AppendTo (args, GetLocation (yyVals[-1+yyTop]));
6545
#line 3456 "cs-parser.jay"
6547
yyVal = new ElementAccess (new BaseThis (GetLocation (yyVals[-3+yyTop])), (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6548
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6552
#line 3461 "cs-parser.jay"
6554
Error_SyntaxError (yyToken);
6555
yyVal = new ElementAccess (null, null, GetLocation (yyVals[-1+yyTop]));
6559
#line 3483 "cs-parser.jay"
6561
if (yyVals[0+yyTop] != null) {
6562
if (lang_version <= LanguageVersion.ISO_2)
6563
FeatureIsNotAvailable (GetLocation (yyVals[-5+yyTop]), "object initializers");
6565
yyVal = new NewInitialize ((FullNamedExpression) yyVals[-4+yyTop], (Arguments) yyVals[-2+yyTop], (CollectionOrObjectInitializers) yyVals[0+yyTop], GetLocation (yyVals[-5+yyTop]));
6567
yyVal = new New ((FullNamedExpression) yyVals[-4+yyTop], (Arguments) yyVals[-2+yyTop], GetLocation (yyVals[-5+yyTop]));
6570
lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
6574
#line 3496 "cs-parser.jay"
6576
if (lang_version <= LanguageVersion.ISO_2)
6577
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "collection initializers");
6579
yyVal = new NewInitialize ((FullNamedExpression) yyVals[-1+yyTop], null, (CollectionOrObjectInitializers) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
6583
#line 3508 "cs-parser.jay"
6585
yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-5+yyTop], (List<Expression>) yyVals[-3+yyTop],
6586
new ComposedTypeSpecifier (((List<Expression>) yyVals[-3+yyTop]).Count, GetLocation (yyVals[-4+yyTop])) {
6587
Next = (ComposedTypeSpecifier) yyVals[-1+yyTop]
6588
}, (ArrayInitializer) yyVals[0+yyTop], GetLocation (yyVals[-6+yyTop]));
6589
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
6593
#line 3516 "cs-parser.jay"
6595
if (yyVals[0+yyTop] == null)
6596
report.Error (1586, GetLocation (yyVals[-3+yyTop]), "Array creation must have array size or array initializer");
6598
yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-2+yyTop], (ComposedTypeSpecifier) yyVals[-1+yyTop], (ArrayInitializer) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
6602
#line 3523 "cs-parser.jay"
6604
if (lang_version <= LanguageVersion.ISO_2)
6605
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "implicitly typed arrays");
6607
yyVal = new ImplicitlyTypedArrayCreation ((ComposedTypeSpecifier) yyVals[-1+yyTop], (ArrayInitializer) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
6611
#line 3530 "cs-parser.jay"
6613
report.Error (178, GetLocation (yyVals[-1+yyTop]), "Invalid rank specifier, expecting `,' or `]'");
6614
yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-5+yyTop], null, GetLocation (yyVals[-6+yyTop]));
6618
#line 3535 "cs-parser.jay"
6620
Error_SyntaxError (yyToken);
6621
/* It can be any of new expression, create the most common one*/
6622
yyVal = new New ((FullNamedExpression) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]));
6626
#line 3547 "cs-parser.jay"
6628
--lexer.parsing_type;
6629
yyVal = yyVals[0+yyTop];
6633
#line 3555 "cs-parser.jay"
6635
if (lang_version <= LanguageVersion.ISO_2)
6636
FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "anonymous types");
6638
yyVal = new NewAnonymousType ((List<AnonymousTypeParameter>) yyVals[-1+yyTop], current_container, GetLocation (yyVals[-3+yyTop]));
6640
/* TODO: lbag comma location*/
6641
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6645
#line 3578 "cs-parser.jay"
6647
var a = new List<AnonymousTypeParameter> (4);
6648
a.Add ((AnonymousTypeParameter) yyVals[0+yyTop]);
6653
#line 3584 "cs-parser.jay"
6655
var a = (List<AnonymousTypeParameter>) yyVals[-2+yyTop];
6656
a.Add ((AnonymousTypeParameter) yyVals[0+yyTop]);
6657
lbag.AppendTo (a, GetLocation (yyVals[-1+yyTop]));
6663
#line 3595 "cs-parser.jay"
6665
var lt = (Tokenizer.LocatedToken)yyVals[-2+yyTop];
6666
yyVal = new AnonymousTypeParameter ((Expression)yyVals[0+yyTop], lt.Value, lt.Location);
6667
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6671
#line 3601 "cs-parser.jay"
6673
var lt = (Tokenizer.LocatedToken)yyVals[0+yyTop];
6674
yyVal = new AnonymousTypeParameter (new SimpleName (lt.Value, lt.Location),
6675
lt.Value, lt.Location);
6679
#line 3607 "cs-parser.jay"
6681
MemberAccess ma = (MemberAccess) yyVals[0+yyTop];
6682
yyVal = new AnonymousTypeParameter (ma, ma.Name, ma.Location);
6686
#line 3612 "cs-parser.jay"
6688
report.Error (746, lexer.Location,
6689
"Invalid anonymous type member declarator. Anonymous type members must be a member assignment, simple name or member access expression");
6694
#line 3627 "cs-parser.jay"
6696
((ComposedTypeSpecifier) yyVals[-1+yyTop]).Next = (ComposedTypeSpecifier) yyVals[0+yyTop];
6697
yyVal = yyVals[-1+yyTop];
6701
#line 3635 "cs-parser.jay"
6703
yyVal = ComposedTypeSpecifier.CreateArrayDimension (1, GetLocation (yyVals[-1+yyTop]));
6704
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6708
#line 3640 "cs-parser.jay"
6710
yyVal = ComposedTypeSpecifier.CreateArrayDimension ((int)yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6711
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6715
#line 3670 "cs-parser.jay"
6717
var ai = new ArrayInitializer (0, GetLocation (yyVals[-1+yyTop]));
6718
ai.VariableDeclaration = current_variable;
6719
lbag.AddLocation (ai, GetLocation (yyVals[0+yyTop]));
6724
#line 3677 "cs-parser.jay"
6726
var ai = new ArrayInitializer ((List<Expression>) yyVals[-2+yyTop], GetLocation (yyVals[-3+yyTop]));
6727
ai.VariableDeclaration = current_variable;
6728
if (yyVals[-1+yyTop] != null) {
6729
lbag.AddLocation (ai, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
6731
lbag.AddLocation (ai, GetLocation (yyVals[0+yyTop]));
6737
#line 3691 "cs-parser.jay"
6739
var list = new List<Expression> (4);
6740
list.Add ((Expression) yyVals[0+yyTop]);
6745
#line 3697 "cs-parser.jay"
6747
var list = (List<Expression>) yyVals[-2+yyTop];
6748
list.Add ((Expression) yyVals[0+yyTop]);
6749
lbag.AppendTo (list, GetLocation (yyVals[-1+yyTop]));
6754
#line 3711 "cs-parser.jay"
6756
lexer.TypeOfParsing = false;
6757
yyVal = new TypeOf ((FullNamedExpression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
6758
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6762
#line 3722 "cs-parser.jay"
6764
Error_TypeExpected (lexer.Location);
6769
#line 3730 "cs-parser.jay"
6771
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6773
yyVal = new SimpleName (lt.Value, (int) yyVals[0+yyTop], lt.Location);
6777
#line 3736 "cs-parser.jay"
6779
var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6780
var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6782
yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) yyVals[0+yyTop], lt1.Location);
6783
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6787
#line 3744 "cs-parser.jay"
6789
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
6791
yyVal = new MemberAccess ((Expression) yyVals[-2+yyTop], lt.Value, lt.Location) {
6792
DotLocation = GetLocation (yyVals[-1+yyTop])
6797
#line 3752 "cs-parser.jay"
6799
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6801
yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (int) yyVals[0+yyTop], lt.Location) {
6802
DotLocation = GetLocation (yyVals[-2+yyTop])
6807
#line 3760 "cs-parser.jay"
6809
var tne = (ATypeNameExpression) yyVals[-3+yyTop];
6810
if (tne.HasTypeArguments)
6811
Error_TypeExpected (GetLocation (yyVals[0+yyTop]));
6813
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6814
yyVal = new MemberAccess (tne, lt.Value, (int) yyVals[0+yyTop], lt.Location) {
6815
DotLocation = GetLocation (yyVals[-2+yyTop])
6820
#line 3774 "cs-parser.jay"
6822
if (lang_version < LanguageVersion.ISO_2)
6823
FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "generics");
6825
yyVal = yyVals[0+yyTop];
6829
#line 3784 "cs-parser.jay"
6831
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6832
if (lang_version == LanguageVersion.ISO_1)
6833
FeatureIsNotAvailable (lt.Location, "namespace alias qualifier");
6839
#line 3795 "cs-parser.jay"
6841
yyVal = new SizeOf ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
6842
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6846
#line 3803 "cs-parser.jay"
6848
yyVal = new CheckedExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
6849
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6853
#line 3811 "cs-parser.jay"
6855
yyVal = new UnCheckedExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
6856
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6860
#line 3819 "cs-parser.jay"
6862
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6863
yyVal = new MemberAccess (new Indirection ((Expression) yyVals[-3+yyTop], GetLocation (yyVals[-2+yyTop])), lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location);
6867
#line 3831 "cs-parser.jay"
6869
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
6870
if ((ParametersCompiled) yyVals[-2+yyTop] != ParametersCompiled.Undefined) {
6871
lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]), savedOpenLocation, savedCloseLocation);
6873
lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]));
6878
#line 3844 "cs-parser.jay"
6880
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
6882
if ((ParametersCompiled) yyVals[-2+yyTop] != ParametersCompiled.Undefined) {
6883
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), savedOpenLocation, savedCloseLocation);
6885
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]));
6890
#line 3869 "cs-parser.jay"
6892
valid_param_mod = 0;
6893
yyVal = yyVals[-1+yyTop];
6894
savedOpenLocation = GetLocation (yyVals[-3+yyTop]);
6895
savedCloseLocation = GetLocation (yyVals[-2+yyTop]);
6899
#line 3879 "cs-parser.jay"
6901
if (lang_version < LanguageVersion.ISO_2)
6902
FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "default value expression");
6904
yyVal = new DefaultValueExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
6905
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6909
#line 3899 "cs-parser.jay"
6911
yyVal = new Cast ((FullNamedExpression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
6912
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6916
#line 3904 "cs-parser.jay"
6919
if (current_anonymous_method is LambdaExpression) {
6920
report.Error (4034, GetLocation (yyVals[-1+yyTop]),
6921
"The `await' operator can only be used when its containing lambda expression is marked with the `async' modifier");
6922
} else if (current_anonymous_method is AnonymousMethodExpression) {
6923
report.Error (4035, GetLocation (yyVals[-1+yyTop]),
6924
"The `await' operator can only be used when its containing anonymous method is marked with the `async' modifier");
6926
report.Error (4033, GetLocation (yyVals[-1+yyTop]),
6927
"The `await' operator can only be used when its containing method is marked with the `async' modifier");
6930
current_block.Explicit.RegisterAsyncAwait ();
6933
yyVal = new Await ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6937
#line 3959 "cs-parser.jay"
6939
yyVal = new Binary (Binary.Operator.Multiply,
6940
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6944
#line 3964 "cs-parser.jay"
6946
yyVal = new Binary (Binary.Operator.Division,
6947
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6951
#line 3969 "cs-parser.jay"
6953
yyVal = new Binary (Binary.Operator.Modulus,
6954
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6958
#line 3978 "cs-parser.jay"
6960
yyVal = new Binary (Binary.Operator.Addition,
6961
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6965
#line 3987 "cs-parser.jay"
6967
/* Shift/Reduce conflict*/
6968
yyVal = new Binary (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6972
#line 4004 "cs-parser.jay"
6974
yyVal = new Binary (Binary.Operator.LeftShift,
6975
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6979
#line 4009 "cs-parser.jay"
6981
yyVal = new Binary (Binary.Operator.RightShift,
6982
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6986
#line 4018 "cs-parser.jay"
6988
yyVal = new Binary (Binary.Operator.LessThan,
6989
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6993
#line 4023 "cs-parser.jay"
6995
yyVal = new Binary (Binary.Operator.GreaterThan,
6996
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7000
#line 4028 "cs-parser.jay"
7002
yyVal = new Binary (Binary.Operator.LessThanOrEqual,
7003
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7007
#line 4033 "cs-parser.jay"
7009
yyVal = new Binary (Binary.Operator.GreaterThanOrEqual,
7010
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7014
#line 4042 "cs-parser.jay"
7016
yyVal = new Binary (Binary.Operator.Equality,
7017
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7021
#line 4047 "cs-parser.jay"
7023
yyVal = new Binary (Binary.Operator.Inequality,
7024
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7028
#line 4056 "cs-parser.jay"
7030
yyVal = new Binary (Binary.Operator.BitwiseAnd,
7031
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7035
#line 4065 "cs-parser.jay"
7037
yyVal = new Binary (Binary.Operator.ExclusiveOr,
7038
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7042
#line 4074 "cs-parser.jay"
7044
yyVal = new Binary (Binary.Operator.BitwiseOr,
7045
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7049
#line 4083 "cs-parser.jay"
7051
yyVal = new Binary (Binary.Operator.LogicalAnd,
7052
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7056
#line 4092 "cs-parser.jay"
7058
yyVal = new Binary (Binary.Operator.LogicalOr,
7059
(Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7063
#line 4101 "cs-parser.jay"
7065
if (lang_version < LanguageVersion.ISO_2)
7066
FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "null coalescing operator");
7068
yyVal = new Nullable.NullCoalescingOperator ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7072
#line 4112 "cs-parser.jay"
7074
yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-4+yyTop]), (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
7075
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7079
#line 4117 "cs-parser.jay"
7081
Error_SyntaxError (yyToken);
7082
yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-3+yyTop]), (Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]));
7086
#line 4129 "cs-parser.jay"
7088
yyVal = new CompoundAssign (
7089
Binary.Operator.Multiply, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7093
#line 4134 "cs-parser.jay"
7095
yyVal = new CompoundAssign (
7096
Binary.Operator.Division, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7100
#line 4139 "cs-parser.jay"
7102
yyVal = new CompoundAssign (
7103
Binary.Operator.Modulus, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7107
#line 4144 "cs-parser.jay"
7109
yyVal = new CompoundAssign (
7110
Binary.Operator.Addition, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7114
#line 4149 "cs-parser.jay"
7116
yyVal = new CompoundAssign (
7117
Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7121
#line 4154 "cs-parser.jay"
7123
yyVal = new CompoundAssign (
7124
Binary.Operator.LeftShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7128
#line 4159 "cs-parser.jay"
7130
yyVal = new CompoundAssign (
7131
Binary.Operator.RightShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7135
#line 4164 "cs-parser.jay"
7137
yyVal = new CompoundAssign (
7138
Binary.Operator.BitwiseAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7142
#line 4169 "cs-parser.jay"
7144
yyVal = new CompoundAssign (
7145
Binary.Operator.BitwiseOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7149
#line 4174 "cs-parser.jay"
7151
yyVal = new CompoundAssign (
7152
Binary.Operator.ExclusiveOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7156
#line 4182 "cs-parser.jay"
7158
var pars = new List<Parameter> (4);
7159
pars.Add ((Parameter) yyVals[0+yyTop]);
7160
parameterListCommas.Clear ();
7165
#line 4189 "cs-parser.jay"
7167
var pars = (List<Parameter>) yyVals[-2+yyTop];
7168
Parameter p = (Parameter)yyVals[0+yyTop];
7169
if (pars[0].GetType () != p.GetType ()) {
7170
report.Error (748, p.Location, "All lambda parameters must be typed either explicitly or implicitly");
7174
parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
7180
#line 4205 "cs-parser.jay"
7182
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
7184
yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Parameter.Modifier) yyVals[-2+yyTop], null, lt.Location);
7188
#line 4211 "cs-parser.jay"
7190
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
7192
yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, Parameter.Modifier.NONE, null, lt.Location);
7196
#line 4217 "cs-parser.jay"
7198
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
7199
yyVal = new ImplicitLambdaParameter (lt.Value, lt.Location);
7203
#line 4225 "cs-parser.jay"
7205
var pars_list = (List<Parameter>) yyVals[0+yyTop];
7206
yyVal = new ParametersCompiled (pars_list.ToArray ());
7207
lbag.AddLocation (yyVal, parameterListCommas);
7211
#line 4242 "cs-parser.jay"
7213
Block b = end_block (Location.Null);
7214
b.IsCompilerGenerated = true;
7215
b.AddStatement (new ContextualReturn ((Expression) yyVals[0+yyTop]));
7220
#line 4253 "cs-parser.jay"
7222
Error_SyntaxError (yyToken);
7223
yyVal = EmptyExpression.Null;
7227
#line 4261 "cs-parser.jay"
7229
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
7230
Parameter p = new ImplicitLambdaParameter (lt.Value, lt.Location);
7231
start_anonymous (true, new ParametersCompiled (p), false, lt.Location);
7235
#line 4267 "cs-parser.jay"
7237
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7238
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
7242
#line 4272 "cs-parser.jay"
7244
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
7245
Parameter p = new ImplicitLambdaParameter (lt.Value, lt.Location);
7246
start_anonymous (true, new ParametersCompiled (p), true, lt.Location);
7250
#line 4278 "cs-parser.jay"
7252
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7253
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
7257
#line 4287 "cs-parser.jay"
7259
valid_param_mod = 0;
7260
start_anonymous (true, (ParametersCompiled) yyVals[-2+yyTop], false, GetLocation (yyVals[-4+yyTop]));
7264
#line 4292 "cs-parser.jay"
7266
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7267
lbag.AddLocation (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
7271
#line 4301 "cs-parser.jay"
7273
valid_param_mod = 0;
7274
start_anonymous (true, (ParametersCompiled) yyVals[-2+yyTop], true, GetLocation (yyVals[-5+yyTop]));
7278
#line 4306 "cs-parser.jay"
7280
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7281
lbag.AddLocation (yyVal, GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
7285
#line 4329 "cs-parser.jay"
7287
yyVal = new RefValueExpr ((Expression) yyVals[-3+yyTop], (FullNamedExpression) yyVals[-1+yyTop], GetLocation (yyVals[-5+yyTop]));
7288
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7292
#line 4334 "cs-parser.jay"
7294
yyVal = new RefTypeExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
7295
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7299
#line 4339 "cs-parser.jay"
7301
yyVal = new MakeRefExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
7302
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7306
#line 4368 "cs-parser.jay"
7308
Class c = new Class (current_container, (MemberName) yyVals[0+yyTop], (Modifiers) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop]);
7309
if (((c.ModFlags & Modifiers.STATIC) != 0) && lang_version == LanguageVersion.ISO_1) {
7310
FeatureIsNotAvailable (c.Location, "static classes");
7313
push_current_container (c, yyVals[-3+yyTop]);
7314
lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]));
7318
#line 4379 "cs-parser.jay"
7320
lexer.ConstraintsParsing = false;
7322
if (yyVals[0+yyTop] != null)
7323
current_container.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
7326
current_container.PartialContainer.DocComment = Lexer.consume_doc_comment ();
7327
Lexer.doc_state = XmlCommentState.Allowed;
7330
lexer.parsing_modifiers = true;
7334
#line 4393 "cs-parser.jay"
7336
--lexer.parsing_declaration;
7338
Lexer.doc_state = XmlCommentState.Allowed;
7342
#line 4399 "cs-parser.jay"
7344
if (yyVals[0+yyTop] == null) {
7345
lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
7347
lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7349
yyVal = pop_current_class ();
7353
#line 4418 "cs-parser.jay"
7355
mod_locations = null;
7356
yyVal = ModifierNone;
7357
lexer.parsing_modifiers = false;
7361
#line 4432 "cs-parser.jay"
7363
var m1 = (Modifiers) yyVals[-1+yyTop];
7364
var m2 = (Modifiers) yyVals[0+yyTop];
7366
if ((m1 & m2) != 0) {
7367
report.Error (1004, lexer.Location - ModifiersExtensions.Name (m2).Length,
7368
"Duplicate `{0}' modifier", ModifiersExtensions.Name (m2));
7369
} else if ((m2 & Modifiers.AccessibilityMask) != 0 && (m1 & Modifiers.AccessibilityMask) != 0 &&
7370
((m2 | m1 & Modifiers.AccessibilityMask) != (Modifiers.PROTECTED | Modifiers.INTERNAL))) {
7371
report.Error (107, lexer.Location - ModifiersExtensions.Name (m2).Length,
7372
"More than one protection modifier specified");
7379
#line 4451 "cs-parser.jay"
7381
yyVal = Modifiers.NEW;
7382
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7384
if (current_container.Kind == MemberKind.Namespace)
7385
report.Error (1530, GetLocation (yyVals[0+yyTop]), "Keyword `new' is not allowed on namespace elements");
7389
#line 4459 "cs-parser.jay"
7391
yyVal = Modifiers.PUBLIC;
7392
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7396
#line 4464 "cs-parser.jay"
7398
yyVal = Modifiers.PROTECTED;
7399
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7403
#line 4469 "cs-parser.jay"
7405
yyVal = Modifiers.INTERNAL;
7406
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7410
#line 4474 "cs-parser.jay"
7412
yyVal = Modifiers.PRIVATE;
7413
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7417
#line 4479 "cs-parser.jay"
7419
yyVal = Modifiers.ABSTRACT;
7420
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7424
#line 4484 "cs-parser.jay"
7426
yyVal = Modifiers.SEALED;
7427
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7431
#line 4489 "cs-parser.jay"
7433
yyVal = Modifiers.STATIC;
7434
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7438
#line 4494 "cs-parser.jay"
7440
yyVal = Modifiers.READONLY;
7441
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7445
#line 4499 "cs-parser.jay"
7447
yyVal = Modifiers.VIRTUAL;
7448
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7452
#line 4504 "cs-parser.jay"
7454
yyVal = Modifiers.OVERRIDE;
7455
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7459
#line 4509 "cs-parser.jay"
7461
yyVal = Modifiers.EXTERN;
7462
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7466
#line 4514 "cs-parser.jay"
7468
yyVal = Modifiers.VOLATILE;
7469
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7473
#line 4519 "cs-parser.jay"
7475
yyVal = Modifiers.UNSAFE;
7476
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7477
if (!settings.Unsafe)
7478
Error_UnsafeCodeNotAllowed (GetLocation (yyVals[0+yyTop]));
7482
#line 4526 "cs-parser.jay"
7484
yyVal = Modifiers.ASYNC;
7485
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7489
#line 4535 "cs-parser.jay"
7491
current_type.AddBasesForPart ((List<FullNamedExpression>) yyVals[0+yyTop]);
7492
lbag.AppendToMember (current_type, GetLocation (yyVals[-1+yyTop]));
7496
#line 4540 "cs-parser.jay"
7498
Error_SyntaxError (yyToken);
7500
current_type.AddBasesForPart ((List<FullNamedExpression>) yyVals[-1+yyTop]);
7504
#line 4557 "cs-parser.jay"
7506
var constraints = new List<Constraints> (1);
7507
constraints.Add ((Constraints) yyVals[0+yyTop]);
7508
yyVal = constraints;
7512
#line 4563 "cs-parser.jay"
7514
var constraints = (List<Constraints>) yyVals[-1+yyTop];
7515
Constraints new_constraint = (Constraints)yyVals[0+yyTop];
7517
foreach (Constraints c in constraints) {
7518
if (new_constraint.TypeParameter.Value == c.TypeParameter.Value) {
7519
report.Error (409, new_constraint.Location,
7520
"A constraint clause has already been specified for type parameter `{0}'",
7521
new_constraint.TypeParameter.Value);
7525
constraints.Add (new_constraint);
7526
yyVal = constraints;
7530
#line 4582 "cs-parser.jay"
7532
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
7533
yyVal = new Constraints (new SimpleMemberName (lt.Value, lt.Location), (List<FullNamedExpression>) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
7534
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7538
#line 4588 "cs-parser.jay"
7540
Error_SyntaxError (yyToken);
7542
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
7543
yyVal = new Constraints (new SimpleMemberName (lt.Value, lt.Location), null, GetLocation (yyVals[-2+yyTop]));
7547
#line 4598 "cs-parser.jay"
7549
var constraints = new List<FullNamedExpression> (1);
7550
constraints.Add ((FullNamedExpression) yyVals[0+yyTop]);
7551
yyVal = constraints;
7555
#line 4604 "cs-parser.jay"
7557
var constraints = (List<FullNamedExpression>) yyVals[-2+yyTop];
7558
var prev = constraints [constraints.Count - 1] as SpecialContraintExpr;
7559
if (prev != null && (prev.Constraint & SpecialConstraint.Constructor) != 0) {
7560
report.Error (401, GetLocation (yyVals[-1+yyTop]), "The `new()' constraint must be the last constraint specified");
7563
prev = yyVals[0+yyTop] as SpecialContraintExpr;
7565
if ((prev.Constraint & (SpecialConstraint.Class | SpecialConstraint.Struct)) != 0) {
7566
report.Error (449, prev.Location, "The `class' or `struct' constraint must be the first constraint specified");
7568
prev = constraints [0] as SpecialContraintExpr;
7569
if (prev != null && (prev.Constraint & SpecialConstraint.Struct) != 0) {
7570
report.Error (451, GetLocation (yyVals[0+yyTop]), "The `new()' constraint cannot be used with the `struct' constraint");
7575
constraints.Add ((FullNamedExpression) yyVals[0+yyTop]);
7576
lbag.AppendTo (constraints, GetLocation (yyVals[-1+yyTop]));
7577
yyVal = constraints;
7581
#line 4631 "cs-parser.jay"
7583
if (yyVals[0+yyTop] is ComposedCast)
7584
report.Error (706, GetLocation (yyVals[0+yyTop]), "Invalid constraint type `{0}'", ((ComposedCast)yyVals[0+yyTop]).GetSignatureForError ());
7586
yyVal = yyVals[0+yyTop];
7590
#line 4638 "cs-parser.jay"
7592
yyVal = new SpecialContraintExpr (SpecialConstraint.Constructor, GetLocation (yyVals[-2+yyTop]));
7593
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
7597
#line 4658 "cs-parser.jay"
7599
if (lang_version <= LanguageVersion.V_3)
7600
FeatureIsNotAvailable (lexer.Location, "generic type variance");
7602
yyVal = yyVals[0+yyTop];
7606
#line 4668 "cs-parser.jay"
7608
yyVal = Variance.Covariant;
7609
savedLocation = GetLocation (yyVals[0+yyTop]);
7613
#line 4673 "cs-parser.jay"
7615
yyVal = Variance.Contravariant;
7616
savedLocation = GetLocation (yyVals[0+yyTop]);
7620
#line 4694 "cs-parser.jay"
7622
++lexer.parsing_block;
7623
start_block (GetLocation (yyVals[0+yyTop]));
7627
#line 4706 "cs-parser.jay"
7629
--lexer.parsing_block;
7630
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
7634
#line 4711 "cs-parser.jay"
7636
--lexer.parsing_block;
7637
yyVal = end_block (lexer.Location);
7641
#line 4720 "cs-parser.jay"
7643
++lexer.parsing_block;
7644
current_block.StartLocation = GetLocation (yyVals[0+yyTop]);
7648
#line 4725 "cs-parser.jay"
7650
--lexer.parsing_block;
7651
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
7655
#line 4729 "cs-parser.jay"
7657
report.Error (1525, GetLocation (yyVals[0+yyTop]), "Unexpected symbol '}', expected '{'");
7658
lexer.putback ('}');
7659
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
7663
#line 4758 "cs-parser.jay"
7665
Error_SyntaxError (yyToken);
7666
var lt =(Tokenizer.LocatedToken) yyVals[-1+yyTop];
7667
var sn = new SimpleName (lt.Value, lt.Location);
7668
current_block.AddStatement(new StatementErrorExpression (sn));
7673
#line 4767 "cs-parser.jay"
7675
Error_SyntaxError (yyToken);
7680
#line 4831 "cs-parser.jay"
7682
report.Error (1023, GetLocation (yyVals[0+yyTop]), "An embedded statement may not be a declaration or labeled statement");
7687
#line 4836 "cs-parser.jay"
7689
report.Error (1023, GetLocation (yyVals[0+yyTop]), "An embedded statement may not be a declaration or labeled statement");
7694
#line 4841 "cs-parser.jay"
7696
Error_SyntaxError (yyToken);
7697
yyVal = new EmptyStatement (GetLocation (yyVals[0+yyTop]));
7701
#line 4849 "cs-parser.jay"
7703
/* Uses lexer.Location because semicolon location is not kept in quick mode*/
7704
yyVal = new EmptyStatement (lexer.Location);
7708
#line 4857 "cs-parser.jay"
7710
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
7711
LabeledStatement labeled = new LabeledStatement (lt.Value, current_block, lt.Location);
7712
lbag.AddLocation (labeled, GetLocation (yyVals[0+yyTop]));
7713
current_block.AddLabel (labeled);
7714
current_block.AddStatement (labeled);
7718
#line 4870 "cs-parser.jay"
7720
if (yyVals[-1+yyTop] is VarExpr)
7721
yyVals[-1+yyTop] = new SimpleName ("var", ((VarExpr) yyVals[-1+yyTop]).Location);
7723
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
7727
#line 4886 "cs-parser.jay"
7729
/* Ok, the above "primary_expression" is there to get rid of*/
7730
/* both reduce/reduce and shift/reduces in the grammar, it should*/
7731
/* really just be "type_name". If you use type_name, a reduce/reduce*/
7732
/* creeps up. If you use namespace_or_type_name (which is all we need*/
7733
/* really) two shift/reduces appear.*/
7736
/* So the super-trick is that primary_expression*/
7737
/* can only be either a SimpleName or a MemberAccess. */
7738
/* The MemberAccess case arises when you have a fully qualified type-name like :*/
7739
/* Foo.Bar.Blah i;*/
7740
/* SimpleName is when you have*/
7743
Expression expr = (Expression) yyVals[-1+yyTop];
7744
if (yyVals[0+yyTop] == null) {
7745
SimpleName sn = expr as SimpleName;
7746
if (sn != null && sn.Name == "var")
7747
yyVal = new VarExpr (sn.Location);
7749
yyVal = yyVals[-1+yyTop];
7750
} else if (expr is ATypeNameExpression) {
7751
yyVal = new ComposedCast ((ATypeNameExpression)expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
7753
Error_ExpectingTypeName (expr);
7759
#line 4916 "cs-parser.jay"
7761
ATypeNameExpression expr = yyVals[-1+yyTop] as ATypeNameExpression;
7764
yyVal = new ComposedCast (expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
7766
Error_ExpectingTypeName ((Expression)yyVals[-1+yyTop]);
7772
#line 4927 "cs-parser.jay"
7774
if (yyVals[0+yyTop] == null)
7775
yyVal = yyVals[-1+yyTop];
7777
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
7781
#line 4942 "cs-parser.jay"
7783
Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report);
7784
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
7788
#line 4951 "cs-parser.jay"
7790
((ComposedTypeSpecifier) yyVals[-1+yyTop]).Next = (ComposedTypeSpecifier) yyVals[0+yyTop];
7791
yyVal = yyVals[-1+yyTop];
7795
#line 4967 "cs-parser.jay"
7798
report.Error (4003, GetLocation (yyVals[0+yyTop]), "`await' cannot be used as an identifier within an async method or lambda expression");
7799
yyVal = Tokenizer.LocatedToken.Create ("await", GetLocation (yyVals[0+yyTop]));
7804
#line 4977 "cs-parser.jay"
7806
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
7807
var li = new LocalVariable (current_block, lt.Value, lt.Location);
7808
current_block.AddLocalName (li);
7809
current_variable = new BlockVariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
7813
#line 4984 "cs-parser.jay"
7815
yyVal = current_variable;
7816
current_variable = null;
7817
lbag.AppendTo (yyVal, GetLocation (yyVals[0+yyTop]));
7821
#line 4990 "cs-parser.jay"
7823
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
7824
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.Constant, lt.Location);
7825
current_block.AddLocalName (li);
7826
current_variable = new BlockConstantDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
7830
#line 4997 "cs-parser.jay"
7832
if (current_variable.Initializer != null) {
7833
lbag.AddLocation (current_variable, GetLocation (yyVals[-6+yyTop]), savedLocation, GetLocation (yyVals[0+yyTop]));
7835
lbag.AddLocation (current_variable, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
7837
yyVal = current_variable;;
7838
current_variable = null;
7842
#line 5010 "cs-parser.jay"
7844
/* Redundant, but wont regress*/
7845
report.Error (1525, lexer.Location, "Unexpected symbol }");
7846
lexer.putback ('}');
7847
yyVal = yyVals[0+yyTop];
7851
#line 5021 "cs-parser.jay"
7853
current_variable.Initializer = (Expression) yyVals[0+yyTop];
7854
lbag.AppendTo (current_variable, GetLocation (yyVals[-1+yyTop]));
7858
#line 5026 "cs-parser.jay"
7860
if (yyToken == Token.OPEN_BRACKET_EXPR) {
7861
report.Error (650, lexer.Location,
7862
"Syntax error, bad array declarator. To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type");
7863
current_variable.Initializer = ErrorExpression.Create (650, lexer.Location,
7864
"Syntax error, bad array declarator. To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type");
7866
Error_SyntaxError (yyToken);
7867
current_variable.Initializer = ErrorExpression.Create (0, lexer.Location,
7870
lbag.AppendTo (current_variable, GetLocation (yyVals[-1+yyTop]));
7874
#line 5040 "cs-parser.jay"
7876
if (yyToken == Token.OPEN_BRACKET_EXPR) {
7877
report.Error (650, lexer.Location,
7878
"Syntax error, bad array declarator. To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type");
7880
Error_SyntaxError (yyToken);
7885
#line 5058 "cs-parser.jay"
7887
foreach (var d in current_variable.Declarators) {
7888
if (d.Initializer == null)
7889
Error_MissingInitializer (d.Variable.Location);
7894
#line 5073 "cs-parser.jay"
7896
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
7897
var li = new LocalVariable (current_variable.Variable, lt.Value, lt.Location);
7898
var d = new BlockVariableDeclaration.Declarator (li, null);
7899
current_variable.AddDeclarator (d);
7900
current_block.AddLocalName (li);
7901
lbag.AddLocation (d, GetLocation (yyVals[-1+yyTop]));
7905
#line 5082 "cs-parser.jay"
7907
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
7908
var li = new LocalVariable (current_variable.Variable, lt.Value, lt.Location);
7909
var d = new BlockVariableDeclaration.Declarator (li, (Expression) yyVals[0+yyTop]);
7910
current_variable.AddDeclarator (d);
7911
current_block.AddLocalName (li);
7912
lbag.AddLocation (d, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
7916
#line 5098 "cs-parser.jay"
7918
savedLocation = GetLocation (yyVals[-1+yyTop]);
7919
current_variable.Initializer = (Expression) yyVals[0+yyTop];
7923
#line 5116 "cs-parser.jay"
7925
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
7926
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.Constant, lt.Location);
7927
var d = new BlockVariableDeclaration.Declarator (li, (Expression) yyVals[0+yyTop]);
7928
current_variable.AddDeclarator (d);
7929
current_block.AddLocalName (li);
7930
lbag.AddLocation (d, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
7934
#line 5129 "cs-parser.jay"
7936
yyVal = new StackAlloc ((Expression) yyVals[-3+yyTop], (Expression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
7937
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7941
#line 5134 "cs-parser.jay"
7943
report.Error (1575, GetLocation (yyVals[-1+yyTop]), "A stackalloc expression requires [] after type");
7944
yyVal = new StackAlloc ((Expression) yyVals[0+yyTop], null, GetLocation (yyVals[-1+yyTop]));
7948
#line 5142 "cs-parser.jay"
7950
yyVal = yyVals[-1+yyTop];
7951
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
7955
#line 5148 "cs-parser.jay"
7957
yyVal = yyVals[-1+yyTop];
7958
report.Error (1002, GetLocation (yyVals[0+yyTop]), "; expected");
7959
lexer.putback ('}');
7963
#line 5166 "cs-parser.jay"
7965
ExpressionStatement s = yyVals[0+yyTop] as ExpressionStatement;
7967
Expression.Error_InvalidExpressionStatement (report, GetLocation (yyVals[0+yyTop]));
7968
yyVal = new StatementErrorExpression (yyVals[0+yyTop] as Expression);
7970
yyVal = new StatementExpression (s);
7975
#line 5179 "cs-parser.jay"
7977
Expression expr = (Expression) yyVals[0+yyTop];
7978
ExpressionStatement s;
7980
s = new OptionalAssign (new SimpleName ("$retval", lexer.Location), expr, lexer.Location);
7981
yyVal = new StatementExpression (s);
7985
#line 5187 "cs-parser.jay"
7987
Error_SyntaxError (yyToken);
7988
yyVal = new EmptyStatement (GetLocation (yyVals[0+yyTop]));
7992
#line 5201 "cs-parser.jay"
7994
if (yyVals[0+yyTop] is EmptyStatement)
7995
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
7997
yyVal = new If ((BooleanExpression) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
7998
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
8002
#line 5210 "cs-parser.jay"
8004
yyVal = new If ((BooleanExpression) yyVals[-4+yyTop], (Statement) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-6+yyTop]));
8005
lbag.AddStatement (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
8007
if (yyVals[-2+yyTop] is EmptyStatement)
8008
Warning_EmptyStatement (GetLocation (yyVals[-2+yyTop]));
8009
if (yyVals[0+yyTop] is EmptyStatement)
8010
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8014
#line 5220 "cs-parser.jay"
8016
Error_SyntaxError (yyToken);
8018
yyVal = new If ((BooleanExpression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
8019
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
8023
#line 5234 "cs-parser.jay"
8025
yyVal = new Switch ((Expression) yyVals[-5+yyTop], (ExplicitBlock) current_block.Explicit, (List<SwitchSection>) yyVals[-1+yyTop], GetLocation (yyVals[-7+yyTop]));
8026
end_block (GetLocation (yyVals[0+yyTop]));
8027
lbag.AddStatement (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
8031
#line 5240 "cs-parser.jay"
8033
Error_SyntaxError (yyToken);
8035
yyVal = new Switch ((Expression) yyVals[-1+yyTop], null, null, GetLocation (yyVals[-3+yyTop]));
8036
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
8040
#line 5250 "cs-parser.jay"
8042
report.Warning (1522, 1, current_block.StartLocation, "Empty switch block");
8043
yyVal = new List<SwitchSection> ();
8047
#line 5259 "cs-parser.jay"
8049
var sections = new List<SwitchSection> (4);
8051
sections.Add ((SwitchSection) yyVals[0+yyTop]);
8056
#line 5266 "cs-parser.jay"
8058
var sections = (List<SwitchSection>) yyVals[-1+yyTop];
8060
sections.Add ((SwitchSection) yyVals[0+yyTop]);
8065
#line 5273 "cs-parser.jay"
8067
Error_SyntaxError (yyToken);
8068
yyVal = new List<SwitchSection> ();
8072
#line 5292 "cs-parser.jay"
8074
var labels = new List<SwitchLabel> (2);
8076
labels.Add ((SwitchLabel) yyVals[0+yyTop]);
8081
#line 5299 "cs-parser.jay"
8083
var labels = (List<SwitchLabel>) (yyVals[-1+yyTop]);
8084
labels.Add ((SwitchLabel) yyVals[0+yyTop]);
8090
#line 5309 "cs-parser.jay"
8092
yyVal = new SwitchLabel ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
8093
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8097
#line 5314 "cs-parser.jay"
8099
Error_SyntaxError (yyToken);
8100
yyVal = new SwitchLabel ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
8104
#line 5333 "cs-parser.jay"
8106
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8107
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8109
yyVal = new While ((BooleanExpression) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
8110
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
8114
#line 5341 "cs-parser.jay"
8116
Error_SyntaxError (yyToken);
8118
yyVal = new While ((BooleanExpression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
8119
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
8123
#line 5351 "cs-parser.jay"
8125
yyVal = new Do ((Statement) yyVals[-5+yyTop], (BooleanExpression) yyVals[-2+yyTop], GetLocation (yyVals[-6+yyTop]));
8126
lbag.AddStatement (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
8130
#line 5356 "cs-parser.jay"
8132
Error_SyntaxError (yyToken);
8133
yyVal = new Do ((Statement) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]));
8137
#line 5361 "cs-parser.jay"
8139
Error_SyntaxError (yyToken);
8141
yyVal = new Do ((Statement) yyVals[-4+yyTop], (BooleanExpression) yyVals[-1+yyTop], GetLocation (yyVals[-5+yyTop]));
8142
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
8146
#line 5371 "cs-parser.jay"
8148
start_block (GetLocation (yyVals[0+yyTop]));
8149
current_block.IsCompilerGenerated = true;
8150
For f = new For (GetLocation (yyVals[-1+yyTop]));
8151
current_block.AddStatement (f);
8152
lbag.AddStatement (f, current_block.StartLocation);
8157
#line 5388 "cs-parser.jay"
8159
For f = (For) yyVals[-2+yyTop];
8160
f.Initializer = (Statement) yyVals[-1+yyTop];
8161
lbag.AppendTo (f, GetLocation (yyVals[0+yyTop]));
8166
#line 5398 "cs-parser.jay"
8168
report.Error (1525, GetLocation (yyVals[0+yyTop]), "Unexpected symbol ')', expected ';'");
8169
For f = (For) yyVals[-2+yyTop];
8170
f.Initializer = (Statement) yyVals[-1+yyTop];
8171
lbag.AppendTo (f, GetLocation (yyVals[0+yyTop]));
8172
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8176
#line 5409 "cs-parser.jay"
8178
For f = (For) yyVals[-2+yyTop];
8179
f.Condition = (BooleanExpression) yyVals[-1+yyTop];
8180
lbag.AppendTo (f, GetLocation (yyVals[0+yyTop]));
8185
#line 5420 "cs-parser.jay"
8187
report.Error (1525, GetLocation (yyVals[0+yyTop]), "Unexpected symbol ')', expected ';'");
8188
For f = (For) yyVals[-2+yyTop];
8189
f.Condition = (BooleanExpression) yyVals[-1+yyTop];
8190
lbag.AppendTo (f, GetLocation (yyVals[0+yyTop]));
8191
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8195
#line 5432 "cs-parser.jay"
8197
For f = (For) yyVals[-3+yyTop];
8198
f.Iterator = (Statement) yyVals[-2+yyTop];
8200
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8201
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8203
f.Statement = (Statement) yyVals[0+yyTop];
8204
lbag.AppendTo (f, GetLocation (yyVals[-1+yyTop]));
8206
yyVal = end_block (GetLocation (yyVals[-1+yyTop]));
8210
#line 5445 "cs-parser.jay"
8212
Error_SyntaxError (yyToken);
8213
yyVal = end_block (current_block.StartLocation);
8217
#line 5458 "cs-parser.jay"
8219
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
8220
var li = new LocalVariable (current_block, lt.Value, lt.Location);
8221
current_block.AddLocalName (li);
8222
current_variable = new BlockVariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
8226
#line 5465 "cs-parser.jay"
8228
yyVal = current_variable;
8229
current_variable = null;
8233
#line 5489 "cs-parser.jay"
8235
var sl = yyVals[-2+yyTop] as StatementList;
8237
sl = new StatementList ((Statement) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop]);
8238
lbag.AddStatement (sl, GetLocation (yyVals[-1+yyTop]));
8240
sl.Add ((Statement) yyVals[0+yyTop]);
8241
lbag.AppendTo (sl, GetLocation (yyVals[-1+yyTop]));
8249
#line 5506 "cs-parser.jay"
8251
report.Error (230, GetLocation (yyVals[-3+yyTop]), "Type and identifier are both required in a foreach statement");
8253
start_block (GetLocation (yyVals[-2+yyTop]));
8254
current_block.IsCompilerGenerated = true;
8256
Foreach f = new Foreach ((Expression) yyVals[-1+yyTop], null, null, null, null, GetLocation (yyVals[-3+yyTop]));
8257
current_block.AddStatement (f);
8259
lbag.AddStatement (f, GetLocation (yyVals[-2+yyTop]));
8260
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8264
#line 5519 "cs-parser.jay"
8266
Error_SyntaxError (yyToken);
8268
start_block (GetLocation (yyVals[-3+yyTop]));
8269
current_block.IsCompilerGenerated = true;
8271
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
8272
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.ForeachVariable | LocalVariable.Flags.Used, lt.Location);
8273
current_block.AddLocalName (li);
8275
Foreach f = new Foreach ((Expression) yyVals[-2+yyTop], li, null, null, null, GetLocation (yyVals[-4+yyTop]));
8276
current_block.AddStatement (f);
8278
lbag.AddStatement (f, GetLocation (yyVals[-3+yyTop]));
8279
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8283
#line 5536 "cs-parser.jay"
8285
start_block (GetLocation (yyVals[-5+yyTop]));
8286
current_block.IsCompilerGenerated = true;
8287
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
8288
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.ForeachVariable | LocalVariable.Flags.Used, lt.Location);
8289
current_block.AddLocalName (li);
8294
#line 5545 "cs-parser.jay"
8296
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8297
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8299
Foreach f = new Foreach ((Expression) yyVals[-6+yyTop], (LocalVariable) yyVals[-1+yyTop], (Expression) yyVals[-3+yyTop], (Statement) yyVals[0+yyTop], current_block, GetLocation (yyVals[-8+yyTop]));
8300
lbag.AddStatement (f, GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
8301
end_block (GetLocation (yyVals[-2+yyTop]));
8307
#line 5556 "cs-parser.jay"
8309
start_block (GetLocation (yyVals[-3+yyTop]));
8310
current_block.IsCompilerGenerated = true;
8311
var lt = yyVals[-1+yyTop] as Tokenizer.LocatedToken;
8312
var li = lt != null ? new LocalVariable (current_block, lt.Value, LocalVariable.Flags.ForeachVariable | LocalVariable.Flags.Used, lt.Location) : null;
8314
Foreach f = new Foreach ((Expression) yyVals[-2+yyTop], li, null, null, null, GetLocation (yyVals[-4+yyTop]));
8315
current_block.AddStatement (f);
8317
lbag.AddStatement (f, GetLocation (yyVals[-3+yyTop]));
8318
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8322
#line 5569 "cs-parser.jay"
8324
Foreach f = new Foreach ((Expression) yyVals[-1+yyTop], null, null, null, null, GetLocation (yyVals[-3+yyTop]));
8325
current_block.AddStatement (f);
8327
lbag.AddStatement (f, GetLocation (yyVals[-2+yyTop]));
8332
#line 5589 "cs-parser.jay"
8334
yyVal = new Break (GetLocation (yyVals[-1+yyTop]));
8335
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
8339
#line 5597 "cs-parser.jay"
8341
yyVal = new Continue (GetLocation (yyVals[-1+yyTop]));
8342
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
8346
#line 5602 "cs-parser.jay"
8348
Error_SyntaxError (yyToken);
8349
yyVal = new Continue (GetLocation (yyVals[-1+yyTop]));
8353
#line 5610 "cs-parser.jay"
8355
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
8356
yyVal = new Goto (lt.Value, GetLocation (yyVals[-2+yyTop]));
8357
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
8361
#line 5616 "cs-parser.jay"
8363
yyVal = new GotoCase ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
8364
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
8368
#line 5621 "cs-parser.jay"
8370
yyVal = new GotoDefault (GetLocation (yyVals[-2+yyTop]));
8371
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
8375
#line 5629 "cs-parser.jay"
8377
yyVal = new Return ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
8378
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
8382
#line 5634 "cs-parser.jay"
8384
Error_SyntaxError (yyToken);
8385
yyVal = new Return (null, GetLocation (yyVals[-1+yyTop]));
8389
#line 5642 "cs-parser.jay"
8391
yyVal = new Throw ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
8392
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
8396
#line 5647 "cs-parser.jay"
8398
Error_SyntaxError (yyToken);
8399
yyVal = new Throw (null, GetLocation (yyVals[-1+yyTop]));
8403
#line 5655 "cs-parser.jay"
8405
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
8406
string s = lt.Value;
8408
report.Error (1003, lt.Location, "; expected");
8409
} else if (yyVals[-1+yyTop] == null) {
8410
report.Error (1627, GetLocation (yyVals[0+yyTop]), "Expression expected after yield return");
8411
} else if (lang_version == LanguageVersion.ISO_1){
8412
FeatureIsNotAvailable (lt.Location, "iterators");
8415
current_block.Explicit.RegisterIteratorYield ();
8416
yyVal = new Yield ((Expression) yyVals[-1+yyTop], lt.Location);
8417
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
8421
#line 5671 "cs-parser.jay"
8423
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
8424
string s = lt.Value;
8426
report.Error (1003, lt.Location, "; expected");
8427
} else if (lang_version == LanguageVersion.ISO_1){
8428
FeatureIsNotAvailable (lt.Location, "iterators");
8431
current_block.Explicit.RegisterIteratorYield ();
8432
yyVal = new YieldBreak (lt.Location);
8433
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
8437
#line 5697 "cs-parser.jay"
8439
yyVal = new TryFinally ((Statement) yyVals[-2+yyTop], (Block) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
8440
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]));
8444
#line 5702 "cs-parser.jay"
8446
var loc = GetLocation (yyVals[-4+yyTop]);
8447
yyVal = new TryFinally (new TryCatch ((Block) yyVals[-3+yyTop], (List<Catch>) yyVals[-2+yyTop], loc, true), (Block) yyVals[0+yyTop], loc);
8448
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]));
8452
#line 5708 "cs-parser.jay"
8454
Error_SyntaxError (1524, yyToken);
8455
yyVal = new TryCatch ((Block) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]), false);
8459
#line 5716 "cs-parser.jay"
8461
var l = new List<Catch> (2);
8463
l.Add ((Catch) yyVals[0+yyTop]);
8468
#line 5723 "cs-parser.jay"
8470
var l = (List<Catch>) yyVals[-1+yyTop];
8472
Catch c = (Catch) yyVals[0+yyTop];
8473
if (l [l.Count - 1].IsGeneral) {
8474
report.Error (1017, c.loc, "Try statement already has an empty catch block");
8482
#line 5747 "cs-parser.jay"
8484
start_block (GetLocation (yyVals[-3+yyTop]));
8485
var c = new Catch (current_block, GetLocation (yyVals[-4+yyTop]));
8486
c.TypeExpression = (FullNamedExpression) yyVals[-2+yyTop];
8488
if (yyVals[-1+yyTop] != null) {
8489
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
8490
c.Variable = new LocalVariable (current_block, lt.Value, lt.Location);
8491
current_block.AddLocalName (c.Variable);
8494
lbag.AddLocation (c, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
8499
#line 5766 "cs-parser.jay"
8501
if (yyToken == Token.CLOSE_PARENS) {
8502
report.Error (1015, lexer.Location,
8503
"A type that derives from `System.Exception', `object', or `string' expected");
8505
Error_SyntaxError (yyToken);
8508
yyVal = new Catch (null, GetLocation (yyVals[-2+yyTop]));
8512
#line 5794 "cs-parser.jay"
8514
if (!settings.Unsafe)
8515
Error_UnsafeCodeNotAllowed (GetLocation (yyVals[0+yyTop]));
8519
#line 5804 "cs-parser.jay"
8521
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8522
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8524
yyVal = new Lock ((Expression) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
8525
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
8529
#line 5812 "cs-parser.jay"
8531
Error_SyntaxError (yyToken);
8533
yyVal = new Lock ((Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
8534
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
8538
#line 5822 "cs-parser.jay"
8540
start_block (GetLocation (yyVals[-2+yyTop]));
8542
current_block.IsCompilerGenerated = true;
8543
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
8544
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.FixedVariable | LocalVariable.Flags.Used, lt.Location);
8545
current_block.AddLocalName (li);
8546
current_variable = new Fixed.VariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
8550
#line 5832 "cs-parser.jay"
8552
yyVal = current_variable;
8553
current_variable = null;
8557
#line 5837 "cs-parser.jay"
8559
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8560
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8562
Fixed f = new Fixed ((Fixed.VariableDeclaration) yyVals[-1+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-9+yyTop]));
8563
current_block.AddStatement (f);
8564
lbag.AddStatement (f, GetLocation (yyVals[-8+yyTop]), GetLocation (yyVals[-2+yyTop]));
8565
yyVal = end_block (GetLocation (yyVals[-2+yyTop]));
8569
#line 5850 "cs-parser.jay"
8571
start_block (GetLocation (yyVals[-2+yyTop]));
8573
current_block.IsCompilerGenerated = true;
8574
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
8575
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.UsingVariable | LocalVariable.Flags.Used, lt.Location);
8576
current_block.AddLocalName (li);
8577
current_variable = new Using.VariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
8581
#line 5860 "cs-parser.jay"
8583
yyVal = current_variable;
8584
current_variable = null;
8588
#line 5865 "cs-parser.jay"
8590
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8591
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8593
Using u = new Using ((Using.VariableDeclaration) yyVals[-1+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-8+yyTop]));
8594
lbag.AddStatement (u, GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-2+yyTop]));
8595
current_block.AddStatement (u);
8596
yyVal = end_block (GetLocation (yyVals[-2+yyTop]));
8600
#line 5875 "cs-parser.jay"
8602
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8603
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8605
yyVal = new Using ((Expression) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
8606
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
8610
#line 5883 "cs-parser.jay"
8612
Error_SyntaxError (yyToken);
8614
yyVal = new Using ((Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
8615
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
8619
#line 5894 "cs-parser.jay"
8621
/* It has to be here for the parent to safely restore artificial block*/
8622
Error_SyntaxError (yyToken);
8626
#line 5906 "cs-parser.jay"
8628
current_variable.Initializer = (Expression) yyVals[0+yyTop];
8629
lbag.AppendTo (current_variable, GetLocation (yyVals[-1+yyTop]));
8630
yyVal = current_variable;
8634
#line 5918 "cs-parser.jay"
8636
lexer.query_parsing = false;
8638
Linq.AQueryClause from = yyVals[-1+yyTop] as Linq.AQueryClause;
8640
from.Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
8643
current_block.SetEndLocation (lexer.Location);
8644
current_block = current_block.Parent;
8648
#line 5930 "cs-parser.jay"
8650
Linq.AQueryClause from = yyVals[-1+yyTop] as Linq.AQueryClause;
8652
from.Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
8655
current_block.SetEndLocation (lexer.Location);
8656
current_block = current_block.Parent;
8660
#line 5941 "cs-parser.jay"
8662
lexer.query_parsing = false;
8663
yyVal = yyVals[-1+yyTop];
8665
current_block.SetEndLocation (lexer.Location);
8666
current_block = current_block.Parent;
8670
#line 5948 "cs-parser.jay"
8672
yyVal = yyVals[-1+yyTop];
8673
current_block.SetEndLocation (lexer.Location);
8674
current_block = current_block.Parent;
8678
#line 5957 "cs-parser.jay"
8680
current_block = new Linq.QueryBlock (current_block, lexer.Location);
8682
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
8683
var rv = new Linq.RangeVariable (lt.Value, lt.Location);
8684
var start = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], rv, GetLocation (yyVals[-3+yyTop]));
8685
lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
8686
yyVal = new Linq.QueryExpression (start);
8690
#line 5967 "cs-parser.jay"
8692
current_block = new Linq.QueryBlock (current_block, lexer.Location);
8694
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
8695
var rv = new Linq.RangeVariable (lt.Value, lt.Location);
8696
var start = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], rv, GetLocation (yyVals[-4+yyTop])) {
8697
IdentifierType = (FullNamedExpression)yyVals[-3+yyTop]
8699
lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
8700
yyVal = new Linq.QueryExpression (start);
8704
#line 5982 "cs-parser.jay"
8706
current_block = new Linq.QueryBlock (current_block, lexer.Location);
8708
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
8709
var rv = new Linq.RangeVariable (lt.Value, lt.Location);
8710
var start = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], rv, GetLocation (yyVals[-3+yyTop]));
8711
lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
8712
yyVal = new Linq.QueryExpression (start);
8716
#line 5992 "cs-parser.jay"
8718
current_block = new Linq.QueryBlock (current_block, lexer.Location);
8720
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
8721
var rv = new Linq.RangeVariable (lt.Value, lt.Location);
8722
var start = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], rv, GetLocation (yyVals[-4+yyTop])) {
8723
IdentifierType = (FullNamedExpression)yyVals[-3+yyTop]
8725
lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
8726
yyVal = new Linq.QueryExpression (start);
8730
#line 6011 "cs-parser.jay"
8732
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
8733
var sn = new Linq.RangeVariable (lt.Value, lt.Location);
8734
yyVal = new Linq.SelectMany ((Linq.QueryBlock)current_block, sn, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
8736
current_block.SetEndLocation (lexer.Location);
8737
current_block = current_block.Parent;
8738
((Linq.QueryBlock)current_block).AddRangeVariable (sn);
8740
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
8744
#line 6027 "cs-parser.jay"
8746
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
8747
var sn = new Linq.RangeVariable (lt.Value, lt.Location);
8749
yyVal = new Linq.SelectMany ((Linq.QueryBlock)current_block, sn, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-5+yyTop])) {
8750
IdentifierType = (FullNamedExpression)yyVals[-4+yyTop]
8753
current_block.SetEndLocation (lexer.Location);
8754
current_block = current_block.Parent;
8756
((Linq.QueryBlock)current_block).AddRangeVariable (sn);
8758
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
8762
#line 6046 "cs-parser.jay"
8764
Linq.AQueryClause head = (Linq.AQueryClause)yyVals[-1+yyTop];
8766
if (yyVals[0+yyTop] != null)
8767
head.Next = (Linq.AQueryClause)yyVals[0+yyTop];
8769
if (yyVals[-2+yyTop] != null) {
8770
Linq.AQueryClause clause = (Linq.AQueryClause)yyVals[-2+yyTop];
8771
clause.Tail.Next = head;
8779
#line 6061 "cs-parser.jay"
8781
Linq.AQueryClause head = (Linq.AQueryClause)yyVals[0+yyTop];
8783
if (yyVals[-1+yyTop] != null) {
8784
Linq.AQueryClause clause = (Linq.AQueryClause)yyVals[-1+yyTop];
8785
clause.Tail.Next = head;
8793
#line 6074 "cs-parser.jay"
8795
report.Error (742, GetLocation (yyVals[0+yyTop]), "Unexpected symbol `{0}'. A query body must end with select or group clause", GetSymbolName (yyToken));
8796
yyVal = yyVals[-1+yyTop];
8800
#line 6079 "cs-parser.jay"
8802
Error_SyntaxError (yyToken);
8807
#line 6091 "cs-parser.jay"
8809
yyVal = new Linq.Select ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
8811
current_block.SetEndLocation (lexer.Location);
8812
current_block = current_block.Parent;
8816
#line 6098 "cs-parser.jay"
8818
if (linq_clause_blocks == null)
8819
linq_clause_blocks = new Stack<Linq.QueryBlock> ();
8821
current_block = new Linq.QueryBlock (current_block, lexer.Location);
8822
linq_clause_blocks.Push ((Linq.QueryBlock)current_block);
8826
#line 6106 "cs-parser.jay"
8828
current_block.SetEndLocation (lexer.Location);
8829
current_block = current_block.Parent;
8831
current_block = new Linq.QueryBlock (current_block, lexer.Location);
8835
#line 6113 "cs-parser.jay"
8837
yyVal = new Linq.GroupBy ((Linq.QueryBlock)current_block, (Expression)yyVals[-3+yyTop], linq_clause_blocks.Pop (), (Expression)yyVals[0+yyTop], GetLocation (yyVals[-5+yyTop]));
8838
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
8840
current_block.SetEndLocation (lexer.Location);
8841
current_block = current_block.Parent;
8845
#line 6125 "cs-parser.jay"
8847
((Linq.AQueryClause)yyVals[-1+yyTop]).Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
8848
yyVal = yyVals[-1+yyTop];
8852
#line 6145 "cs-parser.jay"
8854
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
8855
var sn = new Linq.RangeVariable (lt.Value, lt.Location);
8856
yyVal = new Linq.Let ((Linq.QueryBlock) current_block, sn, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
8857
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
8859
current_block.SetEndLocation (lexer.Location);
8860
current_block = current_block.Parent;
8862
((Linq.QueryBlock)current_block).AddRangeVariable (sn);
8866
#line 6164 "cs-parser.jay"
8868
yyVal = new Linq.Where ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
8870
current_block.SetEndLocation (lexer.Location);
8871
current_block = current_block.Parent;
8875
#line 6174 "cs-parser.jay"
8877
if (linq_clause_blocks == null)
8878
linq_clause_blocks = new Stack<Linq.QueryBlock> ();
8880
current_block = new Linq.QueryBlock (current_block, lexer.Location);
8881
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
8885
#line 6182 "cs-parser.jay"
8887
current_block.SetEndLocation (lexer.Location);
8888
current_block = current_block.Parent;
8890
current_block = new Linq.QueryBlock (current_block, lexer.Location);
8891
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
8895
#line 6190 "cs-parser.jay"
8897
current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
8898
current_block.SetEndLocation (lexer.Location);
8899
current_block = current_block.Parent;
8901
current_block = new Linq.QueryBlock (current_block, lexer.Location);
8905
#line 6198 "cs-parser.jay"
8907
current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
8908
current_block.SetEndLocation (lexer.Location);
8910
var outer_selector = linq_clause_blocks.Pop ();
8911
var block = linq_clause_blocks.Pop ();
8913
var lt = (Tokenizer.LocatedToken) yyVals[-10+yyTop];
8914
var sn = new Linq.RangeVariable (lt.Value, lt.Location);
8915
Linq.RangeVariable into;
8917
if (yyVals[0+yyTop] == null) {
8919
yyVal = new Linq.Join (block, sn, (Expression)yyVals[-7+yyTop], outer_selector, (Linq.QueryBlock) current_block, GetLocation (yyVals[-11+yyTop]));
8920
lbag.AddLocation (yyVal, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]));
8923
/* Set equals right side parent to beginning of linq query, it is not accessible therefore cannot cause name collisions*/
8925
var parent = block.Parent;
8926
while (parent is Linq.QueryBlock) {
8927
parent = parent.Parent;
8929
current_block.Parent = parent;
8931
((Linq.QueryBlock)current_block).AddRangeVariable (sn);
8933
lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
8934
into = new Linq.RangeVariable (lt.Value, lt.Location);
8936
yyVal = new Linq.GroupJoin (block, sn, (Expression)yyVals[-7+yyTop], outer_selector, (Linq.QueryBlock) current_block, into, GetLocation (yyVals[-11+yyTop]));
8937
lbag.AddLocation (yyVal, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]), opt_intoStack.Pop ());
8940
current_block = block.Parent;
8941
((Linq.QueryBlock)current_block).AddRangeVariable (into);
8945
#line 6236 "cs-parser.jay"
8947
if (linq_clause_blocks == null)
8948
linq_clause_blocks = new Stack<Linq.QueryBlock> ();
8950
current_block = new Linq.QueryBlock (current_block, lexer.Location);
8951
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
8955
#line 6244 "cs-parser.jay"
8957
current_block.SetEndLocation (lexer.Location);
8958
current_block = current_block.Parent;
8960
current_block = new Linq.QueryBlock (current_block, lexer.Location);
8961
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
8965
#line 6252 "cs-parser.jay"
8967
current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
8968
current_block.SetEndLocation (lexer.Location);
8969
current_block = current_block.Parent;
8971
current_block = new Linq.QueryBlock (current_block, lexer.Location);
8975
#line 6260 "cs-parser.jay"
8977
current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
8978
current_block.SetEndLocation (lexer.Location);
8980
var outer_selector = linq_clause_blocks.Pop ();
8981
var block = linq_clause_blocks.Pop ();
8983
var lt = (Tokenizer.LocatedToken) yyVals[-10+yyTop];
8984
var sn = new Linq.RangeVariable (lt.Value, lt.Location);
8985
Linq.RangeVariable into;
8987
if (yyVals[0+yyTop] == null) {
8989
yyVal = new Linq.Join (block, sn, (Expression)yyVals[-7+yyTop], outer_selector, (Linq.QueryBlock) current_block, GetLocation (yyVals[-12+yyTop])) {
8990
IdentifierType = (FullNamedExpression)yyVals[-11+yyTop]
8992
lbag.AddLocation (yyVal, GetLocation (yyVals[-10+yyTop]), GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]));
8995
/* Set equals right side parent to beginning of linq query, it is not accessible therefore cannot cause name collisions*/
8997
var parent = block.Parent;
8998
while (parent is Linq.QueryBlock) {
8999
parent = parent.Parent;
9001
current_block.Parent = parent;
9003
((Linq.QueryBlock)current_block).AddRangeVariable (sn);
9005
lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
9006
into = new Linq.RangeVariable (lt.Value, lt.Location); /* TODO:*/
9008
yyVal = new Linq.GroupJoin (block, sn, (Expression)yyVals[-7+yyTop], outer_selector, (Linq.QueryBlock) current_block, into, GetLocation (yyVals[-12+yyTop])) {
9009
IdentifierType = (FullNamedExpression)yyVals[-11+yyTop]
9011
lbag.AddLocation (yyVal, GetLocation (yyVals[-10+yyTop]), GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]), opt_intoStack.Pop ());
9014
current_block = block.Parent;
9015
((Linq.QueryBlock)current_block).AddRangeVariable (into);
9019
#line 6306 "cs-parser.jay"
9021
opt_intoStack.Push (GetLocation (yyVals[-1+yyTop]));
9022
yyVal = yyVals[0+yyTop];
9026
#line 6318 "cs-parser.jay"
9028
current_block.SetEndLocation (lexer.Location);
9029
current_block = current_block.Parent;
9031
yyVal = yyVals[0+yyTop];
9035
#line 6329 "cs-parser.jay"
9037
current_block.SetEndLocation (lexer.Location);
9038
current_block = current_block.Parent;
9040
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9044
#line 6336 "cs-parser.jay"
9046
((Linq.AQueryClause)yyVals[-3+yyTop]).Next = (Linq.AQueryClause)yyVals[0+yyTop];
9047
yyVal = yyVals[-3+yyTop];
9051
#line 6345 "cs-parser.jay"
9053
current_block.SetEndLocation (lexer.Location);
9054
current_block = current_block.Parent;
9056
current_block = new Linq.QueryBlock ((Linq.QueryBlock) current_block, lexer.Location);
9060
#line 6352 "cs-parser.jay"
9062
((Linq.AQueryClause)yyVals[-3+yyTop]).Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
9063
yyVal = yyVals[-3+yyTop];
9067
#line 6364 "cs-parser.jay"
9069
yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
9070
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
9074
#line 6369 "cs-parser.jay"
9076
yyVal = new Linq.OrderByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
9077
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
9081
#line 6381 "cs-parser.jay"
9083
yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
9084
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
9088
#line 6386 "cs-parser.jay"
9090
yyVal = new Linq.ThenByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
9091
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
9095
#line 6396 "cs-parser.jay"
9097
/* query continuation block is not linked with query block but with block*/
9098
/* before. This means each query can use same range variable names for*/
9099
/* different identifiers.*/
9101
current_block.SetEndLocation (GetLocation (yyVals[-1+yyTop]));
9102
current_block = current_block.Parent;
9104
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9106
if (linq_clause_blocks == null)
9107
linq_clause_blocks = new Stack<Linq.QueryBlock> ();
9109
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
9113
#line 6412 "cs-parser.jay"
9115
var current_block = linq_clause_blocks.Pop ();
9116
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
9117
var rv = new Linq.RangeVariable (lt.Value, lt.Location);
9118
yyVal = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, null, rv, GetLocation (yyVals[-3+yyTop])) {
9119
next = (Linq.AQueryClause)yyVals[0+yyTop]
9124
#line 6439 "cs-parser.jay"
9126
current_container = current_type = new Class (current_container, new MemberName ("<InteractiveExpressionClass>"), Modifiers.PUBLIC, null);
9128
/* (ref object retval)*/
9129
Parameter [] mpar = new Parameter [1];
9130
mpar [0] = new Parameter (new TypeExpression (compiler.BuiltinTypes.Object, Location.Null), "$retval", Parameter.Modifier.REF, null, Location.Null);
9132
ParametersCompiled pars = new ParametersCompiled (mpar);
9133
var mods = Modifiers.PUBLIC | Modifiers.STATIC;
9134
if (settings.Unsafe)
9135
mods |= Modifiers.UNSAFE;
9137
current_local_parameters = pars;
9138
Method method = new Method (
9140
new TypeExpression (compiler.BuiltinTypes.Void, Location.Null),
9142
new MemberName ("Host"),
9144
null /* attributes */);
9146
current_type.AddMember (method);
9148
oob_stack.Push (method);
9149
++lexer.parsing_block;
9150
start_block (lexer.Location);
9154
#line 6467 "cs-parser.jay"
9156
--lexer.parsing_block;
9157
Method method = (Method) oob_stack.Pop ();
9159
method.Block = (ToplevelBlock) end_block(lexer.Location);
9161
InteractiveResult = (Class) pop_current_class ();
9162
current_local_parameters = null;
9166
#line 6510 "cs-parser.jay"
9168
module.DocumentationBuilder.ParsedBuiltinType = (TypeExpression)yyVals[-1+yyTop];
9169
module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
9174
#line 6516 "cs-parser.jay"
9176
module.DocumentationBuilder.ParsedBuiltinType = (TypeExpression)yyVals[-3+yyTop];
9177
module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
9178
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
9179
yyVal = new MemberName (lt.Value);
9183
#line 6531 "cs-parser.jay"
9185
module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[-1+yyTop];
9186
yyVal = new MemberName ((MemberName) yyVals[-6+yyTop], MemberCache.IndexerNameAlias, Location.Null);
9190
#line 6536 "cs-parser.jay"
9192
var p = (List<DocumentationParameter>)yyVals[0+yyTop] ?? new List<DocumentationParameter> (1);
9193
p.Add (new DocumentationParameter ((FullNamedExpression) yyVals[-1+yyTop]));
9194
module.DocumentationBuilder.ParsedParameters = p;
9195
module.DocumentationBuilder.ParsedOperator = Operator.OpType.Explicit;
9200
#line 6544 "cs-parser.jay"
9202
var p = (List<DocumentationParameter>)yyVals[0+yyTop] ?? new List<DocumentationParameter> (1);
9203
p.Add (new DocumentationParameter ((FullNamedExpression) yyVals[-1+yyTop]));
9204
module.DocumentationBuilder.ParsedParameters = p;
9205
module.DocumentationBuilder.ParsedOperator = Operator.OpType.Implicit;
9210
#line 6552 "cs-parser.jay"
9212
var p = (List<DocumentationParameter>)yyVals[0+yyTop] ?? new List<DocumentationParameter> (1);
9213
module.DocumentationBuilder.ParsedParameters = p;
9214
module.DocumentationBuilder.ParsedOperator = (Operator.OpType) yyVals[-1+yyTop];
9219
#line 6590 "cs-parser.jay"
9221
var parameters = new List<DocumentationParameter> ();
9222
parameters.Add ((DocumentationParameter) yyVals[0+yyTop]);
9227
#line 6596 "cs-parser.jay"
9229
var parameters = yyVals[-2+yyTop] as List<DocumentationParameter>;
9230
parameters.Add ((DocumentationParameter) yyVals[0+yyTop]);
9235
#line 6605 "cs-parser.jay"
9237
if (yyVals[-1+yyTop] != null)
9238
yyVal = new DocumentationParameter ((Parameter.Modifier) yyVals[-1+yyTop], (FullNamedExpression) yyVals[0+yyTop]);
9240
yyVal = new DocumentationParameter ((FullNamedExpression) yyVals[0+yyTop]);
9244
static readonly short [] yyLhs = { -1,
9245
0, 4, 0, 0, 1, 1, 1, 1, 2, 2,
9246
11, 11, 12, 12, 13, 13, 14, 15, 15, 15,
9247
19, 20, 17, 18, 18, 18, 22, 22, 23, 23,
9248
7, 7, 6, 6, 21, 21, 8, 8, 24, 24,
9249
24, 25, 25, 25, 25, 25, 9, 9, 10, 10,
9250
33, 31, 36, 32, 32, 34, 34, 34, 34, 35,
9251
35, 40, 37, 38, 39, 39, 41, 41, 41, 41,
9252
41, 42, 42, 46, 43, 45, 48, 48, 48, 49,
9253
49, 50, 50, 51, 51, 51, 51, 51, 51, 51,
9254
51, 51, 51, 51, 51, 65, 67, 69, 70, 71,
9255
27, 27, 74, 52, 75, 75, 76, 76, 77, 79,
9256
73, 73, 78, 78, 84, 53, 88, 53, 53, 83,
9257
91, 83, 85, 85, 92, 92, 93, 94, 93, 89,
9258
89, 95, 95, 96, 97, 87, 87, 90, 90, 90,
9259
100, 54, 103, 104, 98, 105, 106, 107, 98, 98,
9260
98, 99, 99, 102, 102, 110, 110, 110, 110, 110,
9261
110, 110, 110, 110, 110, 111, 111, 114, 114, 114,
9262
114, 117, 114, 115, 115, 118, 118, 119, 119, 119,
9263
112, 112, 112, 120, 120, 120, 113, 122, 124, 125,
9264
55, 127, 128, 129, 57, 123, 123, 123, 123, 123,
9265
133, 130, 134, 131, 132, 132, 132, 135, 136, 137,
9266
139, 28, 28, 138, 138, 140, 140, 141, 141, 141,
9267
141, 141, 141, 141, 141, 141, 144, 58, 143, 143,
9268
145, 145, 148, 142, 142, 147, 147, 147, 147, 147,
9269
147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
9270
147, 147, 147, 147, 147, 147, 147, 150, 149, 151,
9271
149, 149, 149, 59, 154, 156, 152, 153, 153, 155,
9272
155, 160, 158, 161, 158, 158, 158, 162, 60, 164,
9273
56, 167, 168, 56, 163, 170, 163, 165, 165, 171,
9274
171, 172, 173, 172, 174, 169, 166, 166, 166, 166,
9275
166, 178, 175, 179, 176, 177, 177, 61, 181, 183,
9276
184, 29, 180, 180, 180, 182, 182, 182, 185, 185,
9277
186, 187, 186, 188, 189, 190, 30, 191, 191, 16,
9278
16, 192, 192, 195, 194, 194, 194, 196, 196, 198,
9279
64, 121, 101, 101, 126, 126, 199, 199, 199, 197,
9280
197, 200, 200, 201, 201, 203, 203, 82, 72, 72,
9281
86, 86, 116, 116, 146, 146, 204, 204, 204, 204,
9282
204, 208, 208, 209, 207, 207, 207, 207, 207, 207,
9283
207, 210, 210, 210, 210, 210, 210, 210, 210, 210,
9284
211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
9285
211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
9286
212, 212, 212, 213, 213, 213, 233, 233, 234, 234,
9287
235, 235, 215, 215, 232, 232, 232, 232, 232, 232,
9288
232, 232, 217, 236, 236, 237, 237, 238, 238, 240,
9289
240, 240, 241, 241, 241, 241, 241, 242, 242, 159,
9290
159, 246, 246, 246, 246, 246, 248, 248, 247, 247,
9291
249, 249, 249, 249, 250, 218, 218, 218, 245, 245,
9292
245, 251, 251, 252, 252, 219, 220, 220, 221, 222,
9293
223, 223, 214, 214, 214, 214, 214, 257, 253, 224,
9294
258, 258, 259, 259, 260, 260, 261, 261, 261, 261,
9295
254, 254, 205, 205, 256, 256, 262, 262, 255, 255,
9296
81, 81, 263, 263, 264, 225, 265, 265, 265, 266,
9297
266, 266, 266, 266, 267, 193, 226, 227, 228, 229,
9298
269, 230, 270, 230, 268, 268, 272, 271, 216, 273,
9299
273, 273, 273, 273, 274, 274, 274, 274, 274, 274,
9300
274, 275, 275, 275, 275, 276, 276, 276, 276, 276,
9301
276, 277, 277, 277, 278, 278, 278, 278, 278, 279,
9302
279, 279, 280, 280, 281, 281, 282, 282, 283, 283,
9303
284, 284, 285, 285, 286, 286, 286, 288, 288, 288,
9304
288, 288, 288, 288, 288, 288, 288, 288, 289, 289,
9305
290, 290, 290, 291, 291, 292, 292, 294, 293, 287,
9306
287, 296, 295, 297, 295, 298, 299, 295, 300, 301,
9307
295, 44, 44, 243, 243, 243, 243, 231, 231, 231,
9308
80, 303, 304, 305, 306, 307, 26, 63, 63, 62,
9309
62, 108, 108, 308, 308, 308, 308, 308, 308, 308,
9310
308, 308, 308, 308, 308, 308, 308, 308, 66, 66,
9311
66, 68, 68, 309, 309, 310, 310, 311, 311, 312,
9312
312, 312, 312, 202, 202, 313, 313, 315, 109, 316,
9313
316, 317, 157, 157, 314, 314, 318, 318, 319, 319,
9314
319, 319, 319, 323, 323, 324, 324, 324, 321, 321,
9315
321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
9316
321, 325, 325, 325, 325, 325, 325, 325, 325, 325,
9317
325, 325, 325, 325, 339, 339, 339, 339, 326, 340,
9318
322, 341, 341, 342, 342, 342, 342, 342, 342, 206,
9319
206, 343, 47, 47, 345, 320, 349, 320, 347, 347,
9320
344, 344, 344, 344, 346, 346, 353, 353, 352, 352,
9321
354, 354, 348, 348, 350, 350, 355, 355, 356, 351,
9322
351, 351, 327, 327, 327, 338, 338, 357, 358, 358,
9323
328, 328, 359, 359, 359, 362, 360, 360, 361, 361,
9324
363, 363, 363, 366, 364, 365, 365, 367, 367, 367,
9325
329, 329, 329, 329, 368, 368, 369, 369, 369, 373,
9326
370, 376, 372, 372, 379, 375, 375, 378, 378, 374,
9327
374, 382, 381, 381, 377, 377, 380, 380, 384, 383,
9328
383, 371, 371, 385, 371, 371, 371, 330, 330, 330,
9329
330, 330, 330, 386, 387, 387, 388, 388, 388, 389,
9330
389, 390, 390, 391, 391, 392, 392, 331, 331, 331,
9331
331, 393, 393, 395, 395, 394, 396, 394, 394, 332,
9332
333, 397, 336, 334, 334, 399, 400, 337, 402, 403,
9333
335, 335, 335, 401, 401, 398, 398, 302, 302, 302,
9334
302, 404, 404, 406, 406, 408, 407, 409, 407, 405,
9335
405, 405, 405, 405, 413, 411, 414, 415, 411, 410,
9336
410, 416, 416, 416, 416, 416, 421, 417, 422, 418,
9337
423, 424, 425, 419, 427, 428, 429, 419, 426, 426,
9338
431, 420, 430, 434, 430, 433, 436, 433, 432, 432,
9339
432, 435, 435, 435, 412, 437, 412, 3, 3, 438,
9340
3, 3, 439, 439, 244, 244, 239, 239, 5, 440,
9341
440, 440, 440, 444, 440, 440, 440, 440, 441, 441,
9342
442, 445, 442, 443, 443, 446, 446, 447,
9344
static readonly short [] yyLen = { 2,
9345
2, 0, 3, 1, 2, 4, 3, 1, 0, 1,
9346
1, 2, 4, 2, 1, 2, 1, 3, 5, 2,
9347
0, 0, 11, 1, 3, 1, 0, 1, 0, 1,
9348
0, 1, 0, 1, 0, 1, 1, 2, 1, 1,
9349
2, 1, 1, 1, 1, 1, 0, 1, 1, 2,
9350
0, 3, 0, 6, 3, 1, 1, 1, 1, 1,
9351
3, 0, 3, 1, 0, 3, 0, 1, 1, 3,
9352
3, 1, 1, 0, 4, 4, 0, 1, 1, 0,
9353
1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
9354
1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
9355
16, 5, 0, 9, 0, 1, 1, 2, 3, 0,
9356
3, 1, 1, 1, 0, 8, 0, 9, 6, 0,
9357
0, 3, 0, 1, 1, 2, 2, 0, 5, 0,
9358
1, 1, 2, 3, 0, 4, 2, 1, 1, 1,
9359
0, 3, 0, 0, 10, 0, 0, 0, 12, 8,
9360
5, 1, 1, 0, 1, 1, 3, 3, 3, 5,
9361
3, 5, 1, 1, 1, 1, 3, 4, 6, 2,
9362
4, 0, 7, 0, 1, 1, 2, 1, 1, 1,
9363
4, 6, 4, 1, 2, 2, 1, 0, 0, 0,
9364
10, 0, 0, 0, 13, 1, 2, 1, 2, 1,
9365
0, 5, 0, 5, 1, 1, 1, 0, 0, 0,
9366
0, 15, 5, 0, 1, 1, 2, 1, 1, 1,
9367
1, 1, 1, 1, 1, 1, 0, 5, 1, 1,
9368
1, 1, 0, 7, 1, 1, 1, 1, 1, 1,
9369
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9370
1, 1, 1, 1, 1, 1, 1, 0, 7, 0,
9371
7, 2, 2, 2, 0, 0, 9, 1, 1, 0,
9372
1, 0, 6, 0, 6, 2, 1, 0, 8, 0,
9373
9, 0, 0, 10, 0, 0, 3, 0, 1, 1,
9374
2, 2, 0, 5, 0, 2, 2, 2, 1, 1,
9375
1, 0, 5, 0, 5, 1, 1, 2, 0, 0,
9376
0, 12, 0, 2, 2, 0, 1, 2, 1, 3,
9377
2, 0, 5, 0, 0, 0, 13, 0, 1, 1,
9378
3, 1, 4, 2, 0, 3, 2, 1, 3, 0,
9379
3, 1, 1, 3, 1, 2, 3, 4, 4, 0,
9380
3, 1, 3, 3, 1, 1, 1, 1, 1, 1,
9381
1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
9382
2, 1, 3, 1, 1, 1, 1, 1, 1, 1,
9383
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9384
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9385
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9386
2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
9387
1, 1, 3, 3, 4, 4, 4, 3, 3, 4,
9388
3, 4, 4, 0, 1, 3, 4, 0, 1, 1,
9389
3, 2, 3, 1, 2, 3, 2, 1, 1, 0,
9390
1, 1, 3, 3, 3, 2, 1, 1, 1, 1,
9391
2, 2, 4, 3, 1, 4, 4, 3, 1, 3,
9392
2, 1, 3, 1, 1, 1, 4, 3, 2, 2,
9393
6, 3, 7, 4, 3, 7, 3, 0, 2, 4,
9394
1, 2, 0, 1, 1, 3, 3, 1, 1, 1,
9395
0, 1, 1, 2, 2, 3, 1, 2, 0, 1,
9396
2, 4, 1, 3, 0, 5, 1, 1, 1, 2,
9397
3, 3, 4, 4, 1, 2, 4, 4, 4, 4,
9398
0, 4, 0, 5, 0, 1, 0, 4, 4, 1,
9399
2, 2, 4, 2, 1, 2, 2, 2, 2, 2,
9400
2, 1, 3, 3, 3, 1, 3, 3, 3, 3,
9401
3, 1, 3, 3, 1, 3, 3, 3, 3, 1,
9402
3, 3, 1, 3, 1, 3, 1, 3, 1, 3,
9403
1, 3, 1, 3, 1, 5, 4, 3, 3, 3,
9404
3, 3, 3, 3, 3, 3, 3, 3, 1, 3,
9405
3, 2, 1, 0, 1, 1, 1, 0, 2, 1,
9406
1, 0, 4, 0, 5, 0, 0, 7, 0, 0,
9407
8, 1, 1, 1, 1, 1, 1, 6, 4, 4,
9408
1, 1, 0, 0, 0, 0, 15, 0, 1, 0,
9409
1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
9410
1, 1, 1, 1, 1, 1, 1, 1, 0, 2,
9411
3, 0, 1, 1, 2, 4, 3, 1, 3, 1,
9412
3, 1, 1, 0, 1, 1, 1, 0, 4, 1,
9413
1, 0, 4, 1, 0, 1, 1, 2, 1, 1,
9414
1, 2, 1, 1, 2, 1, 1, 1, 1, 1,
9415
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9416
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
9417
1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
9418
4, 1, 2, 2, 2, 2, 2, 2, 1, 1,
9419
2, 1, 1, 1, 0, 6, 0, 7, 1, 1,
9420
0, 2, 2, 1, 0, 1, 0, 1, 1, 2,
9421
2, 4, 0, 2, 0, 1, 1, 2, 4, 1,
9422
5, 2, 2, 2, 2, 2, 2, 1, 1, 1,
9423
1, 1, 5, 7, 4, 0, 8, 4, 0, 1,
9424
1, 2, 1, 0, 3, 1, 2, 3, 3, 1,
9425
1, 1, 1, 1, 5, 4, 7, 3, 6, 0,
9426
4, 0, 4, 2, 0, 4, 2, 3, 1, 0,
9427
1, 0, 5, 1, 0, 1, 0, 1, 1, 1,
9428
3, 4, 5, 0, 9, 5, 4, 1, 1, 1,
9429
1, 1, 1, 2, 2, 2, 3, 4, 3, 3,
9430
2, 3, 2, 4, 3, 0, 1, 3, 4, 5,
9431
3, 1, 2, 0, 1, 2, 0, 7, 3, 2,
9432
2, 0, 3, 5, 4, 0, 0, 10, 0, 0,
9433
9, 5, 4, 2, 1, 0, 2, 2, 2, 2,
9434
2, 4, 5, 4, 5, 0, 5, 0, 6, 3,
9435
2, 2, 2, 1, 0, 3, 0, 0, 6, 1,
9436
2, 1, 1, 1, 1, 1, 0, 5, 0, 3,
9437
0, 0, 0, 12, 0, 0, 0, 13, 0, 2,
9438
0, 3, 1, 0, 4, 1, 0, 4, 1, 2,
9439
2, 1, 2, 2, 0, 0, 4, 2, 3, 0,
9440
4, 2, 2, 3, 0, 1, 1, 1, 2, 2,
9441
2, 4, 3, 0, 7, 4, 4, 3, 1, 3,
9442
0, 0, 4, 0, 1, 1, 3, 2,
9444
static readonly short [] yyDefRed = { 0,
9445
8, 0, 0, 0, 0, 0, 0, 0, 2, 4,
9446
0, 0, 11, 14, 0, 948, 0, 0, 952, 0,
9447
0, 15, 17, 377, 383, 390, 378, 380, 0, 379,
9448
0, 386, 388, 375, 0, 382, 384, 376, 387, 389,
9449
385, 340, 969, 0, 381, 959, 0, 10, 1, 0,
9450
0, 0, 12, 0, 780, 0, 0, 0, 0, 0,
9451
0, 0, 0, 418, 0, 0, 0, 0, 0, 0,
9452
0, 416, 0, 0, 0, 476, 0, 417, 0, 515,
9453
0, 872, 0, 0, 0, 627, 0, 0, 0, 0,
9454
0, 0, 0, 678, 0, 729, 0, 0, 0, 0,
9455
0, 0, 0, 0, 415, 0, 616, 0, 779, 0,
9456
712, 0, 0, 0, 0, 392, 393, 0, 395, 396,
9457
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
9458
407, 408, 409, 410, 413, 414, 623, 545, 0, 0,
9459
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9460
624, 622, 625, 626, 696, 698, 0, 694, 697, 713,
9461
715, 716, 717, 718, 719, 720, 721, 722, 723, 724,
9462
714, 0, 0, 0, 781, 782, 801, 802, 803, 804,
9463
838, 839, 840, 841, 842, 843, 0, 0, 0, 20,
9464
0, 0, 330, 0, 332, 956, 16, 949, 0, 0,
9465
241, 240, 237, 242, 243, 236, 255, 254, 247, 248,
9466
244, 246, 245, 249, 238, 239, 250, 251, 257, 256,
9467
252, 253, 0, 0, 972, 0, 961, 0, 960, 3,
9468
51, 0, 0, 0, 40, 37, 39, 42, 43, 44,
9469
45, 46, 49, 13, 0, 0, 0, 844, 419, 420,
9470
870, 0, 0, 0, 0, 0, 0, 394, 0, 846,
9471
845, 0, 537, 531, 536, 728, 778, 699, 726, 725,
9472
727, 700, 701, 702, 703, 704, 705, 706, 707, 708,
9473
709, 710, 711, 0, 0, 0, 810, 0, 0, 0,
9474
744, 743, 0, 0, 0, 0, 0, 0, 0, 0,
9475
851, 0, 0, 857, 0, 391, 0, 0, 0, 853,
9476
0, 0, 0, 871, 0, 0, 0, 742, 738, 0,
9477
0, 0, 0, 0, 0, 0, 359, 0, 0, 0,
9478
0, 0, 0, 0, 0, 619, 0, 544, 0, 0,
9479
542, 546, 547, 541, 551, 550, 548, 549, 612, 526,
9480
0, 412, 411, 0, 0, 0, 0, 0, 730, 0,
9481
329, 0, 736, 737, 0, 479, 480, 0, 0, 0,
9482
734, 735, 0, 0, 0, 0, 0, 0, 0, 0,
9483
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9484
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9485
0, 0, 0, 0, 0, 0, 951, 695, 745, 733,
9486
0, 776, 777, 904, 919, 0, 0, 905, 907, 0,
9487
931, 890, 888, 912, 0, 0, 910, 913, 914, 915,
9488
916, 891, 889, 0, 0, 0, 334, 0, 18, 0,
9489
0, 0, 968, 0, 341, 0, 0, 0, 970, 0,
9490
0, 38, 649, 655, 647, 0, 644, 654, 648, 646,
9491
645, 652, 650, 651, 657, 653, 656, 658, 0, 0,
9492
642, 41, 50, 478, 0, 474, 475, 0, 0, 472,
9493
0, 747, 0, 0, 0, 808, 0, 775, 773, 774,
9494
0, 0, 0, 631, 0, 849, 847, 632, 0, 0,
9495
500, 0, 0, 0, 491, 0, 495, 505, 507, 0,
9496
487, 0, 0, 0, 0, 0, 482, 0, 485, 0,
9497
489, 361, 850, 0, 0, 852, 861, 0, 0, 0,
9498
862, 0, 0, 873, 0, 0, 741, 0, 371, 367,
9499
368, 0, 0, 366, 369, 370, 0, 0, 0, 552,
9500
0, 0, 533, 0, 614, 693, 0, 0, 0, 687,
9501
689, 690, 691, 423, 424, 0, 337, 338, 0, 179,
9502
178, 180, 0, 0, 0, 0, 363, 0, 599, 0,
9503
0, 855, 0, 0, 428, 0, 431, 0, 429, 0,
9504
468, 0, 0, 0, 0, 0, 457, 460, 0, 0,
9505
452, 459, 458, 0, 588, 589, 590, 591, 592, 593,
9506
594, 595, 596, 598, 597, 553, 555, 554, 560, 561,
9507
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9508
0, 0, 0, 0, 0, 584, 0, 0, 504, 0,
9509
0, 0, 0, 0, 0, 0, 0, 0, 903, 902,
9510
0, 911, 0, 901, 0, 0, 331, 966, 967, 355,
9511
0, 0, 0, 352, 0, 0, 176, 0, 0, 976,
9512
962, 964, 59, 57, 58, 0, 0, 52, 0, 0,
9513
60, 62, 26, 24, 0, 0, 0, 639, 0, 643,
9514
427, 0, 477, 0, 528, 0, 539, 165, 187, 0,
9515
0, 0, 155, 0, 0, 0, 166, 532, 0, 876,
9516
0, 830, 811, 0, 821, 0, 832, 0, 848, 785,
9517
0, 875, 0, 0, 490, 0, 506, 508, 0, 0,
9518
444, 0, 0, 440, 0, 0, 469, 0, 510, 484,
9519
0, 140, 511, 138, 139, 513, 0, 527, 788, 0,
9520
866, 0, 859, 0, 863, 519, 0, 0, 0, 356,
9521
0, 517, 0, 0, 529, 883, 0, 879, 806, 0,
9522
894, 0, 892, 0, 0, 629, 630, 0, 0, 0,
9523
692, 680, 681, 679, 688, 607, 613, 606, 0, 0,
9524
336, 602, 0, 0, 0, 543, 854, 731, 432, 426,
9525
430, 425, 530, 467, 466, 465, 462, 461, 0, 456,
9526
421, 422, 433, 0, 587, 0, 754, 0, 0, 611,
9527
610, 920, 896, 0, 921, 0, 906, 908, 917, 0,
9528
932, 0, 900, 946, 19, 333, 677, 676, 0, 675,
9529
0, 351, 978, 177, 973, 0, 0, 53, 0, 0,
9530
0, 0, 0, 0, 358, 0, 633, 0, 0, 79,
9531
78, 0, 473, 0, 0, 0, 0, 0, 170, 538,
9532
0, 0, 0, 0, 0, 822, 814, 812, 0, 833,
9533
0, 0, 874, 497, 496, 447, 0, 0, 957, 958,
9534
436, 442, 0, 445, 0, 471, 0, 0, 0, 0,
9535
0, 786, 869, 0, 860, 0, 525, 520, 0, 0,
9536
516, 0, 882, 0, 805, 895, 893, 0, 534, 0,
9537
615, 609, 339, 601, 600, 617, 464, 0, 455, 454,
9538
453, 586, 140, 0, 770, 752, 0, 0, 0, 759,
9539
0, 898, 0, 925, 0, 0, 940, 941, 934, 0,
9540
354, 353, 977, 0, 0, 61, 55, 0, 63, 25,
9541
22, 0, 0, 309, 0, 213, 0, 102, 0, 76,
9542
764, 113, 114, 0, 0, 0, 767, 185, 186, 0,
9543
0, 0, 0, 158, 167, 159, 161, 809, 0, 0,
9544
0, 0, 0, 831, 0, 0, 446, 448, 449, 443,
9545
437, 441, 0, 502, 0, 470, 481, 435, 514, 512,
9546
0, 865, 0, 0, 0, 521, 0, 885, 0, 0,
9547
628, 620, 0, 463, 0, 0, 750, 749, 746, 760,
9548
897, 0, 0, 0, 0, 918, 0, 947, 965, 0,
9549
0, 0, 68, 69, 72, 73, 0, 324, 315, 314,
9550
0, 634, 209, 97, 0, 748, 768, 171, 0, 183,
9551
0, 0, 0, 807, 887, 0, 0, 0, 0, 813,
9552
0, 834, 784, 486, 483, 793, 0, 800, 0, 0,
9553
791, 0, 796, 867, 524, 523, 884, 880, 0, 618,
9554
0, 0, 899, 922, 0, 909, 0, 0, 936, 0,
9555
74, 66, 0, 0, 0, 310, 0, 0, 0, 0,
9556
0, 172, 0, 162, 160, 877, 823, 817, 815, 0,
9557
0, 787, 792, 0, 797, 0, 0, 621, 0, 762,
9558
0, 926, 943, 944, 937, 54, 0, 70, 71, 0,
9559
0, 0, 0, 0, 0, 0, 769, 169, 0, 182,
9560
0, 0, 835, 799, 798, 0, 682, 684, 868, 881,
9561
771, 0, 0, 0, 75, 0, 0, 325, 0, 311,
9562
0, 319, 374, 0, 372, 0, 635, 0, 664, 210,
9563
98, 173, 878, 819, 816, 0, 0, 828, 0, 923,
9564
0, 938, 0, 0, 0, 0, 0, 661, 0, 0,
9565
0, 665, 0, 0, 0, 0, 0, 927, 28, 23,
9566
326, 0, 0, 320, 373, 667, 0, 0, 0, 99,
9567
818, 683, 0, 0, 0, 0, 312, 672, 0, 673,
9568
670, 0, 668, 95, 0, 0, 93, 0, 0, 82,
9569
84, 85, 86, 87, 88, 89, 90, 91, 92, 94,
9570
141, 0, 0, 226, 218, 219, 220, 221, 222, 223,
9571
224, 225, 0, 0, 216, 0, 0, 924, 0, 327,
9572
323, 0, 0, 0, 308, 636, 83, 0, 269, 264,
9573
268, 0, 211, 217, 0, 930, 928, 671, 669, 0,
9574
0, 0, 0, 0, 0, 0, 278, 0, 0, 227,
9575
0, 0, 235, 0, 153, 142, 152, 0, 100, 0,
9576
0, 263, 0, 0, 262, 0, 146, 0, 0, 345,
9577
0, 343, 0, 0, 188, 0, 0, 0, 0, 0,
9578
637, 212, 0, 103, 0, 342, 0, 0, 0, 0,
9579
117, 0, 0, 0, 0, 0, 0, 151, 143, 0,
9580
0, 192, 0, 346, 0, 230, 229, 228, 0, 101,
9581
0, 282, 0, 260, 119, 0, 258, 0, 0, 0,
9582
121, 0, 347, 0, 0, 189, 0, 0, 0, 344,
9583
233, 112, 110, 0, 0, 286, 0, 0, 0, 0,
9584
0, 147, 0, 266, 0, 0, 0, 0, 125, 0,
9585
0, 0, 0, 348, 349, 0, 0, 0, 0, 0,
9586
107, 301, 0, 283, 0, 0, 295, 0, 0, 0,
9587
290, 0, 137, 0, 0, 0, 0, 132, 0, 0,
9588
279, 0, 122, 0, 116, 126, 144, 150, 200, 0,
9589
190, 0, 0, 0, 0, 111, 0, 104, 108, 0,
9590
0, 0, 297, 0, 298, 287, 0, 0, 281, 291,
9591
261, 0, 0, 118, 133, 259, 0, 277, 0, 267,
9592
271, 128, 0, 0, 0, 197, 199, 193, 234, 109,
9593
302, 304, 284, 0, 0, 296, 293, 136, 134, 148,
9594
276, 0, 0, 0, 145, 201, 203, 191, 0, 0,
9595
0, 295, 0, 272, 274, 129, 0, 0, 194, 306,
9596
307, 303, 305, 294, 149, 0, 0, 207, 206, 205,
9597
202, 204, 0, 0, 0, 195, 273, 275,
9599
protected static readonly short [] yyDgoto = { 7,
9600
8, 49, 9, 50, 10, 11, 51, 232, 700, 662,
9601
12, 13, 52, 22, 23, 324, 235, 685, 853, 1047,
9602
1167, 1510, 850, 236, 237, 238, 239, 240, 241, 242,
9603
243, 678, 450, 679, 680, 955, 681, 682, 959, 851,
9604
1042, 1043, 1044, 267, 598, 1137, 110, 862, 1238, 1239,
9605
1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
9606
1250, 469, 689, 1322, 969, 1144, 1109, 1177, 1204, 1266,
9607
1333, 1173, 1384, 1361, 1409, 1410, 1411, 971, 1407, 972,
9608
745, 1299, 1372, 1346, 1397, 521, 1390, 1366, 1426, 935,
9609
1395, 1398, 1399, 1494, 1427, 1428, 1424, 1251, 1306, 1278,
9610
1323, 702, 1374, 1473, 1343, 1430, 1503, 470, 268, 703,
9611
704, 705, 706, 707, 665, 575, 1149, 666, 667, 868,
9612
1325, 1351, 1441, 1402, 1475, 1326, 1377, 1499, 1523, 1442,
9613
1443, 1521, 1507, 1508, 967, 1108, 1203, 1263, 1308, 1264,
9614
1265, 1300, 1358, 1329, 1301, 327, 223, 1406, 1303, 1391,
9615
1388, 1252, 1280, 1319, 1470, 1432, 1159, 1471, 599, 1516,
9616
1517, 1318, 1387, 1363, 1419, 1414, 1385, 1451, 1456, 1417,
9617
1420, 1421, 1502, 1457, 1415, 1416, 1512, 1500, 1501, 964,
9618
1051, 1170, 1142, 1196, 1171, 1172, 1212, 1105, 1194, 1225,
9619
540, 193, 112, 353, 195, 569, 445, 224, 1338, 663,
9620
664, 839, 855, 328, 410, 539, 305, 1174, 1175, 45,
9621
114, 306, 116, 117, 118, 119, 120, 121, 122, 123,
9622
124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
9623
134, 135, 136, 252, 813, 1007, 517, 732, 891, 733,
9624
734, 1000, 137, 198, 738, 600, 601, 602, 603, 807,
9625
479, 480, 298, 1005, 740, 411, 300, 504, 505, 506,
9626
507, 510, 747, 313, 763, 764, 908, 264, 485, 778,
9627
265, 484, 138, 139, 140, 141, 142, 143, 144, 145,
9628
146, 147, 148, 149, 150, 151, 822, 152, 578, 579,
9629
580, 787, 788, 789, 153, 566, 780, 354, 1023, 554,
9630
1089, 154, 499, 965, 1107, 1201, 1304, 471, 1178, 1179,
9631
1232, 1233, 840, 558, 339, 784, 1189, 559, 560, 269,
9632
270, 271, 157, 158, 159, 272, 273, 274, 275, 276,
9633
277, 278, 279, 280, 281, 282, 283, 171, 284, 584,
9634
172, 173, 320, 819, 638, 938, 1029, 865, 696, 975,
9635
936, 939, 1067, 940, 976, 977, 285, 174, 175, 176,
9636
1079, 1011, 1080, 1081, 1082, 1124, 1083, 177, 178, 179,
9637
180, 713, 492, 714, 1070, 993, 1071, 1185, 1152, 1186,
9638
715, 992, 716, 1188, 1120, 181, 182, 183, 184, 185,
9639
186, 307, 530, 531, 1013, 1126, 316, 991, 875, 1151,
9640
1020, 914, 1127, 187, 423, 188, 424, 941, 1032, 425,
9641
426, 654, 645, 646, 945, 427, 428, 429, 430, 431,
9642
946, 640, 943, 1131, 1207, 1268, 1034, 1163, 1224, 831,
9643
648, 832, 1098, 1037, 1099, 1164, 950, 17, 19, 46,
9644
47, 227, 668, 847, 446, 669, 670,
9646
protected static readonly short [] yySindex = { -175,
9647
0, -180, -100, -38, 249,12550, 0, 124, 0, 0,
9648
249, -38, 0, 0, 200, 0, 6884, 249, 0, -171,
9649
-242, 0, 0, 0, 0, 0, 0, 0, 319, 0,
9650
397, 0, 0, 0, 3907, 0, 0, 0, 0, 0,
9651
0, 0, 0, 289, 0, 0, 712, 0, 0, 124,
9652
367, 249, 0, 374, 0, 214, 401, 244,12032, -83,
9653
-255, 420, 7041, 0, -255, -255, -255, -90, -255, -255,
9654
720, 0, 8730, -255, -255, 0, 8887, 0, 429, 0,
9655
244, 0, -255, 458, -255, 0,12594,12594, 491, -255,
9656
-255, -191,11815, 0,11135, 0,11815,11815,11815,11815,
9657
11815,11815,11815,11815, 0, 258, 0, 8590, 0, 218,
9658
0, 468, 11, 522, 387, 0, 0, 527, 0, 0,
9659
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9660
0, 0, 0, 0, 0, 0, 0, 0, 1299, 685,
9661
89, -273, -265, 413, 529, 561, 553, 557, 123, 588,
9662
0, 0, 0, 0, 0, 0, 3608, 0, 0, 0,
9663
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9664
0, -8, 617, -261, 0, 0, 0, 0, 0, 0,
9665
0, 0, 0, 0, 0, 0, 306, 330, 367, 0,
9666
403, 344, 0, 577, 0, 0, 0, 0, 8590, 8590,
9667
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9668
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9669
0, 0, 651, 612, 0, 616, 0, -248, 0, 0,
9670
0, 367,13162, 470, 0, 0, 0, 0, 0, 0,
9671
0, 0, 0, 0, 788, 661,11271, 0, 0, 0,
9672
0,11135, -255, -255, 781, 412, 522, 0, -8, 0,
9673
0, 8590, 0, 0, 0, 0, 0, 0, 0, 0,
9674
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9675
0, 0, 0, -146, 138,12032, 0, 8590,11135, 740,
9676
0, 0, 750,11135,11135, 4875, 157, -165, 764, 8747,
9677
0,11815, 258, 0, 762, 0, 789, 8590,11135, 0,
9678
826, 442, -255, 0,11135, 429,10591, 0, 0, 458,
9679
11135, 458, 228, 443, 848, -8, 0, 617, 387, 851,
9680
-8,11135,11135,11135, 420, 0, 818, 0, 7198, -50,
9681
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9682
4491, 0, 0,12505, 228, 804, 827,11135, 0, 791,
9683
0, -298, 0, 0, 441, 0, 0, 786, 9044,10455,
9684
0, 0,11815,11135,11135,11135,11135,11135,11135,11135,
9685
11135,11135,11135,11135,11815,11815,11815, 8590, 8590,11815,
9686
11815,11815,11815,11815,11815,11815,11815,11815,11815,11815,
9687
11815,11815,11815,11815,11815,11135, 0, 0, 0, 0,
9688
617, 0, 0, 0, 0,12594,12594, 0, 0, -8,
9689
0, 0, 0, 0, 469, 850, 0, 0, 0, 0,
9690
0, 0, 0, 367, 470, 792, 0, 795, 0, 791,
9691
651, 651, 0, 71, 0, 559, 651, 839, 0, -195,
9692
13162, 0, 0, 0, 0, -164, 0, 0, 0, 0,
9693
0, 0, 0, 0, 0, 0, 0, 0, 202,13194,
9694
0, 0, 0, 0, 791, 0, 0, 837, 586, 0,
9695
842, 0, 847, 59, 429, 0, -255, 0, 0, 0,
9696
-8,10591, -184, 0, 844, 0, 0, 0, -174, 58,
9697
0, 423, 0, 858, 0, 853, 0, 0, 0, 607,
9698
0, 8414, 618,11135, 764,10455, 0, 7669, 0, 458,
9699
0, 0, 0, 856, 63, 0, 0, 244, 429, 516,
9700
0, 4332, 859, 0, 65, -8, 0, 94, 0, 0,
9701
0,11135, 936, 0, 0, 0,11135, 939, 860, 0,
9702
863, 865, 0,12505, 0, 0, -182, -28, 7198, 0,
9703
0, 0, 0, 0, 0, 429, 0, 0, 6, 0,
9704
0, 0, 458, 228, -8, 8904, 0, 864, 0, 870,
9705
11815, 0, 867, 7198, 0, -289, 0, 304, 0, 791,
9706
0, -65,11135,11135, 873, 992, 0, 0, -47, 883,
9707
0, 0, 0, 685, 0, 0, 0, 0, 0, 0,
9708
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9709
685, 685, 89, 89, -273, -273, -273, -273, -265, -265,
9710
413, 529, 561, 553, 557, 0, -149, -181, 0, 9201,
9711
964, -8, 965, -8, 9201, 9201, 879,11135, 0, 0,
9712
850, 0, -8, 0, 512, 791, 0, 0, 0, 0,
9713
240, 367, 16, 0, 8904, 559, 0, 889, 888, 0,
9714
0, 0, 0, 0, 0, 228, 891, 0, 892, 897,
9715
0, 0, 0, 0, 893, 9061, 855, 0, 398, 0,
9716
0, 220, 0,11271, 0, 896, 0, 0, 0, 555,
9717
90, 908, 0, 907, 911, 912, 0, 0,11135, 0,
9718
-8, 0, 0, 624, 0, 914, 0, 266, 0, 0,
9719
7041, 0, 7041, 8573, 0, 4875, 0, 0,10727, 161,
9720
0, -12, -66, 0, 862, 866, 0, -64, 0, 0,
9721
910, 0, 0, 0, 0, 0, 919, 0, 0, 928,
9722
0, 7686, 0, 429, 0, 0, 458, 463, 875, 0,
9723
39, 0, 925, 930, 0, 0, 7041, 0, 0, 7041,
9724
0,11135, 0,11135, 8590, 0, 0, 429, 926, 429,
9725
0, 0, 0, 0, 0, 0, 0, 0, 9201, 8590,
9726
0, 0, -8,12505, 961, 0, 0, 0, 0, 0,
9727
0, 0, 0, 0, 0, 0, 0, 0,10319, 0,
9728
0, 0, 0, 7826, 0, 9201, 0, 7983, 931, 0,
9729
0, 0, 0, 1012, 0, 1014, 0, 0, 0, 652,
9730
0, 935, 0, 0, 0, 0, 0, 0, 894, 0,
9731
71, 0, 0, 0, 0, 559, 559, 0, 792, 940,
9732
943, 900, 948, 855, 0, 944, 0, 1064, 1065, 0,
9733
0,11135, 0,10863, 950, 555, 8904, 8590, 0, 0,
9734
180, 1066, 1070, 122, 946, 0, 0, 0,11135, 0,
9735
11135, 1049, 0, 0, 0, 0, 40,10999, 0, 0,
9736
0, 0, 8119, 0, 1074, 0, 617,11135, 968, 8573,
9737
970, 0, 0, -8, 0, 195, 0, 0, 791, 875,
9738
0, -8, 0, -161, 0, 0, 0, 967, 0, 997,
9739
0, 0, 0, 0, 0, 0, 0, 730, 0, 0,
9740
0, 0, 0, 8747, 0, 0, -8, 549, 931, 0,
9741
9201, 0, 9201, 0, 998, 9201, 0, 0, 0, 680,
9742
0, 0, 0, 980, 792, 0, 0,11407, 0, 0,
9743
0, 972, 7843, 0, 855, 0, 855, 0, 855, 0,
9744
0, 0, 0, -8, 975, 950, 0, 0, 0, -162,
9745
-156, 978, 979, 0, 0, 0, 0, 0, 981, 8573,
9746
931, -181,11135, 0, 983, 7041, 0, 0, 0, 0,
9747
0, 0, 986, 0, 764, 0, 0, 0, 0, 0,
9748
-189, 0, 987, 791, 875, 0, 875, 0, 931, 988,
9749
0, 0, 429, 0, 938, 977, 0, 0, 0, 0,
9750
0, 9201, 1015, 9201, 9201, 0,11135, 0, 0, 897,
9751
239, 731, 0, 0, 0, 0, -38, 0, 0, 0,
9752
1002, 0, 0, 0, 989, 0, 0, 0, 523, 0,
9753
990, 1116, 1117, 0, 0, 931, 1003, 931, 1005, 0,
9754
1006, 0, 0, 0, 0, 0,11135, 0, 1013, -154,
9755
0, -154, 0, 0, 0, 0, 0, 0, 429, 0,
9756
11135, 8278, 0, 0, 1027, 0, 736, 1009, 0, 1016,
9757
0, 0,11407, 249, 59, 0, 1017, 1017, 1017,10863,
9758
1018, 0,11135, 0, 0, 0, 0, 0, 0, 7041,
9759
-80, 0, 0, 7198, 0, 743, 7041, 0, 1019, 0,
9760
9201, 0, 0, 0, 0, 0,11135, 0, 0, 367,
9761
1026, 367, 8590, 1045, 1045, 1045, 0, 0,11135, 0,
9762
7041, 9358, 0, 0, 0, 7198, 0, 0, 0, 0,
9763
0, 1043, 9201,11135, 0, 367, 1029, 0, 982, 0,
9764
1028, 0, 0, 38, 0, 985, 0, 1045, 0, 0,
9765
0, 0, 0, 0, 0, 1032, 914, 0, 7198, 0,
9766
1051, 0, 1030, 1045, 0, 1033, 367, 0, 8590, -76,
9767
1038, 0, 1041, 1044, 7041, 1042, 9201, 0, 0, 0,
9768
0, 1031, 1030, 0, 0, 0,12111, 120, 367, 0,
9769
0, 0, 1059, 9201, 1040,11135, 0, 0, 1046, 0,
9770
0, 1047, 0, 0,13194, 800, 0, 1050, 120, 0,
9771
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9772
0, 540,13194, 0, 0, 0, 0, 0, 0, 0,
9773
0, 0, 1054, 367, 0, 120, -8, 0, 1059, 0,
9774
0, 1061,12111,12277, 0, 0, 0, 27, 0, 0,
9775
0,12309, 0, 0, 1055, 0, 0, 0, 0, 8590,
9776
8590, 309, 8747, 312, 458, 1082, 0, 228, 4646, 0,
9777
1129, 0, 0, 1030, 0, 0, 0, 1030, 0, 1021,
9778
1034, 0, 8590, -147, 0, 8590, 0, 1056, 1072, 0,
9779
228, 0, 62, 5003, 0, 1067, 1057, 24, 511, 3907,
9780
0, 0, 1030, 0, 228, 0, 1068, 1058, 1073, 1071,
9781
0, 1075, 1034, 1078, 59, 1080, 1083, 0, 0, 1091,
9782
1097, 0, 791, 0, 766, 0, 0, 0, 1096, 0,
9783
-97, 0, 1087, 0, 0, 1103, 0, 1107, 1108, 1110,
9784
0, 1063, 0, 59, 59, 0, 59, 1106, 1112, 0,
9785
0, 0, 0, 1109, 127, 0, 1115, 59, 1234, 1118,
9786
59, 0, 27, 0, 8573, 1079, 1120, 1063, 0, 1119,
9787
1121, 129, 1128, 0, 0, 59,10863, 1084, 1125, 1109,
9788
0, 0,13194, 0, 367, 367, 0, 1085, 1130, 1115,
9789
0, 1132, 0,11135, 1090, 1133, 1118, 0, 1139, 59,
9790
0, -74, 0, 1124, 0, 0, 0, 0, 0,13194,
9791
0, 129, 129, 1145, 1141, 0, -97, 0, 0, 106,
9792
1146,13194, 0,13194, 0, 0, 8573, 1134, 0, 0,
9793
0, 1149, 1103, 0, 0, 0, 1151, 0, 445, 0,
9794
0, 0, 1045, 794, 1150, 0, 0, 0, 0, 0,
9795
0, 0, 0, 1206, 1261, 0, 0, 0, 0, 0,
9796
0, 1155, 1157, 8573, 0, 0, 0, 0, 129, 542,
9797
542, 0, 1045, 0, 0, 0, -79, -79, 0, 0,
9798
0, 0, 0, 0, 0,10455,10455, 0, 0, 0,
9799
0, 0, 1161, 1158, 1159, 0, 0, 0,
9801
protected static readonly short [] yyRindex = { 1916,
9802
0, 0, 7355, 1916, 0, 0, 0, 1532, 0, 0,
9803
3243, 1827, 0, 0, 0, 0, 0, 3243, 0, 0,
9804
55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9805
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9806
0, 0, 0, 1533, 0, 0, 1533, 0, 0, 1532,
9807
3286, 3157, 0, 0, 0, 0, 0, 0, 0, 0,
9808
0, 1167, 0, 0, 0, 0, 0, 0, 0, 0,
9809
9218, 0, 1160, 0, 0, 0, 1160, 0, 0, 0,
9810
0, 0, 0, -280, 0, 0, 0, 0, 0, 0,
9811
0, 0, 234, 0, 0, 0, 0, 0, 0, 0,
9812
0, 0, 0, 0, 0, 4714, 0, 0, 0, 0,
9813
0, 0, 182, 4873, 4084, 0, 0, 4649, 0, 0,
9814
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9815
0, 0, 0, 0, 0, 0, 0, 0, 5029, 5097,
9816
5441, 5645, 5985, 6189, 6325, 6461, 6597, 1264, 1413, 2967,
9817
0, 0, 0, 0, 0, 0, 55, 0, 0, 0,
9818
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9819
0, 0, 207, 0, 0, 0, 0, 0, 0, 0,
9820
0, 0, 0, 0, 0, 0, 0, 0, 3329, 0,
9821
599, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9822
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9823
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9824
0, 0, 1533, 136, 0, 0, 0, 0, 0, 0,
9825
0, 3372, 355, 3415, 0, 0, 0, 0, 0, 0,
9826
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9827
0, 0, 0, 0, 0, 3695, 0, 0, 0, 0,
9828
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9829
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9830
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9831
0, 0, 0, 0, 0, 1172, 0, 0, 0, 0,
9832
0, 0, 3695, 0, 0, 0, 0, 0, 0, 0,
9833
0, 0, 0, 0, 0, 0, 0, 0, 0, 2517,
9834
0, 3027, 119, 2647, 0, 0, 0, 2777, 2647, 0,
9835
0, 0, 0, 0, 1167, 0, 0, 0, 51, 0,
9836
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9837
0, 0, 0, 1163, 2881, 0, 0, 1160, 0, 3695,
9838
0, 0, 0, 0, 0, 0, 0, 0, 0, -41,
9839
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9840
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9841
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9842
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9843
1656, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9844
0, 0, 0, 0, 0, 3975, 0, 0, 0, 0,
9845
0, 0, 0, 3482, 3529, 0, 0, 0, 0, 2371,
9846
1533, 1533, 0, -132, 0, 8000, 1533, 1541, 0, 0,
9847
197, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9848
0, 0, 0, 0, 0, 0, 0, 0, 417,11964,
9849
0, 0, 0, 0, 3695, 0, 0, 0, 0, 0,
9850
0, 0, 0,12353, 0, 0, 0, 0, 0, 0,
9851
0, 637, 0, 0, 0, 0, 0, 0, 0, 0,
9852
0, 591, 973, 0, 0, 1176, 0, 0, 0, 0,
9853
0, 140, 0, 0, 4172, 1173, 0, 0, 0, 407,
9854
0, 0, 0, 0, 0, 0, 0, 0, 0, 2078,
9855
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9856
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9857
0, 0, 0, 1163, 0, 0, 6724, 0, 145, 0,
9858
0, 0, 0, 0, 0, 9515, 0, 0, 0, 0,
9859
0, 0, -158, 380, 0, 0, 0, 1174, 0, 0,
9860
0, 0, 0, 0, 0, 3695, 0, 3695, 0, 4331,
9861
0, 0, 0, 0, -284, 0, 0, 0, 0, 130,
9862
0, 0, 0, 5201, 0, 0, 0, 0, 0, 0,
9863
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9864
5269, 5373, 5509, 5577, 5713, 5781, 5849, 5917, 6053, 6121,
9865
6257, 6393, 6529, 6665, 1918, 0, 0, 563, 0, 0,
9866
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9867
3975, 0, 0, 0, 0, 2371, 0, 0, 0, 0,
9868
1131, 9719, 0, 0, 0, 9375, 0, 0, 737, 0,
9869
0, 0, 0, 0, 0, 693, -247, 0, 0, 1177,
9870
0, 0, 0, 0, 1181, 0, 0, 0, 0, 0,
9871
0,11543, 0, 0, 0, 741, 0, 0, 0,12618,
9872
12429, 0, 0, 752, 757, 768, 0, 0, 0, 0,
9873
0, 0, 0, 0, 0, 640, 0, 0, 0, 0,
9874
0, 0, 0, 0, 0, 1183, 0, 0, 0, 3761,
9875
0, 0, 151, 0, 57, 3854, 0, 0, 0, 0,
9876
0, 0, 0, 0, 0, 0, 1184, 0, 0, 0,
9877
0, 0, 0, 0, 0, 0, 236, 709, 0, 0,
9878
0, 0, 0, 1182, 0, 0, 0, 0, 0, 0,
9879
0, 0, 0, 0, 0, 0, 0, 0, 0, 9515,
9880
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9881
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9882
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9883
0, 0, 0, 0, 0, 0, 0, 0, 606, 0,
9884
0, 0, 0, 0, 0, 0, 0, 0, 0, -186,
9885
0, 504, 0, 0, 0, 0, 0, 0, 0, 0,
9886
-132, 0, 0, 0, 0,12618, 8295, 0, 1185, 0,
9887
666, 0, 0, 0, 0, 1189, 0, 1140, 1142, 0,
9888
0, 0, 0, 0, 1186,12672, 0, 0, 0, 0,
9889
12461, 0, 0, 0, 769, 0, 0, 0, 0, 0,
9890
0, 2245, 0, 0, 0, 0, 0, 0, 0, 0,
9891
0, 0, 0, 0, 0, 0, 4013, 0, 4490, 1191,
9892
0, 0, 0, 1192, 0, 0, 0, 0, 318, 0,
9893
0, 0, 0, 769, 0, 0, 0, 0, 0, 0,
9894
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9895
0, 0, 0, 0, 0, 0, 0, 0, 579, 0,
9896
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9897
0, 0, 0, 0, 0, 0, 0, 778, 0, 0,
9898
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9899
0, 0, 0, 0, 0, 1193, 0, 0, 0, 0,
9900
0, 784, 785, 0, 0, 0, 0, 0, 0, 0,
9901
1195, 649, 1194, 0, 0, 0, 0, 0, 0, 0,
9902
0, 0, 0, 0, 4172, 0, 0, 0, 0, 0,
9903
1197, 0, 0, 318, 0, 0, 816, 0, 1195, 0,
9904
0, 0, 9515, 0, 572, 595, 0, 0, 0, 0,
9905
0, 0, 0, 0, 0, 0, 0, 0, 0, 1177,
9906
9565, 0, 0, 0, 0, 0,12714, 0, 0, 0,
9907
0, 0, 0, 0, 0, 0, 0, 0, 665, 0,
9908
678, 0, 0, 0, 0, 1199, 0, 671, 1198, 0,
9909
0, 0, 0, 0, 0, 0, 0, 0, 0, 1212,
9910
0, 7512, 0, 0, 0, 0, 0, 0, 9515, 0,
9911
0, 0, 0, 0, 0, 0, 294, 550, 0, 0,
9912
0, 0, 0,12790,12353, 0, 371, 371, 371, 0,
9913
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9914
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9915
0, 0, 0, 0, 0, 0, 0, 0, 0,12895,
9916
0, -271, 0, 1214, 1214, 1214, 0, 0, 0, 0,
9917
0, 1210, 0, 0, 0, -157, 0, 0, 0, 0,
9918
0, 0, 0, 0, 0,12938, 0, 0, 0, 0,
9919
1217, 0, 0, 375, 0, 0, 0, 544, 0, 0,
9920
0, 0, 0, 0, 0, 0, 1216, 0, 1218, 0,
9921
0, 0, 3200, 1213, 414, 0, -14, 0, 0, 0,
9922
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9923
0, 0, 1553, 0, 0, 0, 0, 9824,10022, 0,
9924
0, 0, 641, 0, 0, 0, 0, 0, 0, 0,
9925
0, 534, 0, 0,12135,10116, 0, 0, 9923, 0,
9926
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9927
0, 0,12203, 0, 0, 0, 0, 0, 0, 0,
9928
0, 0, 0,10202, 0, 9824, 0, 0, 641, 0,
9929
0, 0, 0, 417, 0, 0, 0, 0, 0, 0,
9930
0, 417, 0, 0, 0, 0, 0, 0, 0, 0,
9931
0, 0, 0, 0, 744, 433, 0,10244, 0, 0,
9932
0, 1148, 0, 1553, 0, 0, 0, 1553, 0, 0,
9933
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9934
190, 0, 1224, 0, 0, 0, 0, 0, 0, 0,
9935
0, 0, 1553, 0, 763, 0, 623, 0, 0, 0,
9936
0, 0, 0, 0,12353, 790, 0, 0, 0, 0,
9937
0, 0, 1188, 0, 221, 0, 0, 0, 0, 0,
9938
0, 0, 798, 0, 0, 0, 0, 0, 0, 0,
9939
0, 1219, 0,12353,12353, 0,12385, 0, 0, 0,
9940
0, 0, 0, 1220,13132, 0, 1221,12353,11679, 1222,
9941
12353, 0, 0, 0, 0, 0, 0, 1229, 0, 0,
9942
0, 1266, 0, 0, 0,12353, 0, 0, 0, 1230,
9943
0, 0, 232, 0,13056,13094, 0, 0, 0, 1231,
9944
0, 0, 0, 0, 0, 0, 1245, 0, 0,12353,
9945
0, 554, 0, 803, 0, 0, 0, 0, 0, 828,
9946
0,12980,13018, 0, 0, 0, 0, 0, 0, 0,
9947
0, 1277, 0, 1330, 0, 0, 0, 811, 0, 0,
9948
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9949
0, 0, 556, 0, 0, 0, 0, 0, 0, 0,
9950
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9951
0, 0, 0, 0, 0, 0, 0, 0, 1266,11851,
9952
12832, 0, 556, 0, 0, 0, 0, 0, 0, 0,
9953
0, 0, 0, 0, 0, 1173, 1173, 0, 0, 0,
9954
0, 0, 0, 0, 0, 0, 0, 0,
9956
protected static readonly short [] yyGindex = { 0,
9957
0, 1544, 0, 0, 0, -2, -9, -179, -48, -43,
9958
0, 1588, 1617, 589, 0, 3, 0, 0, 0, 0,
9959
0,-1109, -711, -213, -432, 0, 0, 0, 0, 0,
9960
-228, 0, 0, 0, 668, 0, 775, 0, 0, 0,
9961
0, 524, 530, -17, -236, 0, -46, 0, 359, 0,
9962
396,-1114, -607, -598, -534, -519, -516, -513, -500, 0,
9963
0,-1173, 0, 1, 0, 86, 0,-1098, 0, 0,
9964
0, -44, 179, 0, 0, 0, 227,-1059, 0, -272,
9965
-279, 955, 0, 0, 0, -894, 181, 0, 0, -505,
9966
0, 0, 245, 0, 0, 215, 0, 0, 252, 0,
9967
-721, -968, 0, 0, 0, 0, 0, 349, -13, 0,
9968
0, 779, 780, 782, 949, -537, 0, 0, -323, 796,
9969
341, 0,-1330, 0, 0, 0, 0, 0, 0, 0,
9970
0, 149, 0, 0, 0, 0, 0, 0, 0, 0,
9971
394, 0, 0, 0, 0, -339, 331, 0, 0, 0,
9972
0, 0, 0, 0, 0, 0, 408, 0, -515, 0,
9973
0, 0, 0, 0, 0, 0, 0, 0, 165, 0,
9974
0, 248, 0, 0, 254, 256, 172, 0, 0, 0,
9975
0, 0, 0, 0, 0, 477, 0, 0, 0, 0,
9976
-42, 0, 373, -138, 0, 0, 320, 0, 377, 0,
9977
838, 0, 1153, -295, -263, -63, 1025, 0, 479, 0,
9978
-33, 112, 0, 0, 1152, 0, 0, 0, 0, 0,
9979
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9980
0, -262, 0, 1209, 0, 0, -130, 0, 0, 0,
9981
799, 0, -302, -129, 952, 874, 0, 868, 0, 1093,
9982
1319, 1000, 0, 0, 686, 1624, 0, 0, 0, 0,
9983
1008, 0, 0, 0, 0, 0, -599, 1363, 0, 0,
9984
0, 0, 0, 1327, 343, 806, 704, 802, 1315, 1298,
9985
1333, 1335, 1332, 0, 1334, 0, -608, 0, 0, 947,
9986
1190, -747, 0, 0, 0, 0, 0, 0, 0, 0,
9987
0, 0, -294, 0, 0, 0, 0, -454, 0, 562,
9988
0, 472, 0, 558, 0, 0, 0, 619, -530, -5,
9989
-314, -3, 0, 1585, 0, 46, 0, 82, 84, 85,
9990
91, 117, 118, 125, 126, 132, 134, 0, -664, 0,
9991
-27, 0, 0, 758, 0, 681, 0, 0, 0, 0,
9992
659, -145, 734, -870, 0, 797, -468, 0, 0, 0,
9993
0, 0, 0, 674, 0, 0, 673, 0, 0, 0,
9994
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9995
0, 0, 604, 0, 0, 0, 0, 0, 0, 0,
9996
0, -19, 0, 1228, 0, 0, 0, 857, 0, 0,
9997
0, 0, 0, 0, -170, 0, 0, 0, 0, 0,
9998
1345, 1123, 0, 0, 0, 1347, 0, 0, 0, 0,
9999
0, 0, 0, 0, 0, 506, 0, 0, 0, 0,
10000
0, 0, 0, 0, 614, 0, 0, 0, 0, 0,
10001
0, 2, 929, 0, 0, 0, 933,
10003
protected static readonly short [] yyTable = { 109,
10004
741, 18, 233, 111, 522, 473, 43, 234, 189, 434,
10005
477, 155, 746, 156, 577, 690, 495, 433, 452, 519,
10006
319, 293, 192, 712, 562, 257, 538, 407, 785, 549,
10007
576, 259, 921, 503, 515, 901, 827, 828, 793, 1025,
10008
325, 330, 326, 331, 251, 337, 1180, 1181, 229, 364,
10009
1147, 372, 437, 798, 955, 304, 882, 311, 883, 304,
10010
673, 1274, 160, 356, 544, 312, 1076, 314, 1030, 939,
10011
363, 717, 371, 781, 817, 14, 448, 340, 1077, 1282,
10012
1, 720, 739, 1210, 190, 335, 674, 627, 739, 627,
10013
511, 683, 20, 1058, 1018, 1211, 316, 364, 161, 1060,
10014
162, 163, 913, 1227, 1255, 915, 815, 164, 1340, 486,
10015
795, 1476, 1477, 1077, 412, 249, 394, 395, 675, 586,
10016
392, 393, 64, 64, 351, 409, 64, 843, 115, 587,
10017
396, 397, 477, 165, 166, 350, 1141, 739, 799, 109,
10018
233, 167, 168, 111, 627, 435, 47, 639, 169, 1255,
10019
170, 155, 939, 156, 441, 442, 16, 939, 1382, 939,
10020
349, 47, 939, 939, 250, 939, 939, 413, 1509, 42,
10021
115, 291, 260, 47, 115, 1154, 1518, 289, 291, 1216,
10022
922, 1468, 2, 451, 437, 290, 196, 939, 435, 892,
10023
804, 896, 760, 487, 1331, 1030, 6, 721, 1332, 818,
10024
478, 512, 160, 513, 364, 249, 473, 932, 350, 735,
10025
795, 364, 482, 364, 577, 364, 437, 483, 884, 990,
10026
452, 585, 676, 1360, 443, 816, 292, 336, 449, 476,
10027
576, 351, 1078, 292, 481, 739, 577, 15, 161, 1450,
10028
162, 163, 939, 493, 562, 352, 191, 164, 3, 4,
10029
5, 6, 257, 684, 250, 1059, 537, 514, 491, 364,
10030
541, 1061, 257, 524, 795, 546, 1474, 1078, 115, 562,
10031
1341, 494, 291, 165, 166, 1090, 498, 500, 1484, 543,
10032
1485, 167, 168, 1383, 548, 47, 545, 94, 169, 536,
10033
170, 525, 261, 1198, 1155, 896, 1519, 533, 1217, 535,
10034
1469, 657, 534, 498, 805, 897, 568, 893, 694, 898,
10035
1016, 955, 955, 722, 698, 551, 552, 1348, 749, 2,
10036
766, 564, 478, 478, 811, 577, 660, 292, 1100, 980,
10037
450, 1073, 1031, 561, 1033, 563, 691, 1036, 583, 782,
10038
304, 1128, 844, 619, 620, 869, 760, 1446, 1354, 769,
10039
388, 476, 597, 318, 291, 889, 605, 606, 607, 608,
10040
609, 610, 611, 612, 613, 614, 615, 361, 1481, 641,
10041
643, 642, 644, 647, 1495, 1234, 1370, 988, 565, 790,
10042
48, 812, 1412, 362, 1439, 233, 389, 450, 637, 841,
10043
435, 350, 194, 94, 1009, 661, 318, 115, 1314, 699,
10044
783, 291, 1305, 47, 1515, 1400, 1401, 997, 1403, 292,
10045
994, 1199, 743, 898, 874, 1085, 890, 1086, 685, 1422,
10046
1482, 791, 1429, 1093, 955, 1095, 1096, 231, 115, 723,
10047
955, 842, 1349, 473, 750, 437, 767, 1445, 655, 231,
10048
701, 1355, 658, 659, 710, 340, 718, 800, 671, 802,
10049
115, 803, 677, 6, 577, 1153, 909, 477, 231, 194,
10050
194, 1467, 1160, 503, 711, 770, 390, 391, 640, 478,
10051
576, 708, 473, 640, 350, 335, 350, 640, 686, 685,
10052
194, 335, 687, 357, 1065, 759, 1183, 335, 231, 768,
10053
335, 335, 640, 989, 640, 231, 737, 231, 597, 744,
10054
744, 451, 350, 349, 335, 488, 350, 438, 350, 350,
10055
350, 350, 686, 489, 751, 753, 350, 836, 439, 640,
10056
982, 880, 1162, 404, 771, 860, 508, 577, 792, 773,
10057
509, 358, 861, 837, 758, 405, 335, 437, 640, 743,
10058
1221, 888, 978, 688, 328, 838, 640, 744, 231, 942,
10059
328, 350, 786, 561, 1191, 563, 340, 291, 451, 881,
10060
340, 414, 335, 115, 1312, 115, 490, 1315, 438, 732,
10061
115, 194, 194, 686, 351, 806, 806, 930, 561, 439,
10062
563, 349, 245, 20, 973, 414, 246, 350, 352, 1336,
10063
735, 350, 359, 335, 350, 824, 350, 826, 1223, 328,
10064
349, 350, 1350, 115, 340, 894, 834, 357, 744, 197,
10065
94, 1256, 1014, 1313, 249, 1269, 1316, 54, 350, 1101,
10066
1257, 1368, 821, 199, 732, 785, 640, 821, 821, 350,
10067
830, 640, 942, 1004, 194, 640, 247, 942, 522, 942,
10068
197, 351, 942, 942, 415, 942, 942, 478, 350, 416,
10069
640, 417, 351, 357, 418, 419, 1256, 420, 421, 225,
10070
194, 226, 362, 250, 876, 1257, 352, 942, 415, 857,
10071
115, 351, 194, 416, 335, 417, 476, 640, 418, 419,
10072
194, 420, 421, 712, 1258, 352, 335, 856, 638, 335,
10073
335, 498, 257, 858, 541, 115, 640, 527, 1069, 1259,
10074
1491, 200, 1260, 335, 639, 1261, 744, 904, 1492, 659,
10075
528, 737, 638, 660, 910, 604, 438, 351, 1262, 439,
10076
859, 1046, 942, 194, 649, 739, 194, 529, 639, 1258,
10077
918, 801, 621, 622, 422, 231, 335, 659, 743, 638,
10078
905, 660, 335, 361, 1259, 923, 924, 1260, 335, 244,
10079
1261, 603, 335, 603, 916, 639, 917, 999, 432, 933,
10080
194, 194, 478, 1262, 919, 335, 786, 478, 1008, 1493,
10081
657, 821, 318, 362, 362, 362, 248, 362, 362, 1038,
10082
362, 321, 362, 436, 528, 1237, 1254, 321, 194, 194,
10083
263, 597, 661, 350, 322, 94, 597, 335, 821, 361,
10084
744, 754, 350, 724, 1121, 935, 1237, 415, 194, 562,
10085
398, 399, 416, 350, 417, 438, 351, 418, 419, 361,
10086
420, 421, 194, 981, 362, 351, 362, 701, 318, 362,
10087
973, 1254, 115, 1237, 115, 906, 351, 472, 231, 352,
10088
1150, 562, 933, 318, 970, 1066, 494, 933, 318, 933,
10089
352, 677, 933, 933, 962, 933, 933, 1012, 588, 1015,
10090
570, 332, 866, 995, 570, 1017, 1046, 571, 589, 690,
10091
998, 571, 666, 1066, 562, 836, 1182, 94, 115, 572,
10092
1006, 115, 744, 572, 438, 360, 1356, 835, 935, 1433,
10093
1026, 1111, 249, 935, 365, 935, 929, 650, 935, 935,
10094
666, 935, 935, 1112, 761, 373, 1157, 1158, 94, 666,
10095
663, 478, 400, 366, 367, 1279, 1027, 1209, 1050, 663,
10096
270, 270, 662, 821, 1028, 821, 194, 1055, 821, 270,
10097
751, 662, 933, 368, 1302, 414, 751, 402, 751, 772,
10098
1045, 250, 1302, 772, 369, 772, 756, 772, 194, 401,
10099
756, 1486, 452, 1271, 756, 693, 403, 677, 498, 694,
10100
1166, 335, 761, 335, 498, 1052, 761, 1053, 761, 1054,
10101
761, 335, 744, 755, 335, 498, 727, 406, 935, 929,
10102
728, 755, 335, 335, 929, 297, 929, 736, 1506, 929,
10103
929, 509, 929, 929, 440, 877, 280, 522, 280, 878,
10104
1524, 1525, 335, 280, 357, 947, 948, 473, 820, 786,
10105
335, 824, 820, 335, 821, 824, 821, 821, 415, 1097,
10106
751, 225, 751, 416, 751, 417, 444, 357, 418, 419,
10107
44, 420, 421, 447, 168, 65, 168, 194, 168, 65,
10108
357, 113, 755, 474, 1104, 357, 755, 181, 232, 181,
10109
357, 181, 357, 357, 357, 357, 478, 335, 194, 494,
10110
357, 701, 335, 335, 357, 335, 335, 56, 357, 929,
10111
385, 386, 387, 1129, 744, 786, 357, 328, 475, 357,
10112
328, 357, 225, 113, 228, 1045, 296, 113, 297, 1133,
10113
1134, 233, 494, 1169, 1140, 494, 435, 625, 626, 627,
10114
628, 1024, 1102, 814, 1103, 357, 975, 115, 975, 1157,
10115
1158, 329, 329, 821, 763, 496, 763, 233, 561, 1165,
10116
563, 156, 435, 156, 194, 497, 163, 973, 163, 340,
10117
518, 494, 329, 340, 362, 335, 340, 164, 340, 164,
10118
886, 542, 886, 340, 547, 821, 1097, 194, 1169, 67,
10119
561, 67, 563, 187, 157, 187, 157, 1496, 1497, 437,
10120
555, 357, 194, 120, 523, 120, 194, 1275, 231, 1235,
10121
1253, 285, 1231, 285, 1236, 581, 127, 340, 127, 351,
10122
444, 113, 1347, 561, 292, 563, 292, 522, 522, 821,
10123
1235, 640, 640, 1145, 1146, 1236, 1347, 623, 624, 629,
10124
630, 526, 582, 590, 351, 653, 821, 672, 494, 355,
10125
258, 692, 656, 695, 1378, 1253, 1379, 1235, 697, 719,
10126
1286, 194, 1236, 329, 329, 725, 726, 748, 1231, 772,
10127
765, 115, 774, 775, 776, 115, 777, 794, 115, 194,
10128
194, 795, 797, 809, 258, 1310, 1311, 810, 258, 258,
10129
258, 258, 258, 258, 258, 258, 814, 823, 825, 829,
10130
845, 846, 115, 438, 1307, 852, 848, 115, 1339, 262,
10131
849, 1342, 42, 286, 287, 288, 864, 294, 295, 870,
10132
871, 899, 308, 309, 872, 873, 329, 879, 895, 315,
10133
196, 317, 900, 321, 902, 907, 911, 920, 333, 334,
10134
115, 701, 912, 926, 937, 942, 194, 944, 949, 957,
10135
113, 951, 329, 958, 961, 1357, 115, 960, 963, 966,
10136
968, 986, 370, 974, 329, 987, 990, 194, 996, 1003,
10137
701, 701, 329, 701, 512, 194, 1413, 1010, 1021, 1022,
10138
499, 113, 1048, 413, 701, 413, 499, 701, 1035, 1039,
10139
1056, 1062, 1063, 1440, 1072, 1074, 1064, 1092, 1084, 1088,
10140
1091, 1094, 701, 113, 413, 413, 1452, 1454, 1106, 1110,
10141
1113, 1114, 1115, 1132, 1116, 329, 1118, 744, 329, 1307,
10142
1122, 1119, 1135, 1176, 413, 1136, 701, 1148, 1161, 494,
10143
1190, 1143, 413, 1440, 1440, 413, 1193, 1168, 1208, 1195,
10144
1213, 1197, 1200, 1205, 1218, 1209, 1462, 1219, 356, 1222,
10145
1220, 1226, 329, 329, 1267, 1270, 1272, 1276, 1317, 338,
10146
1273, 1283, 1309, 341, 342, 343, 344, 345, 346, 347,
10147
348, 356, 1288, 1330, 1362, 1352, 1396, 258, 1334, 744,
10148
329, 329, 1345, 1364, 356, 1367, 1365, 258, 1369, 356,
10149
1440, 1335, 231, 258, 356, 1373, 356, 356, 356, 356,
10150
1371, 1375, 315, 1376, 356, 370, 1381, 1386, 356, 478,
10151
478, 1389, 356, 1344, 1353, 1355, 744, 1392, 1404, 1393,
10152
356, 1394, 1408, 356, 1405, 356, 1511, 1511, 1418, 1423,
10153
1437, 1425, 1438, 1520, 1520, 1435, 1434, 1444, 597, 597,
10154
1448, 1447, 1458, 1461, 1472, 1459, 516, 1463, 1464, 356,
10155
1466, 1478, 1479, 1483, 1487, 194, 113, 1498, 1488, 581,
10156
1482, 532, 1490, 1481, 258, 1504, 47, 1505, 1526, 1527,
10157
1528, 9, 971, 535, 604, 856, 258, 258, 258, 493,
10158
963, 258, 258, 494, 450, 605, 29, 21, 674, 47,
10159
492, 29, 27, 518, 30, 313, 329, 208, 30, 96,
10160
335, 765, 47, 864, 789, 356, 757, 47, 766, 825,
10161
758, 194, 47, 826, 47, 47, 47, 47, 329, 790,
10162
662, 827, 47, 113, 317, 685, 47, 829, 662, 194,
10163
342, 640, 640, 230, 123, 105, 288, 130, 47, 53,
10164
329, 47, 581, 47, 124, 106, 289, 581, 113, 581,
10165
581, 581, 581, 581, 581, 581, 581, 581, 581, 581,
10166
131, 21, 1040, 956, 1285, 1480, 1138, 47, 338, 47,
10167
47, 581, 1139, 581, 1277, 581, 1449, 581, 581, 581,
10168
854, 1465, 1436, 1489, 1431, 194, 194, 1324, 867, 983,
10169
984, 1337, 985, 581, 194, 503, 1522, 1284, 550, 1281,
10170
1359, 979, 194, 194, 581, 194, 1514, 1460, 583, 1455,
10171
1453, 1327, 1513, 1214, 1380, 1328, 581, 1215, 952, 374,
10172
887, 931, 928, 1327, 762, 194, 808, 592, 194, 329,
10173
1075, 1002, 581, 863, 299, 709, 1327, 553, 632, 550,
10174
375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
10175
329, 616, 617, 618, 631, 1327, 550, 550, 550, 550,
10176
550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
10177
550, 550, 258, 885, 633, 635, 752, 634, 636, 1202,
10178
925, 408, 1156, 779, 1289, 113, 1206, 113, 1117, 1068,
10179
1130, 583, 1087, 1123, 1125, 1187, 583, 755, 583, 583,
10180
583, 583, 583, 583, 583, 583, 583, 583, 583, 651,
10181
1019, 652, 1057, 833, 1287, 954, 329, 1192, 953, 0,
10182
583, 0, 583, 0, 583, 0, 583, 583, 583, 0,
10183
0, 113, 0, 0, 113, 0, 0, 0, 0, 329,
10184
0, 0, 583, 0, 0, 0, 0, 0, 27, 27,
10185
0, 0, 0, 27, 329, 0, 0, 27, 329, 27,
10186
0, 0, 27, 0, 27, 27, 34, 27, 0, 27,
10187
0, 27, 0, 27, 27, 27, 27, 0, 550, 27,
10188
27, 583, 0, 0, 0, 27, 0, 27, 27, 27,
10189
0, 0, 27, 27, 27, 0, 27, 0, 0, 27,
10190
0, 27, 27, 27, 27, 0, 0, 0, 27, 27,
10191
27, 0, 0, 27, 27, 27, 0, 258, 0, 0,
10192
0, 0, 27, 27, 0, 27, 27, 0, 27, 27,
10193
27, 329, 329, 0, 27, 0, 0, 0, 0, 0,
10194
0, 0, 0, 0, 0, 0, 0, 796, 0, 0,
10195
0, 503, 0, 0, 27, 33, 503, 503, 0, 0,
10196
27, 27, 0, 0, 0, 0, 0, 0, 0, 27,
10197
0, 0, 0, 0, 0, 0, 0, 0, 0, 503,
10198
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10199
0, 0, 503, 503, 0, 0, 0, 503, 329, 0,
10200
503, 0, 503, 0, 503, 503, 503, 503, 0, 0,
10201
27, 0, 503, 0, 0, 0, 503, 0, 0, 0,
10202
503, 0, 0, 0, 0, 0, 0, 329, 503, 0,
10203
0, 503, 0, 503, 503, 0, 0, 0, 0, 503,
10204
0, 503, 503, 503, 503, 503, 503, 503, 503, 503,
10205
503, 503, 0, 0, 0, 0, 0, 503, 503, 0,
10206
113, 0, 503, 503, 0, 503, 503, 503, 503, 503,
10207
503, 503, 0, 503, 503, 0, 503, 503, 503, 503,
10208
503, 503, 503, 503, 503, 503, 0, 503, 503, 503,
10209
503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
10210
503, 503, 503, 503, 503, 503, 503, 503, 503, 0,
10211
0, 503, 0, 503, 0, 503, 0, 858, 503, 0,
10212
0, 0, 0, 34, 503, 0, 0, 34, 0, 0,
10213
0, 0, 0, 0, 0, 0, 0, 0, 34, 0,
10214
0, 0, 0, 34, 0, 0, 0, 34, 0, 0,
10215
34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10216
0, 0, 34, 34, 0, 0, 0, 34, 34, 0,
10217
0, 0, 0, 34, 0, 34, 34, 34, 34, 0,
10218
0, 0, 0, 34, 113, 0, 0, 34, 113, 34,
10219
0, 113, 0, 0, 0, 0, 0, 0, 0, 34,
10220
0, 34, 34, 0, 34, 0, 0, 329, 34, 0,
10221
0, 0, 33, 582, 0, 113, 33, 0, 0, 0,
10222
113, 0, 0, 0, 0, 0, 0, 33, 34, 0,
10223
0, 0, 33, 0, 34, 34, 33, 0, 0, 33,
10224
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10225
0, 33, 33, 113, 0, 0, 33, 33, 0, 550,
10226
0, 0, 33, 329, 33, 33, 33, 33, 0, 113,
10227
0, 0, 33, 0, 0, 0, 33, 0, 33, 0,
10228
0, 329, 0, 0, 783, 0, 0, 0, 33, 0,
10229
33, 33, 0, 33, 0, 0, 582, 33, 0, 0,
10230
0, 582, 0, 582, 582, 582, 582, 582, 582, 582,
10231
582, 582, 582, 582, 0, 0, 0, 33, 0, 0,
10232
0, 0, 0, 0, 33, 582, 0, 582, 0, 582,
10233
0, 582, 582, 582, 0, 0, 0, 329, 329, 0,
10234
0, 0, 0, 0, 0, 0, 329, 582, 0, 0,
10235
0, 0, 0, 0, 329, 329, 0, 329, 582, 0,
10236
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10237
582, 0, 0, 858, 858, 0, 0, 329, 0, 0,
10238
329, 858, 858, 858, 858, 858, 582, 858, 858, 0,
10239
858, 858, 858, 858, 858, 858, 858, 858, 0, 0,
10240
0, 0, 858, 0, 858, 858, 858, 858, 858, 858,
10241
335, 0, 858, 0, 0, 0, 858, 858, 0, 858,
10242
858, 858, 0, 0, 0, 0, 0, 0, 0, 0,
10243
0, 858, 0, 858, 0, 858, 858, 0, 0, 858,
10244
0, 858, 858, 858, 858, 858, 858, 858, 858, 858,
10245
858, 858, 858, 0, 858, 0, 0, 858, 858, 0,
10246
0, 858, 858, 0, 0, 0, 0, 0, 0, 0,
10247
0, 0, 0, 0, 0, 0, 858, 858, 858, 858,
10248
858, 0, 0, 0, 858, 858, 0, 0, 858, 0,
10249
0, 0, 0, 858, 858, 858, 858, 858, 0, 0,
10250
0, 858, 0, 858, 0, 0, 0, 0, 0, 858,
10251
858, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10252
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10253
0, 0, 0, 0, 858, 858, 858, 858, 0, 858,
10254
783, 783, 0, 0, 0, 0, 858, 0, 783, 783,
10255
783, 783, 783, 0, 783, 783, 740, 783, 783, 783,
10256
783, 783, 783, 783, 0, 0, 0, 0, 0, 783,
10257
0, 783, 783, 783, 783, 783, 783, 0, 0, 783,
10258
0, 0, 0, 783, 783, 0, 783, 783, 783, 0,
10259
0, 0, 0, 0, 0, 0, 0, 0, 783, 0,
10260
783, 0, 783, 783, 0, 0, 783, 0, 783, 783,
10261
783, 783, 783, 783, 783, 783, 783, 783, 783, 783,
10262
0, 783, 0, 0, 783, 783, 0, 0, 783, 783,
10263
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10264
0, 0, 0, 783, 783, 783, 783, 783, 0, 0,
10265
0, 783, 783, 0, 0, 783, 0, 0, 0, 0,
10266
783, 783, 783, 783, 783, 0, 335, 0, 783, 0,
10267
783, 335, 335, 0, 0, 0, 783, 783, 0, 0,
10268
0, 0, 0, 0, 0, 0, 328, 0, 0, 0,
10269
0, 0, 0, 0, 335, 0, 0, 0, 0, 0,
10270
0, 783, 783, 783, 783, 0, 783, 335, 335, 0,
10271
0, 0, 335, 783, 0, 335, 0, 335, 0, 335,
10272
335, 335, 335, 0, 0, 0, 0, 335, 0, 0,
10273
0, 335, 0, 0, 0, 335, 0, 0, 0, 0,
10274
0, 0, 0, 335, 0, 0, 335, 0, 335, 335,
10275
0, 0, 0, 0, 335, 0, 335, 335, 335, 335,
10276
335, 335, 335, 335, 335, 335, 335, 335, 0, 0,
10277
0, 0, 335, 335, 0, 0, 0, 335, 335, 335,
10278
335, 335, 335, 335, 335, 335, 335, 0, 335, 335,
10279
0, 0, 335, 335, 335, 335, 335, 0, 0, 335,
10280
335, 0, 0, 0, 335, 335, 335, 335, 335, 335,
10281
335, 335, 740, 0, 0, 0, 365, 740, 740, 0,
10282
0, 0, 0, 335, 0, 0, 335, 0, 335, 0,
10283
335, 0, 0, 335, 0, 0, 0, 0, 0, 335,
10284
740, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10285
0, 0, 0, 740, 740, 0, 0, 0, 740, 0,
10286
0, 740, 0, 740, 0, 740, 740, 740, 740, 0,
10287
0, 0, 0, 740, 0, 0, 0, 740, 0, 0,
10288
0, 740, 0, 0, 0, 0, 0, 0, 0, 740,
10289
0, 0, 740, 0, 740, 740, 0, 0, 0, 0,
10290
740, 0, 740, 740, 740, 740, 740, 740, 740, 740,
10291
740, 740, 740, 0, 0, 0, 0, 0, 740, 740,
10292
335, 0, 0, 740, 740, 740, 740, 740, 740, 0,
10293
740, 740, 740, 0, 740, 740, 0, 0, 740, 740,
10294
740, 740, 328, 0, 0, 740, 740, 328, 328, 0,
10295
740, 740, 740, 740, 740, 740, 740, 740, 0, 0,
10296
0, 0, 0, 0, 0, 0, 0, 0, 0, 740,
10297
328, 0, 740, 0, 740, 0, 740, 0, 0, 740,
10298
0, 0, 0, 328, 328, 740, 0, 0, 328, 0,
10299
0, 328, 0, 328, 0, 328, 328, 328, 328, 0,
10300
0, 0, 0, 328, 0, 0, 0, 328, 0, 0,
10301
0, 328, 0, 0, 0, 0, 0, 0, 0, 328,
10302
0, 0, 328, 0, 328, 328, 0, 0, 0, 0,
10303
328, 0, 328, 328, 328, 328, 328, 328, 328, 328,
10304
328, 328, 328, 0, 0, 0, 0, 0, 328, 328,
10305
0, 0, 0, 328, 328, 328, 328, 328, 328, 0,
10306
328, 328, 328, 0, 328, 328, 360, 0, 328, 328,
10307
328, 328, 365, 0, 0, 328, 328, 365, 365, 0,
10308
328, 328, 328, 328, 328, 328, 328, 328, 0, 0,
10309
0, 0, 0, 0, 0, 0, 0, 0, 0, 328,
10310
365, 0, 328, 0, 328, 0, 328, 0, 0, 328,
10311
0, 0, 0, 365, 365, 328, 0, 0, 365, 0,
10312
0, 365, 0, 365, 0, 365, 365, 365, 365, 0,
10313
0, 0, 0, 365, 0, 0, 0, 365, 0, 0,
10314
0, 365, 0, 0, 0, 0, 0, 0, 0, 365,
10315
0, 0, 365, 0, 365, 365, 0, 0, 0, 0,
10316
365, 0, 365, 365, 365, 365, 365, 365, 365, 365,
10317
365, 365, 365, 0, 0, 0, 335, 0, 365, 365,
10318
0, 0, 335, 365, 365, 0, 365, 365, 365, 0,
10319
365, 365, 365, 0, 365, 365, 32, 0, 365, 365,
10320
365, 365, 0, 0, 0, 365, 365, 0, 0, 0,
10321
365, 365, 365, 365, 365, 365, 365, 365, 335, 0,
10322
0, 0, 0, 0, 0, 0, 0, 0, 0, 365,
10323
0, 0, 365, 0, 365, 0, 0, 0, 0, 27,
10324
0, 0, 0, 0, 0, 365, 0, 0, 0, 0,
10325
0, 0, 0, 0, 0, 0, 0, 0, 0, 335,
10326
0, 0, 585, 0, 335, 0, 335, 335, 335, 335,
10327
335, 335, 335, 335, 335, 335, 335, 335, 0, 0,
10328
0, 0, 31, 335, 0, 0, 0, 335, 335, 335,
10329
335, 335, 335, 335, 335, 335, 335, 0, 335, 335,
10330
0, 0, 335, 335, 335, 335, 335, 0, 0, 335,
10331
335, 0, 0, 0, 335, 335, 335, 335, 335, 335,
10332
335, 335, 360, 0, 0, 5, 0, 0, 360, 0,
10333
0, 0, 0, 335, 0, 0, 335, 0, 335, 0,
10334
335, 0, 0, 335, 0, 585, 0, 0, 0, 335,
10335
585, 0, 585, 585, 585, 585, 585, 585, 585, 585,
10336
585, 585, 585, 0, 360, 0, 0, 0, 953, 0,
10337
0, 0, 0, 0, 585, 0, 585, 0, 585, 0,
10338
585, 585, 585, 0, 0, 0, 0, 0, 0, 0,
10339
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10340
0, 0, 0, 0, 0, 360, 0, 0, 0, 0,
10341
360, 47, 360, 360, 360, 360, 360, 360, 360, 360,
10342
360, 360, 360, 0, 0, 0, 0, 0, 0, 360,
10343
0, 0, 0, 360, 360, 585, 360, 360, 360, 0,
10344
360, 360, 360, 0, 360, 360, 0, 0, 360, 360,
10345
360, 360, 0, 32, 7, 360, 360, 32, 0, 0,
10346
360, 360, 360, 360, 360, 360, 360, 360, 32, 0,
10347
0, 0, 0, 32, 0, 0, 0, 32, 0, 360,
10348
32, 0, 360, 0, 360, 0, 0, 0, 0, 0,
10349
0, 0, 32, 32, 0, 360, 27, 32, 32, 0,
10350
27, 0, 0, 32, 0, 32, 32, 32, 32, 0,
10351
0, 27, 0, 32, 0, 0, 27, 32, 0, 32,
10352
27, 954, 0, 27, 0, 0, 0, 0, 0, 32,
10353
0, 0, 32, 0, 32, 27, 27, 0, 32, 31,
10354
27, 27, 0, 31, 0, 0, 27, 0, 27, 27,
10355
27, 27, 0, 0, 31, 0, 27, 0, 32, 31,
10356
27, 0, 27, 31, 32, 32, 31, 0, 48, 0,
10357
0, 0, 27, 0, 0, 27, 0, 27, 31, 31,
10358
0, 27, 5, 31, 31, 0, 47, 0, 0, 31,
10359
0, 31, 31, 31, 31, 0, 0, 47, 0, 31,
10360
0, 27, 47, 31, 0, 31, 47, 27, 27, 47,
10361
0, 0, 0, 0, 0, 31, 0, 0, 31, 0,
10362
31, 47, 47, 0, 31, 953, 47, 47, 0, 47,
10363
0, 0, 47, 0, 47, 47, 47, 47, 0, 0,
10364
47, 0, 47, 0, 31, 47, 47, 0, 47, 47,
10365
0, 31, 47, 0, 0, 0, 0, 0, 47, 0,
10366
0, 47, 0, 47, 47, 47, 0, 47, 47, 47,
10367
47, 0, 47, 0, 0, 47, 0, 47, 47, 47,
10368
47, 0, 0, 47, 0, 47, 0, 47, 47, 47,
10369
0, 47, 47, 0, 0, 47, 0, 0, 0, 0,
10370
0, 47, 0, 0, 47, 0, 47, 47, 47, 0,
10371
47, 7, 47, 47, 0, 48, 0, 0, 47, 0,
10372
47, 47, 47, 47, 0, 0, 48, 0, 47, 0,
10373
47, 48, 47, 0, 47, 48, 0, 0, 48, 0,
10374
0, 0, 0, 0, 47, 0, 0, 47, 0, 47,
10375
48, 48, 0, 47, 0, 48, 48, 0, 0, 0,
10376
0, 48, 0, 48, 48, 48, 48, 0, 0, 0,
10377
0, 48, 0, 47, 0, 48, 0, 48, 954, 0,
10378
0, 0, 47, 0, 0, 0, 0, 48, 0, 0,
10379
48, 0, 48, 47, 0, 0, 48, 0, 47, 0,
10380
0, 0, 47, 0, 0, 47, 0, 0, 0, 0,
10381
0, 0, 0, 0, 0, 0, 48, 47, 47, 0,
10382
0, 0, 47, 47, 0, 48, 0, 0, 47, 48,
10383
47, 47, 47, 47, 0, 0, 0, 0, 47, 0,
10384
48, 0, 47, 0, 47, 48, 0, 0, 0, 48,
10385
0, 0, 48, 0, 47, 0, 0, 47, 0, 47,
10386
0, 0, 0, 47, 48, 48, 0, 0, 0, 48,
10387
48, 0, 0, 0, 0, 48, 0, 48, 48, 48,
10388
48, 0, 0, 47, 0, 48, 0, 0, 0, 48,
10389
0, 48, 0, 0, 0, 0, 0, 0, 0, 0,
10390
0, 48, 0, 55, 48, 0, 48, 0, 0, 0,
10391
48, 56, 24, 57, 25, 0, 0, 26, 58, 0,
10392
59, 60, 27, 61, 62, 63, 28, 0, 0, 0,
10393
48, 0, 64, 0, 65, 30, 66, 67, 68, 69,
10394
0, 0, 32, 0, 0, 0, 70, 33, 0, 71,
10395
72, 34, 0, 0, 0, 0, 0, 0, 0, 0,
10396
0, 73, 0, 36, 0, 37, 74, 0, 0, 38,
10397
0, 75, 76, 77, 78, 79, 80, 39, 40, 81,
10398
82, 41, 83, 0, 84, 0, 0, 85, 86, 0,
10399
335, 87, 88, 0, 0, 0, 335, 0, 0, 0,
10400
0, 0, 0, 0, 0, 0, 89, 90, 91, 92,
10401
93, 0, 0, 0, 94, 0, 0, 0, 95, 0,
10402
0, 0, 0, 96, 97, 98, 99, 100, 0, 0,
10403
0, 101, 335, 102, 0, 0, 0, 0, 0, 103,
10404
104, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10405
0, 0, 0, 0, 0, 0, 335, 0, 0, 0,
10406
0, 0, 335, 0, 105, 106, 107, 108, 0, 0,
10407
0, 0, 0, 335, 0, 0, 196, 0, 335, 0,
10408
335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
10409
335, 335, 0, 0, 0, 0, 0, 335, 335, 0,
10410
0, 0, 335, 335, 335, 335, 335, 335, 335, 335,
10411
335, 0, 335, 335, 0, 335, 335, 335, 335, 335,
10412
335, 335, 335, 335, 335, 0, 335, 335, 335, 335,
10413
335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
10414
335, 335, 335, 335, 335, 335, 335, 335, 0, 505,
10415
0, 0, 335, 0, 335, 505, 0, 335, 0, 0,
10416
0, 0, 0, 335, 0, 0, 0, 0, 335, 0,
10417
0, 335, 0, 335, 335, 0, 0, 0, 335, 335,
10418
0, 0, 335, 335, 335, 335, 335, 335, 335, 335,
10419
335, 505, 335, 335, 335, 335, 335, 335, 335, 335,
10420
335, 335, 0, 0, 0, 0, 0, 0, 0, 0,
10421
0, 0, 335, 335, 0, 0, 0, 0, 0, 0,
10422
335, 0, 0, 335, 0, 0, 0, 0, 0, 335,
10423
0, 201, 505, 0, 0, 0, 0, 505, 0, 505,
10424
505, 505, 505, 505, 505, 505, 505, 505, 505, 505,
10425
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10426
505, 505, 505, 505, 505, 505, 505, 505, 505, 505,
10427
945, 505, 505, 202, 505, 505, 505, 505, 505, 505,
10428
505, 505, 505, 505, 0, 505, 505, 505, 505, 505,
10429
505, 505, 505, 505, 505, 505, 505, 505, 505, 505,
10430
505, 505, 505, 505, 505, 505, 505, 0, 501, 0,
10431
0, 0, 0, 505, 501, 0, 0, 0, 0, 0,
10432
0, 0, 505, 203, 204, 205, 206, 0, 207, 208,
10433
209, 210, 211, 212, 213, 214, 0, 0, 215, 216,
10434
217, 218, 219, 220, 221, 222, 0, 0, 0, 0,
10435
501, 0, 0, 945, 0, 0, 0, 0, 945, 0,
10436
945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
10437
0, 0, 0, 0, 0, 0, 0, 0, 0, 391,
10438
0, 0, 945, 0, 945, 391, 945, 0, 945, 945,
10439
945, 501, 0, 0, 0, 0, 501, 0, 501, 501,
10440
501, 501, 501, 501, 501, 501, 501, 501, 501, 0,
10441
0, 0, 0, 0, 0, 0, 0, 0, 0, 501,
10442
501, 391, 501, 501, 501, 501, 501, 501, 501, 0,
10443
501, 501, 0, 501, 501, 501, 501, 501, 501, 501,
10444
501, 501, 501, 945, 501, 501, 501, 501, 501, 501,
10445
501, 501, 501, 501, 501, 501, 501, 501, 501, 501,
10446
501, 501, 501, 501, 501, 501, 0, 509, 0, 0,
10447
0, 0, 501, 509, 0, 501, 0, 0, 0, 0,
10448
0, 501, 0, 0, 0, 0, 328, 0, 0, 0,
10449
0, 391, 328, 0, 391, 391, 391, 391, 0, 391,
10450
0, 391, 391, 0, 391, 391, 391, 391, 391, 509,
10451
391, 391, 391, 391, 0, 391, 391, 391, 391, 391,
10452
391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
10453
391, 391, 391, 391, 391, 391, 391, 0, 0, 0,
10454
0, 328, 0, 391, 0, 0, 391, 0, 0, 0,
10455
509, 0, 391, 0, 0, 509, 0, 509, 509, 509,
10456
509, 509, 509, 509, 509, 509, 509, 509, 0, 0,
10457
0, 0, 0, 0, 0, 0, 0, 0, 0, 509,
10458
0, 509, 509, 509, 509, 509, 509, 509, 0, 509,
10459
509, 0, 509, 509, 509, 509, 509, 509, 509, 509,
10460
509, 509, 0, 509, 509, 509, 509, 509, 509, 509,
10461
509, 509, 509, 509, 509, 509, 509, 509, 509, 509,
10462
509, 509, 509, 509, 509, 0, 335, 756, 0, 0,
10463
0, 509, 335, 0, 509, 0, 24, 0, 25, 0,
10464
509, 26, 0, 0, 0, 0, 27, 0, 0, 0,
10465
28, 0, 0, 0, 0, 0, 0, 0, 0, 30,
10466
0, 0, 0, 0, 0, 0, 32, 0, 335, 0,
10467
0, 33, 0, 0, 0, 34, 0, 0, 0, 0,
10468
0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
10469
0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
10470
0, 39, 40, 0, 0, 41, 0, 0, 757, 335,
10471
0, 0, 0, 0, 335, 0, 335, 335, 335, 335,
10472
335, 335, 335, 335, 335, 335, 335, 0, 0, 0,
10473
0, 0, 0, 0, 291, 0, 0, 0, 335, 0,
10474
335, 335, 335, 335, 335, 335, 335, 0, 335, 335,
10475
0, 335, 335, 335, 335, 335, 335, 335, 335, 335,
10476
335, 0, 335, 335, 335, 335, 335, 335, 335, 335,
10477
335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
10478
335, 335, 335, 335, 0, 434, 567, 0, 0, 323,
10479
335, 434, 0, 335, 0, 24, 0, 25, 0, 335,
10480
26, 0, 0, 0, 0, 27, 0, 0, 0, 28,
10481
0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
10482
0, 0, 0, 0, 0, 32, 0, 434, 0, 0,
10483
33, 0, 0, 0, 34, 0, 0, 0, 0, 0,
10484
0, 0, 0, 0, 0, 0, 36, 0, 37, 0,
10485
0, 0, 38, 0, 0, 0, 0, 0, 0, 0,
10486
39, 40, 0, 0, 41, 0, 0, 322, 434, 0,
10487
0, 0, 0, 434, 0, 434, 434, 434, 434, 434,
10488
434, 434, 434, 434, 434, 434, 0, 0, 0, 0,
10489
0, 0, 0, 0, 0, 0, 0, 434, 0, 434,
10490
434, 434, 434, 434, 434, 434, 0, 434, 434, 0,
10491
434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
10492
0, 434, 434, 434, 434, 434, 434, 434, 434, 434,
10493
434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
10494
434, 434, 434, 0, 394, 0, 453, 0, 355, 434,
10495
394, 0, 434, 0, 0, 0, 0, 0, 434, 0,
10496
0, 0, 0, 0, 0, 0, 0, 0, 0, 454,
10497
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10498
0, 0, 455, 0, 0, 0, 394, 457, 0, 0,
10499
0, 0, 458, 0, 459, 460, 461, 462, 0, 0,
10500
0, 0, 463, 0, 0, 0, 464, 0, 0, 335,
10501
1320, 0, 0, 0, 0, 335, 0, 0, 465, 743,
10502
0, 466, 0, 467, 0, 0, 0, 394, 0, 0,
10503
0, 0, 394, 0, 394, 394, 394, 394, 394, 394,
10504
394, 394, 394, 394, 394, 0, 0, 468, 0, 0,
10505
0, 335, 0, 0, 0, 0, 394, 0, 394, 394,
10506
394, 394, 394, 394, 394, 0, 394, 743, 0, 394,
10507
394, 394, 394, 394, 394, 394, 394, 394, 394, 0,
10508
394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
10509
394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
10510
394, 394, 0, 1321, 0, 0, 0, 0, 394, 0,
10511
335, 394, 0, 0, 0, 0, 335, 394, 0, 0,
10512
0, 335, 335, 335, 335, 335, 335, 335, 743, 335,
10513
0, 335, 335, 0, 335, 335, 335, 335, 335, 335,
10514
335, 335, 335, 335, 0, 335, 335, 335, 335, 335,
10515
335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
10516
335, 335, 335, 335, 335, 335, 335, 0, 540, 0,
10517
501, 335, 0, 335, 540, 0, 335, 0, 56, 24,
10518
0, 25, 335, 0, 26, 253, 0, 0, 0, 27,
10519
61, 62, 0, 28, 0, 0, 0, 0, 0, 64,
10520
0, 0, 30, 0, 0, 0, 0, 0, 0, 32,
10521
540, 0, 0, 0, 33, 0, 71, 72, 34, 0,
10522
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10523
36, 0, 37, 74, 0, 0, 38, 0, 0, 76,
10524
0, 78, 0, 80, 39, 40, 254, 0, 41, 0,
10525
0, 540, 0, 0, 0, 0, 540, 0, 540, 540,
10526
540, 540, 540, 540, 540, 540, 540, 540, 540, 0,
10527
0, 0, 0, 89, 90, 91, 255, 0, 0, 0,
10528
540, 0, 540, 0, 540, 95, 540, 540, 540, 0,
10529
540, 540, 0, 540, 540, 540, 540, 540, 540, 540,
10530
540, 540, 540, 453, 0, 0, 540, 540, 540, 540,
10531
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
10532
540, 540, 540, 540, 552, 540, 454, 0, 0, 0,
10533
552, 105, 502, 0, 0, 0, 0, 0, 0, 455,
10534
0, 540, 0, 0, 457, 0, 0, 0, 0, 458,
10535
0, 459, 460, 461, 462, 0, 0, 0, 0, 463,
10536
0, 0, 0, 464, 0, 0, 552, 0, 0, 0,
10537
0, 0, 0, 0, 0, 465, 0, 0, 466, 0,
10538
467, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10539
0, 0, 556, 0, 0, 0, 0, 0, 556, 0,
10540
0, 0, 0, 0, 468, 0, 0, 552, 0, 0,
10541
0, 0, 552, 0, 552, 552, 552, 552, 552, 552,
10542
552, 552, 552, 552, 552, 0, 0, 0, 0, 0,
10543
0, 0, 0, 0, 556, 0, 552, 0, 552, 0,
10544
552, 0, 552, 552, 552, 0, 552, 552, 0, 0,
10545
552, 552, 552, 552, 552, 552, 552, 552, 552, 0,
10546
1335, 0, 552, 552, 552, 552, 552, 552, 552, 552,
10547
0, 0, 0, 0, 0, 556, 0, 0, 0, 0,
10548
556, 552, 556, 556, 556, 556, 556, 556, 556, 556,
10549
556, 556, 556, 0, 0, 0, 559, 552, 0, 0,
10550
0, 0, 559, 0, 556, 0, 556, 0, 556, 0,
10551
556, 556, 556, 0, 556, 556, 0, 0, 556, 556,
10552
556, 556, 0, 0, 0, 556, 556, 0, 0, 0,
10553
556, 556, 556, 556, 556, 556, 556, 556, 559, 0,
10554
0, 0, 0, 0, 0, 0, 0, 0, 0, 556,
10555
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10556
0, 0, 0, 0, 557, 556, 0, 0, 0, 0,
10557
557, 0, 0, 0, 0, 0, 0, 0, 0, 559,
10558
0, 0, 0, 0, 559, 0, 559, 559, 559, 559,
10559
559, 559, 559, 559, 559, 559, 559, 0, 0, 0,
10560
0, 0, 0, 0, 0, 0, 557, 0, 559, 0,
10561
559, 0, 559, 0, 559, 559, 559, 0, 559, 559,
10562
0, 0, 559, 559, 559, 559, 0, 0, 0, 559,
10563
559, 0, 0, 0, 559, 559, 559, 559, 559, 559,
10564
559, 559, 0, 0, 0, 0, 0, 557, 0, 0,
10565
0, 0, 557, 559, 557, 557, 557, 557, 557, 557,
10566
557, 557, 557, 557, 557, 0, 0, 0, 558, 559,
10567
0, 0, 0, 0, 558, 0, 557, 0, 557, 0,
10568
557, 0, 557, 557, 557, 0, 557, 557, 0, 0,
10569
557, 557, 557, 557, 0, 0, 0, 557, 557, 0,
10570
0, 0, 557, 557, 557, 557, 557, 557, 557, 557,
10571
558, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10572
0, 557, 0, 0, 0, 0, 0, 0, 0, 0,
10573
0, 0, 0, 0, 0, 0, 562, 557, 0, 0,
10574
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10575
0, 558, 0, 0, 0, 0, 558, 0, 558, 558,
10576
558, 558, 558, 558, 558, 558, 558, 558, 558, 0,
10577
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10578
558, 0, 558, 0, 558, 0, 558, 558, 558, 0,
10579
558, 558, 0, 0, 558, 558, 558, 558, 0, 0,
10580
0, 558, 558, 0, 563, 0, 558, 558, 558, 558,
10581
558, 558, 558, 558, 0, 0, 0, 0, 0, 562,
10582
0, 0, 0, 0, 562, 558, 562, 562, 562, 562,
10583
562, 562, 562, 562, 562, 562, 562, 0, 0, 0,
10584
0, 558, 0, 0, 0, 0, 0, 0, 562, 0,
10585
562, 0, 562, 0, 562, 562, 562, 0, 0, 0,
10586
0, 0, 562, 562, 562, 562, 0, 0, 0, 562,
10587
562, 0, 564, 0, 562, 562, 562, 562, 562, 562,
10588
562, 562, 0, 0, 0, 0, 0, 563, 0, 0,
10589
0, 0, 563, 562, 563, 563, 563, 563, 563, 563,
10590
563, 563, 563, 563, 563, 0, 0, 0, 0, 562,
10591
0, 0, 0, 0, 0, 0, 563, 0, 563, 0,
10592
563, 0, 563, 563, 563, 0, 0, 0, 0, 0,
10593
563, 563, 563, 563, 0, 0, 0, 563, 563, 0,
10594
565, 0, 563, 563, 563, 563, 563, 563, 563, 563,
10595
0, 0, 0, 0, 0, 564, 0, 0, 0, 0,
10596
564, 563, 564, 564, 564, 564, 564, 564, 564, 564,
10597
564, 564, 564, 0, 0, 0, 0, 563, 0, 0,
10598
0, 0, 0, 0, 564, 0, 564, 0, 564, 0,
10599
564, 564, 564, 0, 0, 0, 0, 0, 564, 564,
10600
564, 564, 0, 0, 0, 564, 564, 0, 566, 0,
10601
564, 564, 564, 564, 564, 564, 564, 564, 0, 0,
10602
0, 0, 0, 565, 0, 0, 0, 0, 565, 564,
10603
565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
10604
565, 0, 0, 0, 0, 564, 0, 0, 0, 0,
10605
0, 0, 565, 0, 565, 0, 565, 0, 565, 565,
10606
565, 0, 0, 0, 0, 0, 565, 565, 565, 565,
10607
0, 0, 0, 565, 565, 0, 567, 0, 0, 0,
10608
565, 565, 565, 565, 565, 565, 0, 0, 0, 0,
10609
0, 566, 0, 0, 0, 0, 566, 565, 566, 566,
10610
566, 566, 566, 566, 566, 566, 566, 566, 566, 0,
10611
0, 0, 0, 565, 0, 0, 0, 0, 0, 0,
10612
566, 0, 566, 0, 566, 0, 566, 566, 566, 0,
10613
0, 0, 0, 0, 566, 566, 566, 566, 0, 0,
10614
0, 566, 566, 0, 568, 0, 0, 0, 566, 566,
10615
566, 566, 566, 566, 0, 0, 0, 0, 0, 567,
10616
0, 0, 0, 0, 567, 566, 567, 567, 567, 567,
10617
567, 567, 567, 567, 567, 567, 567, 0, 0, 0,
10618
0, 566, 0, 0, 0, 0, 0, 0, 567, 0,
10619
567, 0, 567, 0, 567, 567, 567, 0, 0, 0,
10620
0, 0, 567, 567, 567, 567, 0, 0, 0, 567,
10621
567, 0, 569, 0, 0, 0, 567, 567, 567, 567,
10622
567, 567, 0, 0, 0, 0, 0, 568, 0, 0,
10623
0, 0, 568, 567, 568, 568, 568, 568, 568, 568,
10624
568, 568, 568, 568, 568, 0, 0, 0, 0, 567,
10625
0, 0, 0, 0, 0, 0, 568, 0, 568, 0,
10626
568, 0, 568, 568, 568, 0, 0, 0, 0, 0,
10627
568, 568, 568, 568, 0, 0, 0, 568, 568, 0,
10628
570, 0, 0, 0, 568, 568, 568, 568, 568, 568,
10629
0, 0, 0, 0, 0, 569, 0, 0, 0, 0,
10630
569, 568, 569, 569, 569, 569, 569, 569, 569, 569,
10631
569, 569, 569, 0, 0, 0, 0, 568, 0, 0,
10632
0, 0, 0, 0, 569, 0, 569, 0, 569, 0,
10633
569, 569, 569, 0, 0, 0, 0, 0, 569, 569,
10634
569, 569, 0, 0, 0, 569, 569, 0, 571, 0,
10635
0, 0, 569, 569, 569, 569, 569, 569, 0, 0,
10636
0, 0, 0, 570, 0, 0, 0, 0, 570, 569,
10637
570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
10638
570, 0, 0, 0, 0, 569, 0, 0, 0, 0,
10639
0, 0, 570, 0, 570, 0, 570, 0, 570, 570,
10640
570, 0, 0, 0, 0, 0, 0, 0, 570, 570,
10641
0, 0, 0, 570, 570, 0, 572, 0, 0, 0,
10642
0, 0, 570, 570, 570, 570, 0, 0, 0, 0,
10643
0, 571, 0, 0, 0, 0, 571, 570, 571, 571,
10644
571, 571, 571, 571, 571, 571, 571, 571, 571, 0,
10645
0, 0, 0, 570, 0, 0, 0, 0, 0, 0,
10646
571, 0, 571, 0, 571, 0, 571, 571, 571, 0,
10647
0, 0, 0, 0, 0, 0, 571, 571, 0, 0,
10648
0, 571, 571, 0, 573, 0, 0, 0, 0, 0,
10649
571, 571, 571, 571, 0, 0, 0, 0, 0, 572,
10650
0, 0, 0, 0, 572, 571, 572, 572, 572, 572,
10651
572, 572, 572, 572, 572, 572, 572, 0, 0, 0,
10652
0, 571, 0, 0, 0, 0, 0, 0, 572, 0,
10653
572, 0, 572, 0, 572, 572, 572, 0, 0, 0,
10654
0, 0, 0, 0, 572, 572, 0, 0, 0, 572,
10655
572, 0, 574, 0, 0, 0, 0, 0, 572, 572,
10656
572, 572, 0, 0, 0, 0, 0, 573, 0, 0,
10657
0, 0, 573, 572, 573, 573, 573, 573, 573, 573,
10658
573, 573, 573, 573, 573, 0, 0, 0, 0, 572,
10659
0, 0, 0, 0, 0, 0, 573, 0, 573, 0,
10660
573, 0, 573, 573, 573, 0, 0, 0, 0, 0,
10661
0, 0, 573, 573, 0, 0, 0, 573, 573, 0,
10662
575, 0, 0, 0, 0, 0, 0, 0, 573, 573,
10663
0, 0, 0, 0, 0, 574, 0, 0, 0, 0,
10664
574, 573, 574, 574, 574, 574, 574, 574, 574, 574,
10665
574, 574, 574, 0, 0, 0, 0, 573, 0, 0,
10666
0, 0, 0, 0, 574, 0, 574, 0, 574, 0,
10667
574, 574, 574, 0, 0, 0, 0, 0, 0, 0,
10668
574, 574, 0, 0, 0, 574, 574, 0, 576, 0,
10669
0, 0, 0, 0, 0, 0, 574, 574, 0, 0,
10670
0, 0, 0, 575, 0, 0, 0, 0, 575, 574,
10671
575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
10672
575, 0, 0, 0, 0, 574, 0, 0, 0, 0,
10673
0, 0, 575, 0, 575, 0, 575, 0, 575, 575,
10674
575, 0, 0, 0, 0, 0, 0, 0, 0, 575,
10675
0, 0, 0, 575, 575, 0, 577, 0, 0, 0,
10676
0, 0, 0, 0, 575, 575, 0, 0, 0, 0,
10677
0, 576, 0, 0, 0, 0, 576, 575, 576, 576,
10678
576, 576, 576, 576, 576, 576, 576, 576, 576, 0,
10679
0, 0, 0, 575, 0, 0, 0, 0, 0, 0,
10680
576, 0, 576, 0, 576, 0, 576, 576, 576, 0,
10681
0, 0, 0, 0, 0, 0, 0, 576, 0, 0,
10682
0, 576, 576, 0, 578, 0, 0, 0, 0, 0,
10683
0, 0, 576, 576, 0, 0, 0, 0, 0, 577,
10684
0, 0, 0, 0, 577, 576, 577, 577, 577, 577,
10685
577, 577, 577, 577, 577, 577, 577, 0, 0, 0,
10686
0, 576, 0, 0, 0, 0, 0, 0, 577, 0,
10687
577, 0, 577, 0, 577, 577, 577, 0, 0, 0,
10688
0, 0, 0, 0, 0, 577, 0, 0, 0, 0,
10689
577, 0, 579, 0, 0, 0, 0, 0, 0, 0,
10690
577, 577, 0, 0, 0, 0, 0, 578, 0, 0,
10691
0, 0, 578, 577, 578, 578, 578, 578, 578, 578,
10692
578, 578, 578, 578, 578, 0, 0, 0, 0, 577,
10693
0, 0, 0, 0, 0, 0, 578, 0, 578, 0,
10694
578, 0, 578, 578, 578, 0, 0, 0, 0, 0,
10695
0, 0, 0, 578, 0, 0, 0, 0, 578, 0,
10696
580, 0, 0, 0, 0, 0, 0, 0, 578, 578,
10697
0, 0, 0, 0, 0, 579, 0, 0, 0, 0,
10698
579, 578, 579, 579, 579, 579, 579, 579, 579, 579,
10699
579, 579, 579, 0, 0, 0, 0, 578, 0, 0,
10700
0, 0, 0, 0, 579, 0, 579, 0, 579, 0,
10701
579, 579, 579, 0, 0, 0, 0, 0, 0, 0,
10702
0, 0, 0, 0, 0, 335, 579, 0, 0, 743,
10703
0, 0, 0, 0, 0, 0, 579, 579, 0, 0,
10704
0, 0, 0, 580, 0, 0, 0, 0, 580, 579,
10705
580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
10706
580, 335, 0, 0, 0, 579, 0, 0, 0, 0,
10707
0, 0, 580, 0, 580, 0, 580, 743, 580, 580,
10708
580, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10709
0, 0, 0, 0, 580, 0, 0, 0, 0, 0,
10710
0, 0, 0, 0, 580, 580, 0, 0, 0, 0,
10711
0, 0, 0, 0, 0, 0, 0, 580, 0, 0,
10712
335, 0, 0, 0, 0, 0, 335, 0, 0, 0,
10713
0, 335, 335, 580, 335, 0, 335, 0, 743, 335,
10714
0, 335, 335, 0, 335, 335, 335, 335, 335, 335,
10715
335, 335, 335, 335, 0, 335, 335, 335, 335, 335,
10716
335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
10717
335, 335, 335, 335, 335, 335, 335, 0, 0, 55,
10718
0, 335, 0, 335, 0, 0, 335, 56, 24, 57,
10719
25, 0, 335, 26, 58, 0, 59, 60, 27, 61,
10720
62, 63, 28, 0, 0, 0, 0, 0, 64, 0,
10721
65, 30, 66, 67, 68, 69, 0, 0, 32, 0,
10722
0, 0, 70, 33, 0, 71, 72, 34, 0, 0,
10723
0, 0, 0, 0, 0, 0, 0, 73, 0, 36,
10724
0, 37, 74, 0, 0, 38, 0, 75, 76, 77,
10725
78, 79, 80, 39, 40, 81, 82, 41, 83, 0,
10726
84, 0, 0, 85, 86, 0, 0, 87, 88, 0,
10727
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10728
0, 0, 89, 90, 91, 92, 93, 0, 0, 0,
10729
94, 0, 0, 0, 95, 0, 0, 0, 0, 96,
10730
97, 98, 99, 100, 0, 0, 0, 101, 0, 102,
10731
0, 0, 0, 0, 0, 103, 104, 0, 0, 0,
10732
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10733
0, 0, 0, 0, 0, 0, 266, 0, 0, 0,
10734
105, 106, 107, 108, 56, 24, 57, 25, 0, 0,
10735
26, 58, 0, 59, 60, 27, 61, 62, 63, 28,
10736
0, 0, 0, 0, 0, 64, 0, 65, 30, 66,
10737
67, 68, 69, 0, 0, 32, 0, 0, 0, 70,
10738
33, 0, 71, 72, 34, 0, 0, 0, 0, 0,
10739
0, 0, 0, 0, 73, 0, 36, 0, 37, 74,
10740
0, 0, 38, 0, 75, 76, 77, 78, 79, 80,
10741
39, 40, 81, 82, 41, 83, 0, 84, 0, 0,
10742
85, 86, 0, 0, 87, 88, 0, 0, 0, 0,
10743
0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
10744
90, 91, 92, 93, 0, 0, 0, 94, 0, 0,
10745
0, 95, 0, 0, 0, 0, 96, 97, 98, 99,
10746
100, 0, 0, 0, 101, 0, 102, 0, 0, 0,
10747
0, 0, 103, 104, 0, 0, 0, 0, 0, 0,
10748
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10749
0, 0, 0, 556, 0, 0, 0, 105, 106, 107,
10750
108, 56, 24, 57, 25, 0, 0, 26, 58, 0,
10751
59, 60, 27, 61, 62, 63, 28, 0, 0, 0,
10752
0, 0, 64, 0, 65, 30, 66, 67, 68, 69,
10753
0, 0, 32, 0, 0, 0, 70, 33, 0, 71,
10754
72, 34, 0, 0, 0, 0, 0, 0, 0, 0,
10755
0, 73, 0, 36, 0, 37, 74, 0, 0, 38,
10756
0, 75, 76, 77, 78, 79, 80, 39, 40, 81,
10757
82, 41, 83, 0, 84, 0, 0, 85, 86, 0,
10758
0, 87, 88, 0, 0, 0, 0, 0, 0, 0,
10759
0, 0, 0, 0, 0, 0, 89, 90, 91, 92,
10760
93, 0, 0, 0, 94, 0, 0, 0, 95, 0,
10761
0, 0, 0, 96, 97, 98, 99, 100, 0, 0,
10762
0, 101, 0, 102, 0, 0, 0, 0, 0, 103,
10763
104, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10764
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10765
950, 0, 0, 0, 105, 557, 107, 108, 950, 950,
10766
950, 950, 0, 0, 950, 950, 0, 950, 950, 950,
10767
950, 950, 950, 950, 0, 0, 0, 0, 0, 950,
10768
0, 950, 950, 950, 950, 950, 950, 0, 0, 950,
10769
0, 0, 0, 950, 950, 0, 950, 950, 950, 0,
10770
0, 0, 0, 0, 0, 0, 0, 0, 950, 0,
10771
950, 0, 950, 950, 0, 0, 950, 0, 950, 950,
10772
950, 950, 950, 950, 950, 950, 950, 950, 950, 950,
10773
0, 950, 0, 0, 950, 950, 0, 0, 950, 950,
10774
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10775
0, 0, 0, 950, 950, 950, 950, 950, 0, 0,
10776
0, 950, 0, 0, 0, 950, 0, 0, 0, 0,
10777
950, 950, 950, 950, 950, 0, 0, 0, 950, 0,
10778
950, 0, 0, 0, 0, 0, 950, 950, 0, 0,
10779
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10780
0, 0, 0, 0, 0, 0, 0, 794, 0, 0,
10781
0, 950, 950, 950, 950, 794, 794, 794, 794, 0,
10782
0, 794, 794, 0, 794, 794, 794, 794, 794, 794,
10783
794, 0, 0, 0, 0, 0, 794, 0, 794, 794,
10784
794, 794, 794, 794, 0, 0, 794, 0, 0, 0,
10785
794, 794, 0, 794, 794, 794, 0, 0, 0, 0,
10786
0, 0, 0, 0, 0, 794, 0, 794, 0, 794,
10787
794, 0, 0, 794, 0, 794, 794, 794, 794, 794,
10788
794, 794, 794, 794, 794, 794, 794, 0, 794, 0,
10789
0, 794, 794, 0, 0, 794, 794, 0, 0, 0,
10790
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10791
794, 794, 794, 794, 794, 0, 0, 0, 794, 0,
10792
0, 0, 794, 0, 0, 0, 0, 794, 794, 794,
10793
794, 794, 0, 0, 0, 794, 0, 794, 0, 0,
10794
0, 0, 0, 794, 794, 0, 0, 0, 0, 0,
10795
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10796
0, 0, 0, 0, 742, 0, 0, 0, 794, 794,
10797
794, 794, 56, 24, 0, 25, 0, 0, 26, 253,
10798
0, 903, 0, 27, 61, 62, 0, 28, 0, 0,
10799
24, 0, 25, 64, 0, 26, 30, 0, 0, 0,
10800
27, 0, 0, 32, 28, 0, 0, 0, 33, 0,
10801
71, 72, 34, 30, 0, 0, 0, 0, 0, 0,
10802
32, 0, 0, 0, 36, 33, 37, 74, 0, 34,
10803
38, 0, 0, 76, 0, 78, 0, 80, 39, 40,
10804
254, 36, 41, 37, 0, 0, 0, 38, 0, 86,
10805
0, 0, 87, 88, 0, 39, 40, 0, 0, 41,
10806
0, 0, 322, 0, 0, 0, 0, 89, 90, 91,
10807
92, 302, 0, 0, 0, 518, 743, 0, 0, 95,
10808
0, 0, 0, 0, 0, 97, 98, 99, 100, 0,
10809
0, 0, 101, 0, 102, 0, 0, 0, 0, 0,
10810
103, 104, 0, 0, 0, 0, 0, 0, 0, 0,
10811
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10812
0, 929, 0, 0, 0, 105, 303, 107, 108, 56,
10813
24, 0, 25, 0, 0, 26, 253, 0, 1049, 0,
10814
27, 61, 62, 355, 28, 0, 0, 24, 0, 25,
10815
64, 0, 26, 30, 0, 0, 0, 27, 0, 0,
10816
32, 28, 0, 0, 0, 33, 0, 71, 72, 34,
10817
30, 593, 0, 0, 0, 0, 0, 32, 594, 0,
10818
0, 36, 33, 37, 74, 0, 34, 38, 0, 0,
10819
76, 0, 78, 0, 80, 39, 40, 254, 36, 41,
10820
37, 0, 0, 0, 38, 0, 595, 0, 0, 87,
10821
88, 0, 39, 40, 0, 0, 41, 0, 0, 322,
10822
0, 0, 0, 0, 89, 90, 91, 92, 93, 0,
10823
0, 0, 0, 0, 0, 0, 95, 0, 0, 0,
10824
0, 0, 97, 98, 99, 100, 0, 0, 0, 101,
10825
0, 102, 0, 0, 0, 0, 0, 103, 104, 0,
10826
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10827
0, 0, 0, 0, 0, 0, 0, 0, 933, 0,
10828
0, 0, 105, 106, 107, 108, 56, 24, 0, 25,
10829
0, 0, 26, 253, 0, 0, 0, 27, 61, 62,
10830
355, 28, 0, 0, 174, 0, 174, 64, 0, 174,
10831
30, 0, 0, 0, 174, 0, 0, 32, 174, 0,
10832
0, 0, 33, 0, 71, 72, 34, 174, 0, 0,
10833
0, 0, 0, 0, 174, 0, 0, 0, 36, 174,
10834
37, 74, 934, 174, 38, 0, 0, 76, 0, 78,
10835
0, 80, 39, 40, 254, 174, 41, 174, 0, 0,
10836
0, 174, 0, 86, 0, 0, 87, 88, 0, 174,
10837
174, 0, 0, 174, 0, 0, 174, 0, 0, 0,
10838
0, 89, 90, 91, 92, 302, 0, 0, 0, 518,
10839
0, 0, 0, 95, 0, 0, 0, 0, 0, 97,
10840
98, 99, 100, 0, 0, 0, 101, 0, 102, 0,
10841
0, 974, 0, 0, 103, 104, 0, 0, 0, 0,
10842
0, 0, 56, 24, 0, 25, 0, 0, 26, 253,
10843
0, 0, 0, 27, 61, 62, 0, 28, 0, 105,
10844
303, 107, 108, 64, 0, 0, 30, 0, 0, 0,
10845
0, 0, 0, 32, 0, 0, 0, 174, 33, 0,
10846
71, 72, 34, 0, 0, 0, 0, 0, 0, 0,
10847
0, 0, 0, 0, 36, 0, 37, 74, 0, 0,
10848
38, 0, 0, 76, 0, 78, 0, 80, 39, 40,
10849
254, 0, 41, 0, 0, 0, 0, 0, 0, 86,
10850
0, 0, 87, 88, 0, 0, 0, 0, 0, 0,
10851
0, 0, 0, 0, 0, 0, 0, 89, 90, 91,
10852
92, 302, 0, 0, 0, 729, 1001, 0, 0, 95,
10853
0, 0, 0, 0, 0, 97, 98, 99, 100, 0,
10854
0, 0, 101, 0, 102, 0, 0, 0, 0, 0,
10855
103, 104, 0, 0, 0, 0, 0, 0, 0, 0,
10856
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10857
0, 0, 0, 742, 0, 105, 730, 107, 108, 0,
10858
0, 56, 24, 0, 25, 0, 731, 26, 253, 0,
10859
0, 0, 27, 61, 62, 0, 28, 0, 0, 174,
10860
0, 174, 64, 0, 174, 30, 0, 0, 0, 174,
10861
0, 0, 32, 174, 0, 0, 0, 33, 0, 71,
10862
72, 34, 174, 0, 0, 0, 0, 0, 0, 174,
10863
0, 0, 0, 36, 174, 37, 74, 934, 174, 38,
10864
0, 0, 76, 0, 78, 0, 80, 39, 40, 254,
10865
174, 41, 174, 0, 0, 0, 174, 0, 86, 0,
10866
0, 87, 88, 0, 174, 174, 0, 0, 174, 0,
10867
0, 174, 0, 0, 0, 0, 89, 90, 91, 92,
10868
302, 0, 0, 0, 518, 0, 0, 0, 95, 0,
10869
0, 0, 0, 0, 97, 98, 99, 100, 0, 0,
10870
0, 101, 0, 102, 974, 0, 0, 0, 0, 103,
10871
104, 0, 0, 0, 0, 0, 0, 56, 24, 0,
10872
25, 0, 0, 26, 253, 0, 0, 0, 27, 61,
10873
62, 0, 28, 0, 105, 303, 107, 108, 64, 0,
10874
0, 30, 0, 0, 0, 0, 0, 0, 32, 0,
10875
0, 0, 174, 33, 0, 71, 72, 34, 0, 0,
10876
0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
10877
0, 37, 74, 0, 0, 38, 0, 0, 76, 0,
10878
78, 0, 80, 39, 40, 254, 0, 41, 0, 0,
10879
0, 0, 0, 0, 86, 0, 0, 87, 88, 0,
10880
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10881
0, 0, 89, 90, 91, 92, 302, 0, 0, 0,
10882
729, 0, 0, 0, 95, 0, 0, 0, 0, 0,
10883
97, 98, 99, 100, 0, 0, 0, 101, 0, 102,
10884
0, 0, 0, 0, 0, 103, 104, 0, 0, 0,
10885
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10886
0, 0, 0, 0, 0, 0, 0, 0, 742, 0,
10887
105, 730, 107, 108, 0, 0, 56, 24, 0, 25,
10888
0, 731, 26, 253, 0, 0, 0, 27, 61, 62,
10889
0, 28, 0, 0, 24, 0, 25, 64, 0, 26,
10890
30, 0, 0, 0, 27, 0, 0, 32, 28, 0,
10891
0, 0, 33, 0, 71, 72, 34, 30, 0, 0,
10892
0, 0, 0, 0, 32, 0, 0, 0, 36, 33,
10893
37, 74, 0, 34, 38, 0, 0, 76, 0, 78,
10894
0, 80, 39, 40, 254, 36, 41, 37, 0, 0,
10895
0, 38, 0, 86, 0, 0, 87, 88, 0, 39,
10896
40, 0, 0, 41, 0, 0, 322, 0, 0, 0,
10897
0, 89, 90, 91, 92, 302, 0, 0, 0, 518,
10898
0, 0, 0, 95, 0, 0, 0, 0, 0, 97,
10899
98, 99, 100, 0, 0, 0, 101, 0, 102, 0,
10900
0, 0, 0, 0, 103, 104, 0, 0, 0, 0,
10901
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10902
0, 0, 0, 0, 0, 301, 0, 0, 0, 105,
10903
303, 107, 108, 56, 24, 0, 25, 0, 0, 26,
10904
253, 0, 0, 0, 27, 61, 62, 355, 28, 0,
10905
0, 24, 0, 25, 64, 0, 26, 30, 0, 0,
10906
0, 27, 0, 0, 32, 28, 0, 0, 0, 33,
10907
0, 71, 72, 34, 30, 0, 0, 0, 0, 0,
10908
0, 32, 0, 0, 0, 36, 33, 37, 74, 0,
10909
34, 38, 0, 0, 76, 0, 78, 0, 80, 39,
10910
40, 254, 36, 41, 37, 0, 0, 0, 38, 0,
10911
86, 0, 0, 87, 88, 0, 39, 40, 0, 0,
10912
41, 0, 0, 520, 0, 0, 0, 0, 89, 90,
10913
91, 92, 302, 0, 0, 0, 0, 0, 0, 0,
10914
95, 0, 0, 0, 0, 0, 97, 98, 99, 100,
10915
0, 0, 0, 101, 0, 102, 0, 0, 0, 0,
10916
0, 103, 104, 0, 0, 0, 0, 0, 0, 0,
10917
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10918
0, 0, 310, 0, 0, 0, 105, 303, 107, 108,
10919
56, 24, 0, 25, 0, 0, 26, 253, 0, 0,
10920
0, 27, 61, 62, 355, 28, 0, 0, 24, 0,
10921
25, 64, 0, 26, 30, 0, 0, 0, 27, 0,
10922
0, 32, 28, 0, 0, 0, 33, 0, 71, 72,
10923
34, 30, 0, 0, 0, 0, 0, 0, 32, 0,
10924
0, 0, 36, 33, 37, 74, 0, 34, 38, 0,
10925
0, 76, 0, 78, 0, 80, 39, 40, 254, 36,
10926
41, 37, 0, 0, 0, 38, 0, 86, 0, 0,
10927
87, 88, 0, 39, 40, 0, 0, 41, 0, 0,
10928
573, 0, 0, 0, 0, 89, 90, 91, 92, 302,
10929
0, 0, 0, 0, 0, 0, 0, 95, 0, 0,
10930
0, 0, 0, 97, 98, 99, 100, 0, 0, 0,
10931
101, 0, 102, 0, 0, 0, 0, 0, 103, 104,
10932
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10933
0, 0, 0, 0, 0, 0, 0, 0, 0, 591,
10934
0, 0, 0, 105, 303, 107, 108, 56, 24, 0,
10935
25, 0, 0, 26, 253, 0, 0, 0, 27, 61,
10936
62, 355, 28, 0, 0, 24, 0, 25, 64, 0,
10937
26, 30, 0, 0, 0, 27, 0, 0, 32, 28,
10938
0, 0, 0, 33, 0, 71, 72, 34, 30, 0,
10939
0, 0, 0, 0, 0, 32, 0, 0, 0, 36,
10940
33, 37, 74, 0, 34, 38, 0, 0, 76, 0,
10941
78, 0, 80, 39, 40, 254, 36, 41, 37, 0,
10942
0, 0, 38, 0, 86, 0, 0, 87, 88, 0,
10943
39, 40, 0, 0, 41, 0, 0, 757, 0, 0,
10944
0, 0, 89, 90, 91, 92, 93, 0, 0, 0,
10945
0, 0, 0, 0, 95, 0, 0, 0, 0, 0,
10946
97, 98, 99, 100, 0, 0, 0, 101, 0, 102,
10947
0, 0, 0, 0, 0, 103, 104, 0, 0, 0,
10948
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10949
0, 0, 0, 0, 0, 0, 820, 0, 0, 0,
10950
105, 106, 107, 108, 56, 24, 0, 25, 0, 0,
10951
26, 253, 0, 0, 0, 27, 61, 62, 355, 28,
10952
0, 0, 488, 0, 488, 64, 0, 488, 30, 0,
10953
0, 0, 488, 0, 0, 32, 488, 0, 0, 0,
10954
33, 0, 71, 72, 34, 488, 0, 0, 0, 0,
10955
0, 0, 488, 0, 0, 0, 36, 488, 37, 74,
10956
0, 488, 38, 0, 0, 76, 0, 78, 0, 80,
10957
39, 40, 254, 488, 41, 488, 0, 0, 0, 488,
10958
0, 86, 0, 0, 87, 88, 0, 488, 488, 0,
10959
0, 488, 0, 0, 488, 0, 0, 0, 0, 89,
10960
90, 91, 92, 302, 0, 0, 0, 0, 0, 0,
10961
0, 95, 0, 0, 0, 0, 0, 97, 98, 99,
10962
100, 0, 0, 0, 101, 0, 102, 0, 0, 0,
10963
0, 0, 103, 104, 0, 0, 0, 0, 0, 0,
10964
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10965
0, 0, 0, 1184, 0, 0, 0, 105, 303, 107,
10966
108, 56, 24, 0, 25, 0, 0, 26, 253, 0,
10967
0, 0, 27, 61, 62, 488, 28, 0, 0, 175,
10968
0, 175, 64, 0, 175, 30, 0, 0, 0, 175,
10969
0, 0, 32, 175, 0, 0, 0, 33, 0, 71,
10970
72, 34, 175, 0, 0, 0, 0, 0, 0, 175,
10971
0, 0, 0, 36, 175, 37, 74, 0, 175, 38,
10972
0, 0, 76, 0, 78, 0, 80, 39, 40, 254,
10973
175, 41, 175, 0, 0, 0, 175, 0, 86, 0,
10974
0, 87, 88, 0, 175, 175, 0, 0, 175, 0,
10975
0, 175, 0, 0, 0, 0, 89, 90, 91, 92,
10976
302, 0, 0, 0, 0, 0, 0, 0, 95, 0,
10977
0, 0, 0, 0, 97, 98, 99, 100, 0, 0,
10978
0, 101, 0, 102, 0, 0, 0, 0, 0, 103,
10979
104, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10980
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10981
608, 0, 0, 0, 105, 303, 107, 108, 608, 608,
10982
0, 608, 0, 0, 608, 608, 0, 0, 0, 608,
10983
608, 608, 175, 608, 0, 0, 0, 0, 0, 608,
10984
0, 0, 608, 0, 0, 0, 0, 0, 0, 608,
10985
0, 0, 0, 0, 608, 0, 608, 608, 608, 0,
10986
0, 0, 0, 0, 0, 0, 335, 0, 0, 0,
10987
608, 0, 608, 608, 0, 0, 608, 0, 0, 608,
10988
0, 608, 0, 608, 608, 608, 608, 0, 608, 0,
10989
0, 0, 0, 0, 0, 608, 0, 0, 608, 608,
10990
0, 0, 335, 0, 0, 0, 0, 0, 0, 0,
10991
0, 0, 0, 608, 608, 608, 608, 608, 0, 0,
10992
0, 0, 0, 0, 0, 608, 0, 0, 0, 0,
10993
0, 608, 608, 608, 608, 0, 0, 0, 608, 0,
10994
608, 0, 0, 0, 0, 0, 608, 608, 0, 0,
10995
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10996
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10997
0, 608, 608, 608, 608, 335, 335, 335, 335, 743,
10998
0, 0, 335, 335, 0, 0, 335, 335, 335, 335,
10999
335, 335, 335, 335, 335, 0, 335, 335, 335, 335,
11000
335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
11001
335, 335, 335, 335, 335, 335, 335, 335, 0, 48,
11002
0, 48, 0, 48, 335, 48, 0, 335, 48, 0,
11003
48, 48, 0, 48, 0, 48, 0, 48, 0, 48,
11004
48, 48, 48, 0, 0, 48, 48, 0, 0, 0,
11005
0, 48, 48, 48, 48, 48, 0, 0, 48, 0,
11006
48, 0, 48, 0, 48, 48, 0, 48, 48, 48,
11007
48, 0, 0, 48, 48, 48, 48, 0, 0, 48,
11008
48, 48, 0, 0, 0, 0, 0, 0, 48, 48,
11009
0, 48, 48, 0, 48, 48, 48, 0, 0, 0,
11010
48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11011
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11012
48, 0, 48, 48, 47, 0, 0, 0, 47, 0,
11013
47, 0, 0, 47, 0, 47, 47, 0, 47, 0,
11014
47, 0, 47, 0, 47, 47, 47, 47, 0, 0,
11015
47, 47, 0, 0, 0, 0, 47, 0, 47, 47,
11016
47, 0, 0, 47, 0, 47, 0, 47, 0, 0,
11017
47, 0, 47, 47, 47, 47, 48, 0, 0, 47,
11018
47, 47, 0, 0, 47, 47, 47, 0, 0, 0,
11019
0, 0, 0, 47, 47, 0, 47, 47, 0, 47,
11020
47, 47, 0, 0, 0, 47, 0, 0, 0, 0,
11021
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11022
0, 0, 0, 47, 0, 47, 0, 47, 0, 47,
11023
0, 80, 47, 0, 47, 47, 0, 47, 0, 47,
11024
47, 47, 0, 47, 47, 47, 47, 0, 0, 47,
11025
47, 0, 0, 0, 0, 47, 0, 47, 47, 47,
11026
0, 0, 47, 0, 47, 0, 47, 0, 0, 47,
11027
0, 47, 47, 47, 47, 0, 0, 0, 47, 47,
11028
47, 47, 0, 47, 47, 47, 0, 0, 0, 0,
11029
0, 0, 47, 47, 0, 47, 47, 0, 47, 47,
11030
47, 0, 0, 0, 47, 0, 0, 0, 0, 0,
11031
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11032
0, 0, 47, 0, 47, 0, 47, 0, 47, 0,
11033
81, 47, 0, 47, 47, 0, 47, 0, 47, 47,
11034
47, 0, 47, 47, 47, 47, 0, 0, 47, 47,
11035
0, 0, 0, 0, 47, 0, 47, 47, 47, 0,
11036
0, 47, 0, 47, 0, 47, 0, 0, 47, 0,
11037
47, 47, 47, 47, 0, 0, 0, 47, 47, 47,
11038
47, 0, 47, 47, 47, 0, 0, 0, 0, 0,
11039
0, 47, 47, 0, 47, 47, 0, 47, 47, 47,
11040
0, 0, 0, 47, 0, 0, 0, 0, 0, 0,
11041
0, 0, 0, 0, 0, 0, 48, 0, 0, 0,
11042
48, 0, 48, 47, 0, 48, 0, 48, 48, 214,
11043
48, 0, 48, 0, 48, 0, 48, 48, 48, 48,
11044
0, 0, 48, 48, 0, 0, 0, 0, 48, 0,
11045
48, 48, 48, 0, 0, 48, 0, 48, 0, 48,
11046
0, 0, 48, 0, 48, 48, 48, 48, 0, 0,
11047
0, 48, 48, 48, 0, 0, 48, 48, 48, 47,
11048
0, 0, 0, 0, 0, 48, 48, 0, 48, 48,
11049
0, 48, 48, 48, 0, 0, 0, 48, 0, 0,
11050
0, 0, 47, 0, 0, 0, 47, 0, 47, 0,
11051
0, 47, 0, 47, 47, 0, 47, 48, 47, 0,
11052
47, 0, 47, 47, 47, 47, 0, 0, 47, 47,
11053
0, 0, 48, 0, 47, 0, 47, 47, 47, 0,
11054
0, 47, 0, 47, 335, 47, 0, 0, 47, 0,
11055
47, 47, 47, 47, 0, 0, 0, 47, 47, 47,
11056
0, 0, 47, 47, 47, 0, 0, 335, 0, 0,
11057
0, 47, 47, 48, 47, 47, 0, 47, 47, 47,
11058
335, 0, 0, 47, 0, 335, 0, 0, 335, 0,
11059
335, 0, 335, 335, 335, 335, 0, 0, 0, 0,
11060
335, 0, 0, 47, 335, 0, 0, 0, 335, 215,
11061
0, 0, 0, 0, 0, 0, 335, 0, 0, 335,
11062
0, 335, 56, 24, 0, 25, 0, 0, 26, 253,
11063
0, 0, 0, 27, 61, 62, 0, 28, 0, 0,
11064
335, 0, 0, 64, 0, 335, 30, 0, 0, 0,
11065
0, 0, 335, 32, 265, 0, 335, 0, 33, 47,
11066
71, 72, 34, 0, 593, 0, 0, 0, 0, 335,
11067
0, 594, 0, 0, 36, 0, 37, 74, 0, 0,
11068
38, 0, 0, 76, 0, 78, 0, 80, 39, 40,
11069
254, 0, 41, 0, 0, 0, 0, 0, 0, 595,
11070
0, 335, 87, 88, 0, 0, 0, 0, 0, 0,
11071
0, 0, 0, 0, 0, 0, 0, 89, 90, 91,
11072
92, 93, 0, 0, 0, 0, 0, 0, 0, 95,
11073
927, 0, 596, 0, 0, 97, 98, 99, 100, 0,
11074
0, 0, 101, 0, 102, 0, 0, 0, 0, 0,
11075
103, 104, 0, 0, 0, 0, 0, 0, 56, 24,
11076
0, 25, 0, 0, 26, 253, 0, 0, 0, 27,
11077
61, 62, 0, 28, 0, 105, 106, 107, 108, 64,
11078
0, 0, 30, 0, 0, 0, 0, 0, 0, 32,
11079
0, 0, 0, 0, 33, 0, 71, 72, 34, 0,
11080
593, 0, 0, 0, 0, 0, 0, 594, 0, 0,
11081
36, 0, 37, 74, 0, 0, 38, 0, 0, 76,
11082
0, 78, 0, 80, 39, 40, 254, 0, 41, 0,
11083
0, 0, 0, 0, 0, 595, 0, 0, 87, 88,
11084
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11085
0, 0, 0, 89, 90, 91, 92, 93, 0, 0,
11086
0, 0, 0, 0, 0, 95, 0, 0, 596, 0,
11087
0, 97, 98, 99, 100, 0, 0, 0, 101, 0,
11088
102, 0, 0, 0, 0, 0, 103, 104, 0, 0,
11089
0, 0, 0, 0, 56, 24, 0, 25, 0, 0,
11090
26, 253, 0, 0, 0, 27, 61, 62, 0, 28,
11091
0, 105, 106, 107, 108, 64, 0, 0, 30, 0,
11092
0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
11093
33, 0, 71, 72, 34, 0, 0, 0, 0, 0,
11094
0, 0, 0, 0, 0, 0, 36, 0, 37, 74,
11095
0, 0, 38, 0, 0, 76, 0, 78, 0, 80,
11096
39, 40, 254, 0, 41, 0, 0, 84, 0, 0,
11097
0, 86, 0, 0, 87, 88, 0, 0, 0, 0,
11098
0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
11099
90, 91, 92, 302, 0, 0, 0, 0, 0, 0,
11100
0, 95, 0, 0, 0, 0, 0, 97, 98, 99,
11101
100, 0, 0, 0, 101, 0, 102, 0, 0, 0,
11102
0, 0, 103, 104, 0, 0, 0, 0, 0, 0,
11103
56, 24, 0, 25, 0, 0, 26, 253, 0, 0,
11104
0, 27, 61, 62, 0, 28, 0, 105, 303, 107,
11105
108, 64, 0, 0, 30, 0, 0, 0, 0, 0,
11106
0, 32, 0, 0, 0, 0, 33, 0, 71, 72,
11107
34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11108
0, 0, 36, 0, 37, 74, 0, 0, 38, 0,
11109
0, 76, 0, 78, 0, 80, 39, 40, 254, 0,
11110
41, 0, 0, 0, 0, 0, 0, 86, 0, 0,
11111
87, 88, 0, 0, 0, 0, 0, 0, 0, 0,
11112
0, 0, 0, 0, 0, 89, 90, 91, 92, 302,
11113
0, 0, 0, 0, 886, 0, 0, 95, 0, 0,
11114
0, 0, 0, 97, 98, 99, 100, 0, 0, 0,
11115
101, 0, 102, 0, 0, 0, 0, 0, 103, 104,
11116
0, 0, 0, 0, 0, 0, 56, 24, 0, 25,
11117
0, 0, 26, 253, 0, 0, 0, 27, 61, 62,
11118
0, 28, 0, 105, 303, 107, 108, 64, 0, 0,
11119
30, 0, 0, 0, 0, 0, 0, 32, 0, 0,
11120
0, 0, 33, 0, 71, 72, 34, 0, 0, 0,
11121
0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
11122
37, 74, 0, 0, 38, 0, 0, 76, 0, 78,
11123
0, 80, 39, 40, 254, 0, 41, 0, 0, 0,
11124
0, 0, 0, 86, 0, 0, 87, 88, 0, 0,
11125
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11126
0, 89, 90, 91, 92, 302, 0, 0, 0, 518,
11127
0, 0, 0, 95, 0, 0, 0, 0, 0, 97,
11128
98, 99, 100, 0, 0, 0, 101, 0, 102, 0,
11129
0, 0, 0, 0, 103, 104, 0, 0, 0, 0,
11130
0, 0, 56, 24, 0, 25, 0, 0, 26, 253,
11131
0, 0, 0, 27, 61, 62, 0, 28, 0, 105,
11132
303, 107, 108, 64, 0, 0, 30, 0, 0, 0,
11133
0, 0, 0, 32, 0, 0, 0, 0, 33, 0,
11134
71, 72, 34, 0, 0, 0, 0, 0, 0, 0,
11135
0, 0, 0, 0, 36, 0, 37, 74, 0, 0,
11136
38, 0, 0, 76, 0, 78, 0, 80, 39, 40,
11137
254, 0, 41, 0, 0, 0, 0, 0, 0, 86,
11138
0, 0, 87, 88, 0, 0, 0, 0, 0, 0,
11139
0, 0, 0, 0, 0, 0, 0, 89, 90, 91,
11140
92, 302, 0, 0, 0, 512, 0, 0, 0, 95,
11141
0, 0, 0, 0, 0, 97, 98, 99, 100, 0,
11142
0, 0, 101, 0, 102, 0, 0, 0, 0, 0,
11143
103, 104, 0, 0, 0, 0, 0, 0, 56, 24,
11144
0, 25, 0, 0, 26, 253, 0, 0, 0, 27,
11145
61, 62, 0, 28, 0, 105, 303, 107, 108, 64,
11146
0, 0, 30, 0, 0, 0, 0, 0, 0, 32,
11147
0, 0, 0, 0, 33, 0, 71, 72, 34, 0,
11148
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11149
36, 0, 37, 74, 0, 0, 38, 0, 0, 76,
11150
0, 78, 0, 80, 39, 40, 254, 0, 41, 0,
11151
0, 0, 0, 0, 0, 86, 0, 0, 87, 88,
11152
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11153
0, 0, 0, 89, 90, 91, 92, 302, 0, 0,
11154
0, 0, 0, 0, 0, 95, 0, 0, 0, 0,
11155
0, 97, 98, 99, 100, 0, 0, 0, 101, 0,
11156
102, 0, 0, 0, 0, 0, 103, 104, 0, 0,
11157
0, 0, 0, 0, 56, 24, 0, 25, 0, 0,
11158
26, 253, 0, 0, 0, 27, 61, 62, 0, 28,
11159
0, 105, 303, 107, 108, 64, 0, 0, 30, 0,
11160
0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
11161
33, 0, 71, 72, 34, 0, 0, 0, 0, 0,
11162
0, 0, 0, 0, 0, 0, 36, 0, 37, 74,
11163
0, 0, 38, 0, 0, 76, 0, 78, 0, 80,
11164
39, 40, 254, 0, 41, 0, 0, 0, 0, 0,
11165
0, 86, 0, 0, 87, 88, 0, 0, 0, 0,
11166
0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
11167
90, 91, 92, 93, 0, 0, 0, 0, 0, 0,
11168
0, 95, 0, 0, 0, 0, 0, 97, 98, 99,
11169
100, 0, 0, 0, 101, 0, 102, 0, 0, 0,
11170
0, 0, 103, 104, 0, 0, 0, 0, 0, 0,
11171
56, 24, 0, 25, 0, 0, 26, 253, 0, 0,
11172
0, 27, 61, 62, 0, 28, 0, 105, 106, 107,
11173
108, 64, 0, 0, 30, 0, 0, 0, 0, 0,
11174
0, 32, 0, 0, 0, 0, 33, 0, 71, 72,
11175
34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11176
0, 0, 36, 0, 37, 74, 0, 0, 38, 0,
11177
0, 76, 0, 78, 0, 80, 39, 40, 254, 0,
11178
41, 0, 0, 0, 0, 0, 0, 86, 0, 0,
11179
87, 88, 0, 0, 0, 0, 0, 0, 0, 0,
11180
0, 0, 0, 0, 0, 89, 90, 91, 92, 93,
11181
0, 0, 0, 0, 0, 0, 0, 95, 0, 0,
11182
0, 0, 0, 97, 98, 99, 100, 0, 0, 0,
11183
101, 0, 102, 0, 0, 0, 0, 0, 103, 104,
11184
0, 0, 0, 0, 0, 0, 77, 77, 0, 77,
11185
0, 0, 77, 77, 0, 0, 0, 77, 77, 77,
11186
0, 77, 0, 105, 1041, 107, 108, 77, 0, 0,
11187
77, 0, 0, 0, 0, 0, 0, 77, 0, 0,
11188
0, 0, 77, 0, 77, 77, 77, 0, 0, 0,
11189
0, 0, 0, 0, 0, 0, 0, 0, 77, 0,
11190
77, 77, 0, 0, 77, 0, 0, 77, 0, 77,
11191
0, 77, 77, 77, 77, 0, 77, 0, 0, 0,
11192
0, 0, 0, 77, 0, 0, 77, 77, 0, 0,
11193
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11194
0, 77, 77, 77, 77, 77, 0, 0, 0, 0,
11195
0, 0, 0, 77, 0, 0, 0, 0, 0, 77,
11196
77, 77, 77, 0, 0, 0, 77, 0, 77, 0,
11197
0, 0, 0, 0, 77, 77, 0, 0, 0, 0,
11198
0, 0, 135, 135, 0, 135, 0, 0, 135, 135,
11199
0, 0, 0, 135, 135, 135, 0, 135, 0, 77,
11200
77, 77, 77, 135, 0, 0, 135, 0, 0, 0,
11201
0, 0, 0, 135, 0, 0, 0, 0, 135, 0,
11202
135, 135, 135, 0, 0, 0, 0, 0, 0, 0,
11203
0, 0, 0, 0, 135, 0, 135, 135, 0, 0,
11204
135, 0, 0, 135, 0, 135, 0, 135, 135, 135,
11205
135, 0, 135, 0, 0, 0, 0, 0, 0, 135,
11206
0, 0, 135, 135, 0, 0, 0, 0, 0, 0,
11207
0, 0, 0, 0, 0, 0, 0, 135, 135, 135,
11208
135, 135, 0, 0, 0, 0, 0, 0, 0, 135,
11209
0, 0, 0, 0, 0, 135, 135, 135, 135, 0,
11210
0, 0, 135, 0, 135, 0, 0, 0, 0, 0,
11211
135, 135, 0, 0, 0, 0, 0, 0, 56, 24,
11212
0, 25, 0, 0, 26, 253, 0, 0, 0, 27,
11213
61, 62, 0, 28, 0, 135, 135, 135, 135, 64,
11214
0, 0, 30, 0, 0, 0, 0, 0, 0, 32,
11215
0, 27, 0, 0, 33, 0, 71, 72, 34, 0,
11216
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11217
36, 0, 37, 74, 27, 0, 38, 0, 0, 76,
11218
0, 78, 0, 80, 39, 40, 254, 27, 41, 0,
11219
0, 0, 27, 0, 0, 0, 0, 27, 0, 27,
11220
27, 27, 27, 0, 0, 27, 0, 27, 0, 0,
11221
0, 27, 0, 89, 90, 91, 255, 302, 0, 0,
11222
0, 0, 0, 27, 0, 95, 27, 0, 27, 0,
11223
0, 97, 98, 99, 100, 0, 0, 0, 101, 0,
11224
102, 0, 0, 0, 0, 0, 103, 104, 0, 0,
11225
0, 0, 27, 0, 0, 0, 0, 0, 27, 27,
11226
0, 0, 0, 0, 0, 0, 641, 0, 641, 0,
11227
641, 105, 256, 641, 108, 641, 641, 0, 641, 0,
11228
641, 0, 641, 0, 641, 641, 641, 0, 0, 0,
11229
641, 641, 0, 0, 0, 0, 641, 0, 641, 641,
11230
0, 0, 0, 641, 0, 0, 0, 641, 0, 0,
11231
0, 0, 0, 0, 0, 0, 0, 0, 641, 641,
11232
0, 641, 0, 0, 0, 641, 641, 0, 0, 0,
11233
0, 0, 0, 641, 641, 56, 24, 641, 25, 0,
11234
641, 26, 253, 0, 0, 641, 27, 61, 62, 0,
11235
28, 0, 0, 0, 0, 0, 64, 0, 0, 30,
11236
0, 0, 0, 0, 0, 0, 32, 641, 641, 0,
11237
0, 33, 0, 71, 72, 34, 0, 0, 0, 0,
11238
641, 0, 0, 0, 0, 0, 0, 36, 0, 37,
11239
74, 0, 0, 38, 0, 0, 76, 0, 78, 0,
11240
80, 39, 40, 254, 0, 41, 0, 0, 84, 0,
11241
0, 0, 0, 0, 0, 24, 0, 25, 0, 0,
11242
26, 641, 1228, 0, 0, 27, 0, 0, 0, 28,
11243
89, 90, 91, 255, 0, 0, 0, 0, 30, 640,
11244
0, 640, 95, 0, 640, 32, 640, 640, 0, 640,
11245
33, 640, 1229, 640, 34, 640, 640, 640, 0, 0,
11246
0, 640, 640, 0, 0, 0, 36, 640, 37, 640,
11247
640, 0, 38, 1230, 640, 0, 0, 0, 640, 0,
11248
39, 40, 0, 0, 41, 0, 0, 322, 105, 256,
11249
640, 0, 640, 0, 0, 0, 640, 640, 0, 0,
11250
0, 0, 0, 0, 640, 640, 0, 640, 640, 640,
11251
0, 640, 640, 0, 640, 640, 640, 640, 0, 640,
11252
0, 640, 0, 640, 640, 640, 0, 0, 0, 640,
11253
640, 0, 0, 0, 0, 640, 0, 640, 640, 0,
11254
0, 0, 640, 0, 0, 0, 640, 0, 0, 0,
11255
0, 640, 0, 0, 0, 0, 0, 0, 640, 0,
11256
640, 0, 0, 0, 640, 640, 0, 0, 355, 0,
11257
0, 0, 640, 640, 0, 0, 640, 0, 0, 640,
11258
0, 24, 0, 25, 640, 0, 26, 0, 0, 1290,
11259
0, 27, 640, 686, 0, 28, 0, 687, 1291, 1292,
11260
0, 0, 0, 1293, 30, 0, 0, 0, 0, 1294,
11261
0, 32, 0, 24, 0, 25, 33, 0, 26, 0,
11262
34, 1290, 0, 27, 0, 686, 0, 28, 0, 687,
11263
1291, 1292, 36, 0, 37, 1293, 30, 0, 38, 0,
11264
0, 1294, 0, 32, 0, 0, 39, 40, 33, 0,
11265
41, 0, 34, 1295, 0, 0, 0, 47, 1296, 47,
11266
640, 0, 47, 0, 36, 0, 37, 47, 0, 0,
11267
38, 47, 0, 0, 0, 0, 0, 0, 39, 40,
11268
47, 0, 41, 0, 0, 1295, 0, 47, 0, 47,
11269
1296, 47, 47, 1297, 47, 0, 47, 0, 47, 47,
11270
47, 0, 0, 47, 0, 47, 0, 0, 47, 0,
11271
47, 0, 47, 0, 47, 0, 0, 47, 0, 47,
11272
0, 0, 47, 47, 47, 0, 47, 0, 47, 47,
11273
47, 0, 47, 48, 1298, 48, 0, 47, 48, 0,
11274
47, 0, 47, 48, 0, 0, 47, 48, 0, 47,
11275
0, 0, 0, 0, 47, 47, 48, 0, 47, 0,
11276
0, 47, 0, 48, 154, 47, 1298, 47, 48, 0,
11277
47, 0, 48, 0, 48, 47, 48, 0, 0, 47,
11278
0, 48, 0, 0, 48, 0, 48, 0, 47, 0,
11279
48, 0, 0, 48, 154, 47, 0, 0, 48, 48,
11280
47, 0, 48, 0, 47, 48, 47, 0, 47, 24,
11281
47, 25, 0, 47, 26, 0, 47, 0, 47, 27,
11282
0, 0, 47, 28, 0, 47, 0, 0, 0, 0,
11283
47, 47, 30, 0, 47, 0, 0, 47, 0, 32,
11284
0, 0, 47, 0, 33, 0, 0, 0, 34, 0,
11285
570, 0, 0, 0, 24, 0, 25, 571, 0, 26,
11286
36, 0, 37, 0, 27, 0, 38, 0, 28, 572,
11287
0, 0, 29, 0, 39, 40, 0, 30, 41, 0,
11288
0, 573, 31, 0, 32, 0, 48, 0, 0, 33,
11289
0, 0, 0, 34, 35, 0, 0, 0, 24, 0,
11290
25, 0, 0, 26, 0, 36, 0, 37, 27, 0,
11291
0, 38, 28, 0, 0, 0, 0, 0, 47, 39,
11292
40, 30, 174, 41, 174, 0, 0, 174, 32, 0,
11293
0, 0, 174, 33, 0, 0, 174, 34, 0, 0,
11294
0, 0, 0, 0, 0, 174, 0, 0, 0, 36,
11295
0, 37, 174, 0, 0, 38, 0, 174, 0, 0,
11296
0, 174, 574, 39, 40, 0, 0, 41, 0, 0,
11297
322, 0, 0, 174, 0, 174, 184, 0, 184, 174,
11298
0, 184, 0, 0, 0, 0, 184, 174, 174, 0,
11299
184, 174, 0, 0, 174, 0, 291, 0, 0, 184,
11300
0, 0, 0, 0, 0, 0, 184, 42, 0, 0,
11301
0, 184, 0, 0, 33, 184, 0, 0, 0, 0,
11302
0, 0, 0, 0, 0, 33, 0, 184, 0, 184,
11303
33, 0, 0, 184, 33, 0, 0, 33, 0, 0,
11304
0, 184, 184, 0, 0, 184, 0, 0, 184, 33,
11305
33, 323, 0, 0, 33, 33, 0, 0, 0, 0,
11306
33, 0, 33, 33, 33, 33, 0, 0, 0, 0,
11307
33, 0, 0, 0, 33, 174, 33, 0, 0, 0,
11308
0, 0, 0, 0, 0, 0, 33, 0, 33, 33,
11309
31, 33, 0, 0, 0, 33, 0, 0, 0, 0,
11310
0, 31, 0, 0, 0, 0, 31, 0, 0, 0,
11311
31, 0, 0, 31, 0, 33, 0, 0, 0, 0,
11312
0, 33, 33, 0, 0, 31, 31, 0, 0, 184,
11313
31, 31, 27, 0, 27, 0, 31, 0, 31, 31,
11314
31, 31, 0, 0, 0, 0, 31, 0, 0, 0,
11315
31, 0, 31, 0, 0, 27, 0, 0, 0, 0,
11316
0, 0, 31, 0, 0, 31, 0, 31, 27, 0,
11317
0, 31, 0, 27, 0, 0, 0, 0, 27, 0,
11318
27, 27, 27, 27, 0, 0, 0, 0, 27, 0,
11319
0, 31, 27, 0, 0, 47, 0, 31, 31, 0,
11320
0, 0, 0, 0, 27, 0, 47, 27, 0, 27,
11321
0, 47, 0, 0, 0, 47, 0, 0, 47, 0,
11322
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11323
47, 47, 0, 27, 0, 47, 47, 0, 47, 27,
11324
27, 47, 0, 47, 47, 47, 47, 0, 0, 47,
11325
0, 47, 0, 0, 47, 47, 0, 47, 47, 0,
11326
0, 47, 0, 0, 0, 0, 0, 47, 0, 0,
11327
47, 0, 47, 47, 47, 0, 47, 0, 47, 47,
11328
47, 0, 0, 0, 47, 0, 47, 47, 47, 47,
11329
0, 0, 0, 0, 47, 0, 47, 0, 47, 0,
11330
47, 0, 35, 47, 0, 0, 0, 0, 0, 0,
11331
47, 0, 0, 47, 0, 47, 47, 0, 47, 47,
11332
0, 47, 0, 0, 0, 0, 47, 0, 47, 47,
11333
47, 47, 0, 0, 0, 0, 47, 0, 0, 47,
11334
47, 47, 0, 0, 0, 36, 0, 0, 0, 0,
11335
0, 0, 47, 0, 47, 47, 47, 47, 0, 47,
11336
0, 0, 0, 0, 47, 0, 47, 47, 47, 47,
11337
0, 0, 0, 0, 47, 0, 0, 0, 47, 47,
11338
0, 47, 0, 47, 47, 0, 0, 196, 0, 0,
11339
47, 0, 47, 47, 47, 47, 47, 47, 0, 0,
11340
0, 0, 47, 0, 47, 47, 47, 47, 0, 0,
11341
47, 0, 47, 0, 0, 0, 47, 47, 0, 47,
11342
0, 47, 47, 0, 0, 198, 0, 0, 47, 0,
11343
47, 47, 47, 47, 47, 47, 0, 0, 0, 0,
11344
47, 0, 47, 47, 47, 47, 0, 0, 0, 0,
11345
47, 0, 0, 0, 47, 47, 0, 47, 0, 0,
11346
0, 0, 453, 299, 0, 0, 47, 0, 47, 47,
11347
0, 47, 0, 47, 0, 0, 0, 0, 47, 0,
11348
47, 47, 47, 47, 0, 454, 47, 0, 47, 0,
11349
0, 0, 47, 0, 453, 47, 0, 0, 455, 0,
11350
0, 300, 456, 457, 47, 0, 0, 47, 458, 47,
11351
459, 460, 461, 462, 0, 0, 0, 454, 463, 0,
11352
0, 0, 464, 0, 0, 0, 0, 0, 0, 0,
11353
455, 0, 0, 47, 465, 457, 0, 466, 0, 467,
11354
458, 0, 459, 460, 461, 462, 0, 0, 0, 0,
11355
463, 0, 0, 0, 464, 0, 0, 0, 0, 0,
11356
0, 0, 0, 468, 0, 0, 465, 0, 0, 466,
11357
0, 467, 0, 0, 0, 0, 0, 0, 0, 0,
11358
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11359
0, 0, 0, 0, 0, 468,
11361
protected static readonly short [] yyCheck = { 17,
11362
516, 4, 51, 17, 300, 234, 6, 51, 18, 189,
11363
247, 17, 518, 17, 354, 470, 289, 188, 232, 299,
11364
84, 68, 20, 492, 339, 59, 321, 157, 559, 332,
11365
354, 59, 780, 296, 298, 747, 645, 646, 576, 934,
11366
87, 88, 87, 88, 58, 92, 1145, 1146, 47, 113,
11367
1110, 115, 191, 584, 0, 73, 721, 77, 723, 77,
11368
256, 1235, 17, 108, 328, 79, 256, 81, 939, 256,
11369
113, 256, 115, 256, 256, 256, 325, 95, 268, 1253,
11370
256, 256, 363, 1193, 256, 277, 282, 372, 369, 374,
11371
256, 256, 335, 256, 256, 1194, 368, 256, 17, 256,
11372
17, 17, 767, 1213, 1219, 770, 256, 17, 256, 256,
11373
268, 1442, 1443, 268, 376, 371, 382, 383, 314, 418,
11374
394, 395, 370, 371, 414, 172, 374, 665, 17, 428,
11375
396, 397, 369, 17, 17, 0, 1105, 418, 428, 157,
11376
189, 17, 17, 157, 429, 189, 418, 411, 17, 1264,
11377
17, 157, 339, 157, 199, 200, 257, 344, 256, 346,
11378
343, 294, 349, 350, 420, 352, 353, 429, 1499, 418,
11379
59, 363, 256, 306, 63, 256, 256, 268, 363, 256,
11380
789, 256, 358, 232, 323, 276, 429, 374, 232, 256,
11381
256, 256, 532, 340, 1304, 1066, 0, 372, 1308, 381,
11382
247, 367, 157, 369, 363, 371, 435, 816, 391, 512,
11383
368, 370, 259, 372, 554, 374, 355, 262, 724, 381,
11384
434, 360, 418, 1333, 223, 375, 418, 419, 228, 247,
11385
554, 414, 422, 418, 252, 515, 576, 418, 157, 1413,
11386
157, 157, 429, 288, 559, 428, 418, 157, 424, 425,
11387
426, 427, 286, 418, 420, 418, 320, 423, 286, 418,
11388
324, 418, 296, 308, 422, 329, 1440, 422, 157, 584,
11389
418, 289, 363, 157, 157, 1023, 294, 295, 1452, 326,
11390
1454, 157, 157, 381, 331, 418, 329, 367, 157, 317,
11391
157, 309, 376, 256, 375, 256, 376, 315, 375, 317,
11392
375, 440, 316, 321, 370, 370, 351, 374, 374, 374,
11393
910, 257, 256, 256, 256, 333, 334, 256, 256, 358,
11394
256, 372, 369, 370, 372, 665, 256, 418, 1040, 867,
11395
372, 996, 941, 339, 943, 339, 475, 946, 358, 368,
11396
358, 1089, 666, 388, 389, 256, 686, 1407, 325, 256,
11397
262, 369, 370, 368, 363, 368, 374, 375, 376, 377,
11398
378, 379, 380, 381, 382, 383, 384, 357, 263, 416,
11399
417, 416, 417, 420, 1473, 256, 1345, 256, 429, 374,
11400
257, 429, 256, 373, 256, 434, 298, 429, 406, 374,
11401
434, 256, 20, 367, 900, 444, 386, 286, 1293, 341,
11402
429, 363, 376, 418, 1503, 1374, 1375, 368, 1377, 418,
11403
879, 374, 294, 374, 709, 1015, 429, 1017, 368, 1388,
11404
315, 416, 1391, 1032, 368, 1034, 1035, 369, 317, 372,
11405
374, 416, 371, 662, 372, 574, 372, 1406, 436, 369,
11406
484, 418, 441, 442, 491, 256, 493, 586, 447, 588,
11407
339, 590, 450, 257, 794, 1120, 418, 694, 369, 87,
11408
88, 1430, 1127, 726, 492, 372, 378, 379, 272, 516,
11409
794, 485, 701, 277, 339, 357, 256, 281, 277, 429,
11410
108, 363, 281, 266, 990, 532, 1151, 369, 369, 536,
11411
372, 373, 296, 372, 263, 369, 514, 369, 516, 266,
11412
518, 372, 367, 343, 386, 368, 371, 368, 373, 374,
11413
375, 376, 368, 376, 528, 529, 381, 656, 368, 323,
11414
341, 256, 1131, 401, 542, 306, 370, 867, 575, 547,
11415
374, 314, 313, 294, 532, 413, 418, 676, 342, 421,
11416
1205, 381, 866, 342, 363, 306, 315, 314, 369, 256,
11417
369, 391, 566, 559, 1163, 559, 367, 363, 429, 294,
11418
371, 256, 373, 374, 256, 376, 429, 256, 429, 363,
11419
381, 199, 200, 429, 414, 593, 594, 814, 584, 429,
11420
584, 343, 369, 335, 864, 256, 373, 367, 428, 1311,
11421
893, 371, 375, 373, 374, 642, 376, 644, 1207, 418,
11422
343, 381, 1324, 492, 415, 735, 653, 372, 375, 21,
11423
367, 1219, 418, 305, 371, 1224, 305, 418, 391, 381,
11424
1219, 1343, 640, 305, 418, 1156, 272, 645, 646, 391,
11425
648, 277, 339, 897, 262, 281, 423, 344, 934, 346,
11426
52, 414, 349, 350, 339, 352, 353, 694, 391, 344,
11427
296, 346, 414, 418, 349, 350, 1264, 352, 353, 371,
11428
288, 373, 256, 420, 711, 1264, 428, 374, 339, 272,
11429
559, 414, 300, 344, 357, 346, 694, 323, 349, 350,
11430
308, 352, 353, 1152, 1219, 428, 369, 687, 272, 372,
11431
373, 709, 726, 296, 758, 584, 342, 256, 993, 1219,
11432
256, 305, 1219, 386, 272, 1219, 724, 752, 264, 339,
11433
269, 729, 296, 339, 761, 373, 373, 414, 1219, 376,
11434
323, 958, 429, 351, 256, 1005, 354, 286, 296, 1264,
11435
775, 428, 390, 391, 429, 369, 357, 367, 421, 323,
11436
754, 367, 363, 357, 1264, 790, 793, 1264, 369, 376,
11437
1264, 372, 373, 374, 772, 323, 774, 888, 429, 256,
11438
388, 389, 809, 1264, 778, 386, 780, 814, 899, 325,
11439
909, 789, 386, 367, 368, 369, 376, 371, 372, 950,
11440
374, 368, 376, 381, 269, 1218, 1219, 374, 416, 417,
11441
371, 809, 841, 391, 381, 367, 814, 418, 816, 357,
11442
818, 286, 391, 381, 1077, 256, 1239, 339, 436, 1124,
11443
398, 399, 344, 391, 346, 373, 414, 349, 350, 357,
11444
352, 353, 450, 868, 418, 414, 420, 871, 386, 423,
11445
1110, 1264, 721, 1266, 723, 373, 414, 368, 369, 428,
11446
1113, 1156, 339, 386, 862, 991, 864, 344, 386, 346,
11447
428, 849, 349, 350, 854, 352, 353, 904, 418, 906,
11448
306, 371, 308, 881, 306, 912, 1103, 313, 428, 1324,
11449
888, 313, 339, 1019, 1189, 1014, 1149, 367, 767, 325,
11450
898, 770, 900, 325, 373, 418, 376, 376, 339, 1395,
11451
937, 369, 371, 344, 373, 346, 256, 429, 349, 350,
11452
367, 352, 353, 381, 532, 379, 367, 368, 367, 376,
11453
367, 958, 384, 392, 393, 376, 368, 376, 963, 376,
11454
367, 368, 367, 941, 376, 943, 554, 974, 946, 376,
11455
368, 376, 429, 412, 1274, 256, 374, 385, 376, 368,
11456
958, 420, 1282, 372, 423, 374, 368, 376, 576, 389,
11457
372, 1457, 1166, 1226, 376, 370, 400, 955, 368, 374,
11458
1140, 371, 368, 373, 374, 965, 372, 967, 374, 969,
11459
376, 373, 990, 368, 376, 993, 370, 390, 429, 339,
11460
374, 376, 392, 393, 344, 369, 346, 370, 1494, 349,
11461
350, 374, 352, 353, 418, 372, 374, 1293, 376, 376,
11462
1516, 1517, 412, 381, 261, 354, 355, 1236, 372, 1023,
11463
420, 372, 376, 423, 1032, 376, 1034, 1035, 339, 1037,
11464
372, 371, 374, 344, 376, 346, 415, 284, 349, 350,
11465
6, 352, 353, 418, 370, 370, 372, 665, 374, 374,
11466
297, 17, 372, 256, 1047, 302, 376, 370, 305, 372,
11467
307, 374, 309, 310, 311, 312, 1103, 277, 686, 1077,
11468
317, 1105, 370, 371, 321, 373, 374, 375, 325, 429,
11469
386, 387, 388, 1091, 1092, 1089, 333, 369, 418, 336,
11470
372, 338, 371, 59, 373, 1103, 367, 63, 369, 354,
11471
355, 1140, 1110, 1142, 1104, 1113, 1140, 394, 395, 396,
11472
397, 372, 372, 374, 374, 362, 370, 996, 372, 367,
11473
368, 87, 88, 1131, 374, 376, 376, 1166, 1124, 1137,
11474
1124, 370, 1166, 372, 752, 376, 370, 1407, 372, 367,
11475
367, 1149, 108, 371, 373, 373, 374, 370, 376, 372,
11476
372, 294, 374, 381, 294, 1163, 1164, 775, 1197, 372,
11477
1156, 374, 1156, 370, 370, 372, 372, 364, 365, 1298,
11478
343, 418, 790, 374, 376, 376, 794, 368, 369, 1218,
11479
1219, 374, 1217, 376, 1218, 372, 374, 415, 376, 414,
11480
415, 157, 1321, 1189, 374, 1189, 376, 372, 373, 1207,
11481
1239, 364, 365, 1108, 1109, 1239, 1335, 392, 393, 398,
11482
399, 376, 376, 418, 414, 356, 1224, 369, 1226, 418,
11483
59, 375, 418, 372, 1353, 1264, 1355, 1266, 372, 376,
11484
1267, 849, 1266, 199, 200, 368, 374, 372, 1273, 294,
11485
372, 1120, 294, 374, 372, 1124, 372, 374, 1127, 867,
11486
868, 372, 376, 371, 93, 1290, 1291, 256, 97, 98,
11487
99, 100, 101, 102, 103, 104, 374, 294, 294, 381,
11488
372, 374, 1151, 373, 1278, 373, 375, 1156, 1313, 61,
11489
374, 1316, 418, 65, 66, 67, 381, 69, 70, 372,
11490
374, 372, 74, 75, 374, 374, 262, 374, 423, 81,
11491
429, 83, 374, 85, 367, 421, 372, 372, 90, 91,
11492
1189, 1345, 373, 343, 374, 294, 934, 294, 374, 370,
11493
286, 418, 288, 371, 367, 1329, 1205, 418, 375, 256,
11494
256, 256, 114, 374, 300, 256, 381, 955, 280, 256,
11495
1374, 1375, 308, 1377, 367, 963, 1385, 368, 372, 343,
11496
368, 317, 371, 371, 1388, 373, 374, 1391, 351, 370,
11497
376, 374, 374, 1402, 372, 370, 376, 381, 372, 372,
11498
423, 347, 1406, 339, 392, 393, 1415, 1416, 367, 381,
11499
381, 256, 256, 347, 372, 351, 372, 1395, 354, 1393,
11500
368, 376, 374, 339, 412, 370, 1430, 370, 370, 1407,
11501
348, 375, 420, 1442, 1443, 423, 368, 372, 348, 418,
11502
368, 374, 418, 372, 367, 376, 1424, 367, 261, 368,
11503
367, 381, 388, 389, 356, 376, 371, 368, 337, 93,
11504
374, 368, 368, 97, 98, 99, 100, 101, 102, 103,
11505
104, 284, 372, 305, 367, 369, 374, 286, 418, 1457,
11506
416, 417, 371, 371, 297, 371, 376, 296, 371, 302,
11507
1499, 418, 305, 302, 307, 373, 309, 310, 311, 312,
11508
381, 371, 254, 367, 317, 257, 371, 381, 321, 1516,
11509
1517, 369, 325, 418, 418, 418, 1494, 371, 373, 372,
11510
333, 372, 374, 336, 373, 338, 1500, 1501, 374, 256,
11511
372, 374, 372, 1507, 1508, 376, 418, 370, 1516, 1517,
11512
376, 418, 418, 372, 381, 376, 298, 418, 376, 362,
11513
372, 367, 372, 368, 381, 1143, 492, 368, 370, 256,
11514
315, 313, 372, 263, 373, 371, 261, 371, 368, 372,
11515
372, 0, 0, 367, 372, 376, 385, 386, 387, 368,
11516
0, 390, 391, 368, 372, 372, 370, 367, 418, 284,
11517
368, 368, 0, 372, 370, 367, 532, 418, 368, 418,
11518
373, 376, 297, 372, 368, 418, 372, 302, 376, 376,
11519
372, 1199, 307, 376, 309, 310, 311, 312, 554, 368,
11520
367, 372, 317, 559, 368, 368, 321, 372, 376, 1217,
11521
367, 315, 263, 50, 376, 376, 376, 376, 333, 12,
11522
576, 336, 339, 338, 376, 376, 376, 344, 584, 346,
11523
347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
11524
376, 5, 955, 849, 1266, 1447, 1103, 362, 302, 364,
11525
365, 368, 1103, 370, 1239, 372, 1410, 374, 375, 376,
11526
686, 1427, 1398, 1463, 1393, 1273, 1274, 1299, 700, 871,
11527
871, 1311, 871, 390, 1282, 0, 1508, 1264, 332, 1252,
11528
1330, 866, 1290, 1291, 401, 1293, 1502, 1420, 256, 1416,
11529
1415, 1299, 1501, 1197, 1355, 1299, 413, 1199, 841, 381,
11530
729, 814, 809, 1311, 532, 1313, 594, 369, 1316, 665,
11531
1005, 893, 429, 694, 71, 487, 1324, 335, 401, 373,
11532
402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
11533
686, 385, 386, 387, 400, 1343, 390, 391, 392, 393,
11534
394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
11535
404, 405, 581, 726, 402, 404, 528, 403, 405, 1178,
11536
794, 157, 1124, 554, 1273, 721, 1189, 723, 1068, 992,
11537
1092, 339, 1019, 1080, 1082, 1152, 344, 530, 346, 347,
11538
348, 349, 350, 351, 352, 353, 354, 355, 356, 425,
11539
914, 425, 976, 651, 1269, 847, 752, 1164, 846, -1,
11540
368, -1, 370, -1, 372, -1, 374, 375, 376, -1,
11541
-1, 767, -1, -1, 770, -1, -1, -1, -1, 775,
11542
-1, -1, 390, -1, -1, -1, -1, -1, 256, 257,
11543
-1, -1, -1, 261, 790, -1, -1, 265, 794, 267,
11544
-1, -1, 270, -1, 272, 273, 0, 275, -1, 277,
11545
-1, 279, -1, 281, 282, 283, 284, -1, 512, 287,
11546
288, 429, -1, -1, -1, 293, -1, 295, 296, 297,
11547
-1, -1, 300, 301, 302, -1, 304, -1, -1, 307,
11548
-1, 309, 310, 311, 312, -1, -1, -1, 316, 317,
11549
318, -1, -1, 321, 322, 323, -1, 726, -1, -1,
11550
-1, -1, 330, 331, -1, 333, 334, -1, 336, 337,
11551
338, 867, 868, -1, 342, -1, -1, -1, -1, -1,
11552
-1, -1, -1, -1, -1, -1, -1, 581, -1, -1,
11553
-1, 256, -1, -1, 362, 0, 261, 262, -1, -1,
11554
368, 369, -1, -1, -1, -1, -1, -1, -1, 377,
11555
-1, -1, -1, -1, -1, -1, -1, -1, -1, 284,
11556
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11557
-1, -1, 297, 298, -1, -1, -1, 302, 934, -1,
11558
305, -1, 307, -1, 309, 310, 311, 312, -1, -1,
11559
418, -1, 317, -1, -1, -1, 321, -1, -1, -1,
11560
325, -1, -1, -1, -1, -1, -1, 963, 333, -1,
11561
-1, 336, -1, 338, 339, -1, -1, -1, -1, 344,
11562
-1, 346, 347, 348, 349, 350, 351, 352, 353, 354,
11563
355, 356, -1, -1, -1, -1, -1, 362, 363, -1,
11564
996, -1, 367, 368, -1, 370, 371, 372, 373, 374,
11565
375, 376, -1, 378, 379, -1, 381, 382, 383, 384,
11566
385, 386, 387, 388, 389, 390, -1, 392, 393, 394,
11567
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
11568
405, 406, 407, 408, 409, 410, 411, 412, 413, -1,
11569
-1, 416, -1, 418, -1, 420, -1, 0, 423, -1,
11570
-1, -1, -1, 257, 429, -1, -1, 261, -1, -1,
11571
-1, -1, -1, -1, -1, -1, -1, -1, 272, -1,
11572
-1, -1, -1, 277, -1, -1, -1, 281, -1, -1,
11573
284, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11574
-1, -1, 296, 297, -1, -1, -1, 301, 302, -1,
11575
-1, -1, -1, 307, -1, 309, 310, 311, 312, -1,
11576
-1, -1, -1, 317, 1120, -1, -1, 321, 1124, 323,
11577
-1, 1127, -1, -1, -1, -1, -1, -1, -1, 333,
11578
-1, 335, 336, -1, 338, -1, -1, 1143, 342, -1,
11579
-1, -1, 257, 256, -1, 1151, 261, -1, -1, -1,
11580
1156, -1, -1, -1, -1, -1, -1, 272, 362, -1,
11581
-1, -1, 277, -1, 368, 369, 281, -1, -1, 284,
11582
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11583
-1, 296, 297, 1189, -1, -1, 301, 302, -1, 893,
11584
-1, -1, 307, 1199, 309, 310, 311, 312, -1, 1205,
11585
-1, -1, 317, -1, -1, -1, 321, -1, 323, -1,
11586
-1, 1217, -1, -1, 0, -1, -1, -1, 333, -1,
11587
335, 336, -1, 338, -1, -1, 339, 342, -1, -1,
11588
-1, 344, -1, 346, 347, 348, 349, 350, 351, 352,
11589
353, 354, 355, 356, -1, -1, -1, 362, -1, -1,
11590
-1, -1, -1, -1, 369, 368, -1, 370, -1, 372,
11591
-1, 374, 375, 376, -1, -1, -1, 1273, 1274, -1,
11592
-1, -1, -1, -1, -1, -1, 1282, 390, -1, -1,
11593
-1, -1, -1, -1, 1290, 1291, -1, 1293, 401, -1,
11594
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11595
413, -1, -1, 256, 257, -1, -1, 1313, -1, -1,
11596
1316, 264, 265, 266, 267, 268, 429, 270, 271, -1,
11597
273, 274, 275, 276, 277, 278, 279, 280, -1, -1,
11598
-1, -1, 285, -1, 287, 288, 289, 290, 291, 292,
11599
0, -1, 295, -1, -1, -1, 299, 300, -1, 302,
11600
303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
11601
-1, 314, -1, 316, -1, 318, 319, -1, -1, 322,
11602
-1, 324, 325, 326, 327, 328, 329, 330, 331, 332,
11603
333, 334, 335, -1, 337, -1, -1, 340, 341, -1,
11604
-1, 344, 345, -1, -1, -1, -1, -1, -1, -1,
11605
-1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
11606
363, -1, -1, -1, 367, 368, -1, -1, 371, -1,
11607
-1, -1, -1, 376, 377, 378, 379, 380, -1, -1,
11608
-1, 384, -1, 386, -1, -1, -1, -1, -1, 392,
11609
393, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11610
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11611
-1, -1, -1, -1, 417, 418, 419, 420, -1, 422,
11612
256, 257, -1, -1, -1, -1, 429, -1, 264, 265,
11613
266, 267, 268, -1, 270, 271, 0, 273, 274, 275,
11614
276, 277, 278, 279, -1, -1, -1, -1, -1, 285,
11615
-1, 287, 288, 289, 290, 291, 292, -1, -1, 295,
11616
-1, -1, -1, 299, 300, -1, 302, 303, 304, -1,
11617
-1, -1, -1, -1, -1, -1, -1, -1, 314, -1,
11618
316, -1, 318, 319, -1, -1, 322, -1, 324, 325,
11619
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
11620
-1, 337, -1, -1, 340, 341, -1, -1, 344, 345,
11621
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11622
-1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
11623
-1, 367, 368, -1, -1, 371, -1, -1, -1, -1,
11624
376, 377, 378, 379, 380, -1, 256, -1, 384, -1,
11625
386, 261, 262, -1, -1, -1, 392, 393, -1, -1,
11626
-1, -1, -1, -1, -1, -1, 0, -1, -1, -1,
11627
-1, -1, -1, -1, 284, -1, -1, -1, -1, -1,
11628
-1, 417, 418, 419, 420, -1, 422, 297, 298, -1,
11629
-1, -1, 302, 429, -1, 305, -1, 307, -1, 309,
11630
310, 311, 312, -1, -1, -1, -1, 317, -1, -1,
11631
-1, 321, -1, -1, -1, 325, -1, -1, -1, -1,
11632
-1, -1, -1, 333, -1, -1, 336, -1, 338, 339,
11633
-1, -1, -1, -1, 344, -1, 346, 347, 348, 349,
11634
350, 351, 352, 353, 354, 355, 356, 357, -1, -1,
11635
-1, -1, 362, 363, -1, -1, -1, 367, 368, 369,
11636
370, 371, 372, 373, 374, 375, 376, -1, 378, 379,
11637
-1, -1, 382, 383, 384, 385, 386, -1, -1, 389,
11638
390, -1, -1, -1, 394, 395, 396, 397, 398, 399,
11639
400, 401, 256, -1, -1, -1, 0, 261, 262, -1,
11640
-1, -1, -1, 413, -1, -1, 416, -1, 418, -1,
11641
420, -1, -1, 423, -1, -1, -1, -1, -1, 429,
11642
284, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11643
-1, -1, -1, 297, 298, -1, -1, -1, 302, -1,
11644
-1, 305, -1, 307, -1, 309, 310, 311, 312, -1,
11645
-1, -1, -1, 317, -1, -1, -1, 321, -1, -1,
11646
-1, 325, -1, -1, -1, -1, -1, -1, -1, 333,
11647
-1, -1, 336, -1, 338, 339, -1, -1, -1, -1,
11648
344, -1, 346, 347, 348, 349, 350, 351, 352, 353,
11649
354, 355, 356, -1, -1, -1, -1, -1, 362, 363,
11650
0, -1, -1, 367, 368, 369, 370, 371, 372, -1,
11651
374, 375, 376, -1, 378, 379, -1, -1, 382, 383,
11652
384, 385, 256, -1, -1, 389, 390, 261, 262, -1,
11653
394, 395, 396, 397, 398, 399, 400, 401, -1, -1,
11654
-1, -1, -1, -1, -1, -1, -1, -1, -1, 413,
11655
284, -1, 416, -1, 418, -1, 420, -1, -1, 423,
11656
-1, -1, -1, 297, 298, 429, -1, -1, 302, -1,
11657
-1, 305, -1, 307, -1, 309, 310, 311, 312, -1,
11658
-1, -1, -1, 317, -1, -1, -1, 321, -1, -1,
11659
-1, 325, -1, -1, -1, -1, -1, -1, -1, 333,
11660
-1, -1, 336, -1, 338, 339, -1, -1, -1, -1,
11661
344, -1, 346, 347, 348, 349, 350, 351, 352, 353,
11662
354, 355, 356, -1, -1, -1, -1, -1, 362, 363,
11663
-1, -1, -1, 367, 368, 369, 370, 371, 372, -1,
11664
374, 375, 376, -1, 378, 379, 0, -1, 382, 383,
11665
384, 385, 256, -1, -1, 389, 390, 261, 262, -1,
11666
394, 395, 396, 397, 398, 399, 400, 401, -1, -1,
11667
-1, -1, -1, -1, -1, -1, -1, -1, -1, 413,
11668
284, -1, 416, -1, 418, -1, 420, -1, -1, 423,
11669
-1, -1, -1, 297, 298, 429, -1, -1, 302, -1,
11670
-1, 305, -1, 307, -1, 309, 310, 311, 312, -1,
11671
-1, -1, -1, 317, -1, -1, -1, 321, -1, -1,
11672
-1, 325, -1, -1, -1, -1, -1, -1, -1, 333,
11673
-1, -1, 336, -1, 338, 339, -1, -1, -1, -1,
11674
344, -1, 346, 347, 348, 349, 350, 351, 352, 353,
11675
354, 355, 356, -1, -1, -1, 256, -1, 362, 363,
11676
-1, -1, 262, 367, 368, -1, 370, 371, 372, -1,
11677
374, 375, 376, -1, 378, 379, 0, -1, 382, 383,
11678
384, 385, -1, -1, -1, 389, 390, -1, -1, -1,
11679
394, 395, 396, 397, 398, 399, 400, 401, 298, -1,
11680
-1, -1, -1, -1, -1, -1, -1, -1, -1, 413,
11681
-1, -1, 416, -1, 418, -1, -1, -1, -1, 0,
11682
-1, -1, -1, -1, -1, 429, -1, -1, -1, -1,
11683
-1, -1, -1, -1, -1, -1, -1, -1, -1, 339,
11684
-1, -1, 256, -1, 344, -1, 346, 347, 348, 349,
11685
350, 351, 352, 353, 354, 355, 356, 357, -1, -1,
11686
-1, -1, 0, 363, -1, -1, -1, 367, 368, 369,
11687
370, 371, 372, 373, 374, 375, 376, -1, 378, 379,
11688
-1, -1, 382, 383, 384, 385, 386, -1, -1, 389,
11689
390, -1, -1, -1, 394, 395, 396, 397, 398, 399,
11690
400, 401, 256, -1, -1, 0, -1, -1, 262, -1,
11691
-1, -1, -1, 413, -1, -1, 416, -1, 418, -1,
11692
420, -1, -1, 423, -1, 339, -1, -1, -1, 429,
11693
344, -1, 346, 347, 348, 349, 350, 351, 352, 353,
11694
354, 355, 356, -1, 298, -1, -1, -1, 0, -1,
11695
-1, -1, -1, -1, 368, -1, 370, -1, 372, -1,
11696
374, 375, 376, -1, -1, -1, -1, -1, -1, -1,
11697
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11698
-1, -1, -1, -1, -1, 339, -1, -1, -1, -1,
11699
344, 0, 346, 347, 348, 349, 350, 351, 352, 353,
11700
354, 355, 356, -1, -1, -1, -1, -1, -1, 363,
11701
-1, -1, -1, 367, 368, 429, 370, 371, 372, -1,
11702
374, 375, 376, -1, 378, 379, -1, -1, 382, 383,
11703
384, 385, -1, 257, 0, 389, 390, 261, -1, -1,
11704
394, 395, 396, 397, 398, 399, 400, 401, 272, -1,
11705
-1, -1, -1, 277, -1, -1, -1, 281, -1, 413,
11706
284, -1, 416, -1, 418, -1, -1, -1, -1, -1,
11707
-1, -1, 296, 297, -1, 429, 257, 301, 302, -1,
11708
261, -1, -1, 307, -1, 309, 310, 311, 312, -1,
11709
-1, 272, -1, 317, -1, -1, 277, 321, -1, 323,
11710
281, 0, -1, 284, -1, -1, -1, -1, -1, 333,
11711
-1, -1, 336, -1, 338, 296, 297, -1, 342, 257,
11712
301, 302, -1, 261, -1, -1, 307, -1, 309, 310,
11713
311, 312, -1, -1, 272, -1, 317, -1, 362, 277,
11714
321, -1, 323, 281, 368, 369, 284, -1, 0, -1,
11715
-1, -1, 333, -1, -1, 336, -1, 338, 296, 297,
11716
-1, 342, 257, 301, 302, -1, 261, -1, -1, 307,
11717
-1, 309, 310, 311, 312, -1, -1, 272, -1, 317,
11718
-1, 362, 277, 321, -1, 323, 281, 368, 369, 284,
11719
-1, -1, -1, -1, -1, 333, -1, -1, 336, -1,
11720
338, 296, 297, -1, 342, 257, 301, 302, -1, 261,
11721
-1, -1, 307, -1, 309, 310, 311, 312, -1, -1,
11722
272, -1, 317, -1, 362, 277, 321, -1, 323, 281,
11723
-1, 369, 284, -1, -1, -1, -1, -1, 333, -1,
11724
-1, 336, -1, 338, 296, 297, -1, 342, 257, 301,
11725
302, -1, 261, -1, -1, 307, -1, 309, 310, 311,
11726
312, -1, -1, 272, -1, 317, -1, 362, 277, 321,
11727
-1, 323, 281, -1, -1, 284, -1, -1, -1, -1,
11728
-1, 333, -1, -1, 336, -1, 338, 296, 297, -1,
11729
342, 257, 301, 302, -1, 261, -1, -1, 307, -1,
11730
309, 310, 311, 312, -1, -1, 272, -1, 317, -1,
11731
362, 277, 321, -1, 323, 281, -1, -1, 284, -1,
11732
-1, -1, -1, -1, 333, -1, -1, 336, -1, 338,
11733
296, 297, -1, 342, -1, 301, 302, -1, -1, -1,
11734
-1, 307, -1, 309, 310, 311, 312, -1, -1, -1,
11735
-1, 317, -1, 362, -1, 321, -1, 323, 257, -1,
11736
-1, -1, 261, -1, -1, -1, -1, 333, -1, -1,
11737
336, -1, 338, 272, -1, -1, 342, -1, 277, -1,
11738
-1, -1, 281, -1, -1, 284, -1, -1, -1, -1,
11739
-1, -1, -1, -1, -1, -1, 362, 296, 297, -1,
11740
-1, -1, 301, 302, -1, 257, -1, -1, 307, 261,
11741
309, 310, 311, 312, -1, -1, -1, -1, 317, -1,
11742
272, -1, 321, -1, 323, 277, -1, -1, -1, 281,
11743
-1, -1, 284, -1, 333, -1, -1, 336, -1, 338,
11744
-1, -1, -1, 342, 296, 297, -1, -1, -1, 301,
11745
302, -1, -1, -1, -1, 307, -1, 309, 310, 311,
11746
312, -1, -1, 362, -1, 317, -1, -1, -1, 321,
11747
-1, 323, -1, -1, -1, -1, -1, -1, -1, -1,
11748
-1, 333, -1, 256, 336, -1, 338, -1, -1, -1,
11749
342, 264, 265, 266, 267, -1, -1, 270, 271, -1,
11750
273, 274, 275, 276, 277, 278, 279, -1, -1, -1,
11751
362, -1, 285, -1, 287, 288, 289, 290, 291, 292,
11752
-1, -1, 295, -1, -1, -1, 299, 300, -1, 302,
11753
303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
11754
-1, 314, -1, 316, -1, 318, 319, -1, -1, 322,
11755
-1, 324, 325, 326, 327, 328, 329, 330, 331, 332,
11756
333, 334, 335, -1, 337, -1, -1, 340, 341, -1,
11757
256, 344, 345, -1, -1, -1, 262, -1, -1, -1,
11758
-1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
11759
363, -1, -1, -1, 367, -1, -1, -1, 371, -1,
11760
-1, -1, -1, 376, 377, 378, 379, 380, -1, -1,
11761
-1, 384, 298, 386, -1, -1, -1, -1, -1, 392,
11762
393, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11763
-1, -1, -1, -1, -1, -1, 256, -1, -1, -1,
11764
-1, -1, 262, -1, 417, 418, 419, 420, -1, -1,
11765
-1, -1, -1, 339, -1, -1, 429, -1, 344, -1,
11766
346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
11767
356, 357, -1, -1, -1, -1, -1, 363, 298, -1,
11768
-1, -1, 368, 369, 370, 371, 372, 373, 374, 375,
11769
376, -1, 378, 379, -1, 381, 382, 383, 384, 385,
11770
386, 387, 388, 389, 390, -1, 392, 393, 394, 395,
11771
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
11772
406, 407, 408, 409, 410, 411, 412, 413, -1, 256,
11773
-1, -1, 418, -1, 420, 262, -1, 423, -1, -1,
11774
-1, -1, -1, 429, -1, -1, -1, -1, 368, -1,
11775
-1, 371, -1, 373, 374, -1, -1, -1, 378, 379,
11776
-1, -1, 382, 383, 384, 385, 386, 387, 388, 389,
11777
390, 298, 392, 393, 394, 395, 396, 397, 398, 399,
11778
400, 401, -1, -1, -1, -1, -1, -1, -1, -1,
11779
-1, -1, 412, 413, -1, -1, -1, -1, -1, -1,
11780
420, -1, -1, 423, -1, -1, -1, -1, -1, 429,
11781
-1, 285, 339, -1, -1, -1, -1, 344, -1, 346,
11782
347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
11783
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11784
367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
11785
256, 378, 379, 327, 381, 382, 383, 384, 385, 386,
11786
387, 388, 389, 390, -1, 392, 393, 394, 395, 396,
11787
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
11788
407, 408, 409, 410, 411, 412, 413, -1, 256, -1,
11789
-1, -1, -1, 420, 262, -1, -1, -1, -1, -1,
11790
-1, -1, 429, 377, 378, 379, 380, -1, 382, 383,
11791
384, 385, 386, 387, 388, 389, -1, -1, 392, 393,
11792
394, 395, 396, 397, 398, 399, -1, -1, -1, -1,
11793
298, -1, -1, 339, -1, -1, -1, -1, 344, -1,
11794
346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
11795
-1, -1, -1, -1, -1, -1, -1, -1, -1, 256,
11796
-1, -1, 368, -1, 370, 262, 372, -1, 374, 375,
11797
376, 339, -1, -1, -1, -1, 344, -1, 346, 347,
11798
348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
11799
-1, -1, -1, -1, -1, -1, -1, -1, -1, 367,
11800
368, 298, 370, 371, 372, 373, 374, 375, 376, -1,
11801
378, 379, -1, 381, 382, 383, 384, 385, 386, 387,
11802
388, 389, 390, 429, 392, 393, 394, 395, 396, 397,
11803
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
11804
408, 409, 410, 411, 412, 413, -1, 256, -1, -1,
11805
-1, -1, 420, 262, -1, 423, -1, -1, -1, -1,
11806
-1, 429, -1, -1, -1, -1, 363, -1, -1, -1,
11807
-1, 368, 369, -1, 371, 372, 373, 374, -1, 376,
11808
-1, 378, 379, -1, 381, 382, 383, 384, 385, 298,
11809
387, 388, 389, 390, -1, 392, 393, 394, 395, 396,
11810
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
11811
407, 408, 409, 410, 411, 412, 413, -1, -1, -1,
11812
-1, 418, -1, 420, -1, -1, 423, -1, -1, -1,
11813
339, -1, 429, -1, -1, 344, -1, 346, 347, 348,
11814
349, 350, 351, 352, 353, 354, 355, 356, -1, -1,
11815
-1, -1, -1, -1, -1, -1, -1, -1, -1, 368,
11816
-1, 370, 371, 372, 373, 374, 375, 376, -1, 378,
11817
379, -1, 381, 382, 383, 384, 385, 386, 387, 388,
11818
389, 390, -1, 392, 393, 394, 395, 396, 397, 398,
11819
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
11820
409, 410, 411, 412, 413, -1, 256, 256, -1, -1,
11821
-1, 420, 262, -1, 423, -1, 265, -1, 267, -1,
11822
429, 270, -1, -1, -1, -1, 275, -1, -1, -1,
11823
279, -1, -1, -1, -1, -1, -1, -1, -1, 288,
11824
-1, -1, -1, -1, -1, -1, 295, -1, 298, -1,
11825
-1, 300, -1, -1, -1, 304, -1, -1, -1, -1,
11826
-1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
11827
-1, -1, -1, 322, -1, -1, -1, -1, -1, -1,
11828
-1, 330, 331, -1, -1, 334, -1, -1, 337, 339,
11829
-1, -1, -1, -1, 344, -1, 346, 347, 348, 349,
11830
350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
11831
-1, -1, -1, -1, 363, -1, -1, -1, 368, -1,
11832
370, 371, 372, 373, 374, 375, 376, -1, 378, 379,
11833
-1, 381, 382, 383, 384, 385, 386, 387, 388, 389,
11834
390, -1, 392, 393, 394, 395, 396, 397, 398, 399,
11835
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
11836
410, 411, 412, 413, -1, 256, 256, -1, -1, 418,
11837
420, 262, -1, 423, -1, 265, -1, 267, -1, 429,
11838
270, -1, -1, -1, -1, 275, -1, -1, -1, 279,
11839
-1, -1, -1, -1, -1, -1, -1, -1, 288, -1,
11840
-1, -1, -1, -1, -1, 295, -1, 298, -1, -1,
11841
300, -1, -1, -1, 304, -1, -1, -1, -1, -1,
11842
-1, -1, -1, -1, -1, -1, 316, -1, 318, -1,
11843
-1, -1, 322, -1, -1, -1, -1, -1, -1, -1,
11844
330, 331, -1, -1, 334, -1, -1, 337, 339, -1,
11845
-1, -1, -1, 344, -1, 346, 347, 348, 349, 350,
11846
351, 352, 353, 354, 355, 356, -1, -1, -1, -1,
11847
-1, -1, -1, -1, -1, -1, -1, 368, -1, 370,
11848
371, 372, 373, 374, 375, 376, -1, 378, 379, -1,
11849
381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
11850
-1, 392, 393, 394, 395, 396, 397, 398, 399, 400,
11851
401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
11852
411, 412, 413, -1, 256, -1, 261, -1, 418, 420,
11853
262, -1, 423, -1, -1, -1, -1, -1, 429, -1,
11854
-1, -1, -1, -1, -1, -1, -1, -1, -1, 284,
11855
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11856
-1, -1, 297, -1, -1, -1, 298, 302, -1, -1,
11857
-1, -1, 307, -1, 309, 310, 311, 312, -1, -1,
11858
-1, -1, 317, -1, -1, -1, 321, -1, -1, 256,
11859
325, -1, -1, -1, -1, 262, -1, -1, 333, 266,
11860
-1, 336, -1, 338, -1, -1, -1, 339, -1, -1,
11861
-1, -1, 344, -1, 346, 347, 348, 349, 350, 351,
11862
352, 353, 354, 355, 356, -1, -1, 362, -1, -1,
11863
-1, 298, -1, -1, -1, -1, 368, -1, 370, 371,
11864
372, 373, 374, 375, 376, -1, 378, 314, -1, 381,
11865
382, 383, 384, 385, 386, 387, 388, 389, 390, -1,
11866
392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
11867
402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
11868
412, 413, -1, 418, -1, -1, -1, -1, 420, -1,
11869
357, 423, -1, -1, -1, -1, 363, 429, -1, -1,
11870
-1, 368, 369, 370, 371, 372, 373, 374, 375, 376,
11871
-1, 378, 379, -1, 381, 382, 383, 384, 385, 386,
11872
387, 388, 389, 390, -1, 392, 393, 394, 395, 396,
11873
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
11874
407, 408, 409, 410, 411, 412, 413, -1, 256, -1,
11875
256, 418, -1, 420, 262, -1, 423, -1, 264, 265,
11876
-1, 267, 429, -1, 270, 271, -1, -1, -1, 275,
11877
276, 277, -1, 279, -1, -1, -1, -1, -1, 285,
11878
-1, -1, 288, -1, -1, -1, -1, -1, -1, 295,
11879
298, -1, -1, -1, 300, -1, 302, 303, 304, -1,
11880
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11881
316, -1, 318, 319, -1, -1, 322, -1, -1, 325,
11882
-1, 327, -1, 329, 330, 331, 332, -1, 334, -1,
11883
-1, 339, -1, -1, -1, -1, 344, -1, 346, 347,
11884
348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
11885
-1, -1, -1, 359, 360, 361, 362, -1, -1, -1,
11886
368, -1, 370, -1, 372, 371, 374, 375, 376, -1,
11887
378, 379, -1, 381, 382, 383, 384, 385, 386, 387,
11888
388, 389, 390, 261, -1, -1, 394, 395, 396, 397,
11889
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
11890
408, 409, 410, 411, 256, 413, 284, -1, -1, -1,
11891
262, 417, 418, -1, -1, -1, -1, -1, -1, 297,
11892
-1, 429, -1, -1, 302, -1, -1, -1, -1, 307,
11893
-1, 309, 310, 311, 312, -1, -1, -1, -1, 317,
11894
-1, -1, -1, 321, -1, -1, 298, -1, -1, -1,
11895
-1, -1, -1, -1, -1, 333, -1, -1, 336, -1,
11896
338, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11897
-1, -1, 256, -1, -1, -1, -1, -1, 262, -1,
11898
-1, -1, -1, -1, 362, -1, -1, 339, -1, -1,
11899
-1, -1, 344, -1, 346, 347, 348, 349, 350, 351,
11900
352, 353, 354, 355, 356, -1, -1, -1, -1, -1,
11901
-1, -1, -1, -1, 298, -1, 368, -1, 370, -1,
11902
372, -1, 374, 375, 376, -1, 378, 379, -1, -1,
11903
382, 383, 384, 385, 386, 387, 388, 389, 390, -1,
11904
418, -1, 394, 395, 396, 397, 398, 399, 400, 401,
11905
-1, -1, -1, -1, -1, 339, -1, -1, -1, -1,
11906
344, 413, 346, 347, 348, 349, 350, 351, 352, 353,
11907
354, 355, 356, -1, -1, -1, 256, 429, -1, -1,
11908
-1, -1, 262, -1, 368, -1, 370, -1, 372, -1,
11909
374, 375, 376, -1, 378, 379, -1, -1, 382, 383,
11910
384, 385, -1, -1, -1, 389, 390, -1, -1, -1,
11911
394, 395, 396, 397, 398, 399, 400, 401, 298, -1,
11912
-1, -1, -1, -1, -1, -1, -1, -1, -1, 413,
11913
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11914
-1, -1, -1, -1, 256, 429, -1, -1, -1, -1,
11915
262, -1, -1, -1, -1, -1, -1, -1, -1, 339,
11916
-1, -1, -1, -1, 344, -1, 346, 347, 348, 349,
11917
350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
11918
-1, -1, -1, -1, -1, -1, 298, -1, 368, -1,
11919
370, -1, 372, -1, 374, 375, 376, -1, 378, 379,
11920
-1, -1, 382, 383, 384, 385, -1, -1, -1, 389,
11921
390, -1, -1, -1, 394, 395, 396, 397, 398, 399,
11922
400, 401, -1, -1, -1, -1, -1, 339, -1, -1,
11923
-1, -1, 344, 413, 346, 347, 348, 349, 350, 351,
11924
352, 353, 354, 355, 356, -1, -1, -1, 256, 429,
11925
-1, -1, -1, -1, 262, -1, 368, -1, 370, -1,
11926
372, -1, 374, 375, 376, -1, 378, 379, -1, -1,
11927
382, 383, 384, 385, -1, -1, -1, 389, 390, -1,
11928
-1, -1, 394, 395, 396, 397, 398, 399, 400, 401,
11929
298, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11930
-1, 413, -1, -1, -1, -1, -1, -1, -1, -1,
11931
-1, -1, -1, -1, -1, -1, 256, 429, -1, -1,
11932
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11933
-1, 339, -1, -1, -1, -1, 344, -1, 346, 347,
11934
348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
11935
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
11936
368, -1, 370, -1, 372, -1, 374, 375, 376, -1,
11937
378, 379, -1, -1, 382, 383, 384, 385, -1, -1,
11938
-1, 389, 390, -1, 256, -1, 394, 395, 396, 397,
11939
398, 399, 400, 401, -1, -1, -1, -1, -1, 339,
11940
-1, -1, -1, -1, 344, 413, 346, 347, 348, 349,
11941
350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
11942
-1, 429, -1, -1, -1, -1, -1, -1, 368, -1,
11943
370, -1, 372, -1, 374, 375, 376, -1, -1, -1,
11944
-1, -1, 382, 383, 384, 385, -1, -1, -1, 389,
11945
390, -1, 256, -1, 394, 395, 396, 397, 398, 399,
11946
400, 401, -1, -1, -1, -1, -1, 339, -1, -1,
11947
-1, -1, 344, 413, 346, 347, 348, 349, 350, 351,
11948
352, 353, 354, 355, 356, -1, -1, -1, -1, 429,
11949
-1, -1, -1, -1, -1, -1, 368, -1, 370, -1,
11950
372, -1, 374, 375, 376, -1, -1, -1, -1, -1,
11951
382, 383, 384, 385, -1, -1, -1, 389, 390, -1,
11952
256, -1, 394, 395, 396, 397, 398, 399, 400, 401,
11953
-1, -1, -1, -1, -1, 339, -1, -1, -1, -1,
11954
344, 413, 346, 347, 348, 349, 350, 351, 352, 353,
11955
354, 355, 356, -1, -1, -1, -1, 429, -1, -1,
11956
-1, -1, -1, -1, 368, -1, 370, -1, 372, -1,
11957
374, 375, 376, -1, -1, -1, -1, -1, 382, 383,
11958
384, 385, -1, -1, -1, 389, 390, -1, 256, -1,
11959
394, 395, 396, 397, 398, 399, 400, 401, -1, -1,
11960
-1, -1, -1, 339, -1, -1, -1, -1, 344, 413,
11961
346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
11962
356, -1, -1, -1, -1, 429, -1, -1, -1, -1,
11963
-1, -1, 368, -1, 370, -1, 372, -1, 374, 375,
11964
376, -1, -1, -1, -1, -1, 382, 383, 384, 385,
11965
-1, -1, -1, 389, 390, -1, 256, -1, -1, -1,
11966
396, 397, 398, 399, 400, 401, -1, -1, -1, -1,
11967
-1, 339, -1, -1, -1, -1, 344, 413, 346, 347,
11968
348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
11969
-1, -1, -1, 429, -1, -1, -1, -1, -1, -1,
11970
368, -1, 370, -1, 372, -1, 374, 375, 376, -1,
11971
-1, -1, -1, -1, 382, 383, 384, 385, -1, -1,
11972
-1, 389, 390, -1, 256, -1, -1, -1, 396, 397,
11973
398, 399, 400, 401, -1, -1, -1, -1, -1, 339,
11974
-1, -1, -1, -1, 344, 413, 346, 347, 348, 349,
11975
350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
11976
-1, 429, -1, -1, -1, -1, -1, -1, 368, -1,
11977
370, -1, 372, -1, 374, 375, 376, -1, -1, -1,
11978
-1, -1, 382, 383, 384, 385, -1, -1, -1, 389,
11979
390, -1, 256, -1, -1, -1, 396, 397, 398, 399,
11980
400, 401, -1, -1, -1, -1, -1, 339, -1, -1,
11981
-1, -1, 344, 413, 346, 347, 348, 349, 350, 351,
11982
352, 353, 354, 355, 356, -1, -1, -1, -1, 429,
11983
-1, -1, -1, -1, -1, -1, 368, -1, 370, -1,
11984
372, -1, 374, 375, 376, -1, -1, -1, -1, -1,
11985
382, 383, 384, 385, -1, -1, -1, 389, 390, -1,
11986
256, -1, -1, -1, 396, 397, 398, 399, 400, 401,
11987
-1, -1, -1, -1, -1, 339, -1, -1, -1, -1,
11988
344, 413, 346, 347, 348, 349, 350, 351, 352, 353,
11989
354, 355, 356, -1, -1, -1, -1, 429, -1, -1,
11990
-1, -1, -1, -1, 368, -1, 370, -1, 372, -1,
11991
374, 375, 376, -1, -1, -1, -1, -1, 382, 383,
11992
384, 385, -1, -1, -1, 389, 390, -1, 256, -1,
11993
-1, -1, 396, 397, 398, 399, 400, 401, -1, -1,
11994
-1, -1, -1, 339, -1, -1, -1, -1, 344, 413,
11995
346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
11996
356, -1, -1, -1, -1, 429, -1, -1, -1, -1,
11997
-1, -1, 368, -1, 370, -1, 372, -1, 374, 375,
11998
376, -1, -1, -1, -1, -1, -1, -1, 384, 385,
11999
-1, -1, -1, 389, 390, -1, 256, -1, -1, -1,
12000
-1, -1, 398, 399, 400, 401, -1, -1, -1, -1,
12001
-1, 339, -1, -1, -1, -1, 344, 413, 346, 347,
12002
348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
12003
-1, -1, -1, 429, -1, -1, -1, -1, -1, -1,
12004
368, -1, 370, -1, 372, -1, 374, 375, 376, -1,
12005
-1, -1, -1, -1, -1, -1, 384, 385, -1, -1,
12006
-1, 389, 390, -1, 256, -1, -1, -1, -1, -1,
12007
398, 399, 400, 401, -1, -1, -1, -1, -1, 339,
12008
-1, -1, -1, -1, 344, 413, 346, 347, 348, 349,
12009
350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
12010
-1, 429, -1, -1, -1, -1, -1, -1, 368, -1,
12011
370, -1, 372, -1, 374, 375, 376, -1, -1, -1,
12012
-1, -1, -1, -1, 384, 385, -1, -1, -1, 389,
12013
390, -1, 256, -1, -1, -1, -1, -1, 398, 399,
12014
400, 401, -1, -1, -1, -1, -1, 339, -1, -1,
12015
-1, -1, 344, 413, 346, 347, 348, 349, 350, 351,
12016
352, 353, 354, 355, 356, -1, -1, -1, -1, 429,
12017
-1, -1, -1, -1, -1, -1, 368, -1, 370, -1,
12018
372, -1, 374, 375, 376, -1, -1, -1, -1, -1,
12019
-1, -1, 384, 385, -1, -1, -1, 389, 390, -1,
12020
256, -1, -1, -1, -1, -1, -1, -1, 400, 401,
12021
-1, -1, -1, -1, -1, 339, -1, -1, -1, -1,
12022
344, 413, 346, 347, 348, 349, 350, 351, 352, 353,
12023
354, 355, 356, -1, -1, -1, -1, 429, -1, -1,
12024
-1, -1, -1, -1, 368, -1, 370, -1, 372, -1,
12025
374, 375, 376, -1, -1, -1, -1, -1, -1, -1,
12026
384, 385, -1, -1, -1, 389, 390, -1, 256, -1,
12027
-1, -1, -1, -1, -1, -1, 400, 401, -1, -1,
12028
-1, -1, -1, 339, -1, -1, -1, -1, 344, 413,
12029
346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
12030
356, -1, -1, -1, -1, 429, -1, -1, -1, -1,
12031
-1, -1, 368, -1, 370, -1, 372, -1, 374, 375,
12032
376, -1, -1, -1, -1, -1, -1, -1, -1, 385,
12033
-1, -1, -1, 389, 390, -1, 256, -1, -1, -1,
12034
-1, -1, -1, -1, 400, 401, -1, -1, -1, -1,
12035
-1, 339, -1, -1, -1, -1, 344, 413, 346, 347,
12036
348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
12037
-1, -1, -1, 429, -1, -1, -1, -1, -1, -1,
12038
368, -1, 370, -1, 372, -1, 374, 375, 376, -1,
12039
-1, -1, -1, -1, -1, -1, -1, 385, -1, -1,
12040
-1, 389, 390, -1, 256, -1, -1, -1, -1, -1,
12041
-1, -1, 400, 401, -1, -1, -1, -1, -1, 339,
12042
-1, -1, -1, -1, 344, 413, 346, 347, 348, 349,
12043
350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
12044
-1, 429, -1, -1, -1, -1, -1, -1, 368, -1,
12045
370, -1, 372, -1, 374, 375, 376, -1, -1, -1,
12046
-1, -1, -1, -1, -1, 385, -1, -1, -1, -1,
12047
390, -1, 256, -1, -1, -1, -1, -1, -1, -1,
12048
400, 401, -1, -1, -1, -1, -1, 339, -1, -1,
12049
-1, -1, 344, 413, 346, 347, 348, 349, 350, 351,
12050
352, 353, 354, 355, 356, -1, -1, -1, -1, 429,
12051
-1, -1, -1, -1, -1, -1, 368, -1, 370, -1,
12052
372, -1, 374, 375, 376, -1, -1, -1, -1, -1,
12053
-1, -1, -1, 385, -1, -1, -1, -1, 390, -1,
12054
256, -1, -1, -1, -1, -1, -1, -1, 400, 401,
12055
-1, -1, -1, -1, -1, 339, -1, -1, -1, -1,
12056
344, 413, 346, 347, 348, 349, 350, 351, 352, 353,
12057
354, 355, 356, -1, -1, -1, -1, 429, -1, -1,
12058
-1, -1, -1, -1, 368, -1, 370, -1, 372, -1,
12059
374, 375, 376, -1, -1, -1, -1, -1, -1, -1,
12060
-1, -1, -1, -1, -1, 262, 390, -1, -1, 266,
12061
-1, -1, -1, -1, -1, -1, 400, 401, -1, -1,
12062
-1, -1, -1, 339, -1, -1, -1, -1, 344, 413,
12063
346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
12064
356, 298, -1, -1, -1, 429, -1, -1, -1, -1,
12065
-1, -1, 368, -1, 370, -1, 372, 314, 374, 375,
12066
376, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12067
-1, -1, -1, -1, 390, -1, -1, -1, -1, -1,
12068
-1, -1, -1, -1, 400, 401, -1, -1, -1, -1,
12069
-1, -1, -1, -1, -1, -1, -1, 413, -1, -1,
12070
357, -1, -1, -1, -1, -1, 363, -1, -1, -1,
12071
-1, 368, 369, 429, 371, -1, 373, -1, 375, 376,
12072
-1, 378, 379, -1, 381, 382, 383, 384, 385, 386,
12073
387, 388, 389, 390, -1, 392, 393, 394, 395, 396,
12074
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
12075
407, 408, 409, 410, 411, 412, 413, -1, -1, 256,
12076
-1, 418, -1, 420, -1, -1, 423, 264, 265, 266,
12077
267, -1, 429, 270, 271, -1, 273, 274, 275, 276,
12078
277, 278, 279, -1, -1, -1, -1, -1, 285, -1,
12079
287, 288, 289, 290, 291, 292, -1, -1, 295, -1,
12080
-1, -1, 299, 300, -1, 302, 303, 304, -1, -1,
12081
-1, -1, -1, -1, -1, -1, -1, 314, -1, 316,
12082
-1, 318, 319, -1, -1, 322, -1, 324, 325, 326,
12083
327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
12084
337, -1, -1, 340, 341, -1, -1, 344, 345, -1,
12085
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12086
-1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
12087
367, -1, -1, -1, 371, -1, -1, -1, -1, 376,
12088
377, 378, 379, 380, -1, -1, -1, 384, -1, 386,
12089
-1, -1, -1, -1, -1, 392, 393, -1, -1, -1,
12090
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12091
-1, -1, -1, -1, -1, -1, 256, -1, -1, -1,
12092
417, 418, 419, 420, 264, 265, 266, 267, -1, -1,
12093
270, 271, -1, 273, 274, 275, 276, 277, 278, 279,
12094
-1, -1, -1, -1, -1, 285, -1, 287, 288, 289,
12095
290, 291, 292, -1, -1, 295, -1, -1, -1, 299,
12096
300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
12097
-1, -1, -1, -1, 314, -1, 316, -1, 318, 319,
12098
-1, -1, 322, -1, 324, 325, 326, 327, 328, 329,
12099
330, 331, 332, 333, 334, 335, -1, 337, -1, -1,
12100
340, 341, -1, -1, 344, 345, -1, -1, -1, -1,
12101
-1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
12102
360, 361, 362, 363, -1, -1, -1, 367, -1, -1,
12103
-1, 371, -1, -1, -1, -1, 376, 377, 378, 379,
12104
380, -1, -1, -1, 384, -1, 386, -1, -1, -1,
12105
-1, -1, 392, 393, -1, -1, -1, -1, -1, -1,
12106
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12107
-1, -1, -1, 256, -1, -1, -1, 417, 418, 419,
12108
420, 264, 265, 266, 267, -1, -1, 270, 271, -1,
12109
273, 274, 275, 276, 277, 278, 279, -1, -1, -1,
12110
-1, -1, 285, -1, 287, 288, 289, 290, 291, 292,
12111
-1, -1, 295, -1, -1, -1, 299, 300, -1, 302,
12112
303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
12113
-1, 314, -1, 316, -1, 318, 319, -1, -1, 322,
12114
-1, 324, 325, 326, 327, 328, 329, 330, 331, 332,
12115
333, 334, 335, -1, 337, -1, -1, 340, 341, -1,
12116
-1, 344, 345, -1, -1, -1, -1, -1, -1, -1,
12117
-1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
12118
363, -1, -1, -1, 367, -1, -1, -1, 371, -1,
12119
-1, -1, -1, 376, 377, 378, 379, 380, -1, -1,
12120
-1, 384, -1, 386, -1, -1, -1, -1, -1, 392,
12121
393, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12122
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12123
256, -1, -1, -1, 417, 418, 419, 420, 264, 265,
12124
266, 267, -1, -1, 270, 271, -1, 273, 274, 275,
12125
276, 277, 278, 279, -1, -1, -1, -1, -1, 285,
12126
-1, 287, 288, 289, 290, 291, 292, -1, -1, 295,
12127
-1, -1, -1, 299, 300, -1, 302, 303, 304, -1,
12128
-1, -1, -1, -1, -1, -1, -1, -1, 314, -1,
12129
316, -1, 318, 319, -1, -1, 322, -1, 324, 325,
12130
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
12131
-1, 337, -1, -1, 340, 341, -1, -1, 344, 345,
12132
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12133
-1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
12134
-1, 367, -1, -1, -1, 371, -1, -1, -1, -1,
12135
376, 377, 378, 379, 380, -1, -1, -1, 384, -1,
12136
386, -1, -1, -1, -1, -1, 392, 393, -1, -1,
12137
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12138
-1, -1, -1, -1, -1, -1, -1, 256, -1, -1,
12139
-1, 417, 418, 419, 420, 264, 265, 266, 267, -1,
12140
-1, 270, 271, -1, 273, 274, 275, 276, 277, 278,
12141
279, -1, -1, -1, -1, -1, 285, -1, 287, 288,
12142
289, 290, 291, 292, -1, -1, 295, -1, -1, -1,
12143
299, 300, -1, 302, 303, 304, -1, -1, -1, -1,
12144
-1, -1, -1, -1, -1, 314, -1, 316, -1, 318,
12145
319, -1, -1, 322, -1, 324, 325, 326, 327, 328,
12146
329, 330, 331, 332, 333, 334, 335, -1, 337, -1,
12147
-1, 340, 341, -1, -1, 344, 345, -1, -1, -1,
12148
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12149
359, 360, 361, 362, 363, -1, -1, -1, 367, -1,
12150
-1, -1, 371, -1, -1, -1, -1, 376, 377, 378,
12151
379, 380, -1, -1, -1, 384, -1, 386, -1, -1,
12152
-1, -1, -1, 392, 393, -1, -1, -1, -1, -1,
12153
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12154
-1, -1, -1, -1, 256, -1, -1, -1, 417, 418,
12155
419, 420, 264, 265, -1, 267, -1, -1, 270, 271,
12156
-1, 256, -1, 275, 276, 277, -1, 279, -1, -1,
12157
265, -1, 267, 285, -1, 270, 288, -1, -1, -1,
12158
275, -1, -1, 295, 279, -1, -1, -1, 300, -1,
12159
302, 303, 304, 288, -1, -1, -1, -1, -1, -1,
12160
295, -1, -1, -1, 316, 300, 318, 319, -1, 304,
12161
322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
12162
332, 316, 334, 318, -1, -1, -1, 322, -1, 341,
12163
-1, -1, 344, 345, -1, 330, 331, -1, -1, 334,
12164
-1, -1, 337, -1, -1, -1, -1, 359, 360, 361,
12165
362, 363, -1, -1, -1, 367, 368, -1, -1, 371,
12166
-1, -1, -1, -1, -1, 377, 378, 379, 380, -1,
12167
-1, -1, 384, -1, 386, -1, -1, -1, -1, -1,
12168
392, 393, -1, -1, -1, -1, -1, -1, -1, -1,
12169
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12170
-1, 256, -1, -1, -1, 417, 418, 419, 420, 264,
12171
265, -1, 267, -1, -1, 270, 271, -1, 256, -1,
12172
275, 276, 277, 418, 279, -1, -1, 265, -1, 267,
12173
285, -1, 270, 288, -1, -1, -1, 275, -1, -1,
12174
295, 279, -1, -1, -1, 300, -1, 302, 303, 304,
12175
288, 306, -1, -1, -1, -1, -1, 295, 313, -1,
12176
-1, 316, 300, 318, 319, -1, 304, 322, -1, -1,
12177
325, -1, 327, -1, 329, 330, 331, 332, 316, 334,
12178
318, -1, -1, -1, 322, -1, 341, -1, -1, 344,
12179
345, -1, 330, 331, -1, -1, 334, -1, -1, 337,
12180
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
12181
-1, -1, -1, -1, -1, -1, 371, -1, -1, -1,
12182
-1, -1, 377, 378, 379, 380, -1, -1, -1, 384,
12183
-1, 386, -1, -1, -1, -1, -1, 392, 393, -1,
12184
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12185
-1, -1, -1, -1, -1, -1, -1, -1, 256, -1,
12186
-1, -1, 417, 418, 419, 420, 264, 265, -1, 267,
12187
-1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
12188
418, 279, -1, -1, 265, -1, 267, 285, -1, 270,
12189
288, -1, -1, -1, 275, -1, -1, 295, 279, -1,
12190
-1, -1, 300, -1, 302, 303, 304, 288, -1, -1,
12191
-1, -1, -1, -1, 295, -1, -1, -1, 316, 300,
12192
318, 319, 320, 304, 322, -1, -1, 325, -1, 327,
12193
-1, 329, 330, 331, 332, 316, 334, 318, -1, -1,
12194
-1, 322, -1, 341, -1, -1, 344, 345, -1, 330,
12195
331, -1, -1, 334, -1, -1, 337, -1, -1, -1,
12196
-1, 359, 360, 361, 362, 363, -1, -1, -1, 367,
12197
-1, -1, -1, 371, -1, -1, -1, -1, -1, 377,
12198
378, 379, 380, -1, -1, -1, 384, -1, 386, -1,
12199
-1, 372, -1, -1, 392, 393, -1, -1, -1, -1,
12200
-1, -1, 264, 265, -1, 267, -1, -1, 270, 271,
12201
-1, -1, -1, 275, 276, 277, -1, 279, -1, 417,
12202
418, 419, 420, 285, -1, -1, 288, -1, -1, -1,
12203
-1, -1, -1, 295, -1, -1, -1, 418, 300, -1,
12204
302, 303, 304, -1, -1, -1, -1, -1, -1, -1,
12205
-1, -1, -1, -1, 316, -1, 318, 319, -1, -1,
12206
322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
12207
332, -1, 334, -1, -1, -1, -1, -1, -1, 341,
12208
-1, -1, 344, 345, -1, -1, -1, -1, -1, -1,
12209
-1, -1, -1, -1, -1, -1, -1, 359, 360, 361,
12210
362, 363, -1, -1, -1, 367, 368, -1, -1, 371,
12211
-1, -1, -1, -1, -1, 377, 378, 379, 380, -1,
12212
-1, -1, 384, -1, 386, -1, -1, -1, -1, -1,
12213
392, 393, -1, -1, -1, -1, -1, -1, -1, -1,
12214
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12215
-1, -1, -1, 256, -1, 417, 418, 419, 420, -1,
12216
-1, 264, 265, -1, 267, -1, 428, 270, 271, -1,
12217
-1, -1, 275, 276, 277, -1, 279, -1, -1, 265,
12218
-1, 267, 285, -1, 270, 288, -1, -1, -1, 275,
12219
-1, -1, 295, 279, -1, -1, -1, 300, -1, 302,
12220
303, 304, 288, -1, -1, -1, -1, -1, -1, 295,
12221
-1, -1, -1, 316, 300, 318, 319, 320, 304, 322,
12222
-1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
12223
316, 334, 318, -1, -1, -1, 322, -1, 341, -1,
12224
-1, 344, 345, -1, 330, 331, -1, -1, 334, -1,
12225
-1, 337, -1, -1, -1, -1, 359, 360, 361, 362,
12226
363, -1, -1, -1, 367, -1, -1, -1, 371, -1,
12227
-1, -1, -1, -1, 377, 378, 379, 380, -1, -1,
12228
-1, 384, -1, 386, 370, -1, -1, -1, -1, 392,
12229
393, -1, -1, -1, -1, -1, -1, 264, 265, -1,
12230
267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
12231
277, -1, 279, -1, 417, 418, 419, 420, 285, -1,
12232
-1, 288, -1, -1, -1, -1, -1, -1, 295, -1,
12233
-1, -1, 418, 300, -1, 302, 303, 304, -1, -1,
12234
-1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
12235
-1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
12236
327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
12237
-1, -1, -1, -1, 341, -1, -1, 344, 345, -1,
12238
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12239
-1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
12240
367, -1, -1, -1, 371, -1, -1, -1, -1, -1,
12241
377, 378, 379, 380, -1, -1, -1, 384, -1, 386,
12242
-1, -1, -1, -1, -1, 392, 393, -1, -1, -1,
12243
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12244
-1, -1, -1, -1, -1, -1, -1, -1, 256, -1,
12245
417, 418, 419, 420, -1, -1, 264, 265, -1, 267,
12246
-1, 428, 270, 271, -1, -1, -1, 275, 276, 277,
12247
-1, 279, -1, -1, 265, -1, 267, 285, -1, 270,
12248
288, -1, -1, -1, 275, -1, -1, 295, 279, -1,
12249
-1, -1, 300, -1, 302, 303, 304, 288, -1, -1,
12250
-1, -1, -1, -1, 295, -1, -1, -1, 316, 300,
12251
318, 319, -1, 304, 322, -1, -1, 325, -1, 327,
12252
-1, 329, 330, 331, 332, 316, 334, 318, -1, -1,
12253
-1, 322, -1, 341, -1, -1, 344, 345, -1, 330,
12254
331, -1, -1, 334, -1, -1, 337, -1, -1, -1,
12255
-1, 359, 360, 361, 362, 363, -1, -1, -1, 367,
12256
-1, -1, -1, 371, -1, -1, -1, -1, -1, 377,
12257
378, 379, 380, -1, -1, -1, 384, -1, 386, -1,
12258
-1, -1, -1, -1, 392, 393, -1, -1, -1, -1,
12259
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12260
-1, -1, -1, -1, -1, 256, -1, -1, -1, 417,
12261
418, 419, 420, 264, 265, -1, 267, -1, -1, 270,
12262
271, -1, -1, -1, 275, 276, 277, 418, 279, -1,
12263
-1, 265, -1, 267, 285, -1, 270, 288, -1, -1,
12264
-1, 275, -1, -1, 295, 279, -1, -1, -1, 300,
12265
-1, 302, 303, 304, 288, -1, -1, -1, -1, -1,
12266
-1, 295, -1, -1, -1, 316, 300, 318, 319, -1,
12267
304, 322, -1, -1, 325, -1, 327, -1, 329, 330,
12268
331, 332, 316, 334, 318, -1, -1, -1, 322, -1,
12269
341, -1, -1, 344, 345, -1, 330, 331, -1, -1,
12270
334, -1, -1, 337, -1, -1, -1, -1, 359, 360,
12271
361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
12272
371, -1, -1, -1, -1, -1, 377, 378, 379, 380,
12273
-1, -1, -1, 384, -1, 386, -1, -1, -1, -1,
12274
-1, 392, 393, -1, -1, -1, -1, -1, -1, -1,
12275
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12276
-1, -1, 256, -1, -1, -1, 417, 418, 419, 420,
12277
264, 265, -1, 267, -1, -1, 270, 271, -1, -1,
12278
-1, 275, 276, 277, 418, 279, -1, -1, 265, -1,
12279
267, 285, -1, 270, 288, -1, -1, -1, 275, -1,
12280
-1, 295, 279, -1, -1, -1, 300, -1, 302, 303,
12281
304, 288, -1, -1, -1, -1, -1, -1, 295, -1,
12282
-1, -1, 316, 300, 318, 319, -1, 304, 322, -1,
12283
-1, 325, -1, 327, -1, 329, 330, 331, 332, 316,
12284
334, 318, -1, -1, -1, 322, -1, 341, -1, -1,
12285
344, 345, -1, 330, 331, -1, -1, 334, -1, -1,
12286
337, -1, -1, -1, -1, 359, 360, 361, 362, 363,
12287
-1, -1, -1, -1, -1, -1, -1, 371, -1, -1,
12288
-1, -1, -1, 377, 378, 379, 380, -1, -1, -1,
12289
384, -1, 386, -1, -1, -1, -1, -1, 392, 393,
12290
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12291
-1, -1, -1, -1, -1, -1, -1, -1, -1, 256,
12292
-1, -1, -1, 417, 418, 419, 420, 264, 265, -1,
12293
267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
12294
277, 418, 279, -1, -1, 265, -1, 267, 285, -1,
12295
270, 288, -1, -1, -1, 275, -1, -1, 295, 279,
12296
-1, -1, -1, 300, -1, 302, 303, 304, 288, -1,
12297
-1, -1, -1, -1, -1, 295, -1, -1, -1, 316,
12298
300, 318, 319, -1, 304, 322, -1, -1, 325, -1,
12299
327, -1, 329, 330, 331, 332, 316, 334, 318, -1,
12300
-1, -1, 322, -1, 341, -1, -1, 344, 345, -1,
12301
330, 331, -1, -1, 334, -1, -1, 337, -1, -1,
12302
-1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
12303
-1, -1, -1, -1, 371, -1, -1, -1, -1, -1,
12304
377, 378, 379, 380, -1, -1, -1, 384, -1, 386,
12305
-1, -1, -1, -1, -1, 392, 393, -1, -1, -1,
12306
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12307
-1, -1, -1, -1, -1, -1, 256, -1, -1, -1,
12308
417, 418, 419, 420, 264, 265, -1, 267, -1, -1,
12309
270, 271, -1, -1, -1, 275, 276, 277, 418, 279,
12310
-1, -1, 265, -1, 267, 285, -1, 270, 288, -1,
12311
-1, -1, 275, -1, -1, 295, 279, -1, -1, -1,
12312
300, -1, 302, 303, 304, 288, -1, -1, -1, -1,
12313
-1, -1, 295, -1, -1, -1, 316, 300, 318, 319,
12314
-1, 304, 322, -1, -1, 325, -1, 327, -1, 329,
12315
330, 331, 332, 316, 334, 318, -1, -1, -1, 322,
12316
-1, 341, -1, -1, 344, 345, -1, 330, 331, -1,
12317
-1, 334, -1, -1, 337, -1, -1, -1, -1, 359,
12318
360, 361, 362, 363, -1, -1, -1, -1, -1, -1,
12319
-1, 371, -1, -1, -1, -1, -1, 377, 378, 379,
12320
380, -1, -1, -1, 384, -1, 386, -1, -1, -1,
12321
-1, -1, 392, 393, -1, -1, -1, -1, -1, -1,
12322
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12323
-1, -1, -1, 256, -1, -1, -1, 417, 418, 419,
12324
420, 264, 265, -1, 267, -1, -1, 270, 271, -1,
12325
-1, -1, 275, 276, 277, 418, 279, -1, -1, 265,
12326
-1, 267, 285, -1, 270, 288, -1, -1, -1, 275,
12327
-1, -1, 295, 279, -1, -1, -1, 300, -1, 302,
12328
303, 304, 288, -1, -1, -1, -1, -1, -1, 295,
12329
-1, -1, -1, 316, 300, 318, 319, -1, 304, 322,
12330
-1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
12331
316, 334, 318, -1, -1, -1, 322, -1, 341, -1,
12332
-1, 344, 345, -1, 330, 331, -1, -1, 334, -1,
12333
-1, 337, -1, -1, -1, -1, 359, 360, 361, 362,
12334
363, -1, -1, -1, -1, -1, -1, -1, 371, -1,
12335
-1, -1, -1, -1, 377, 378, 379, 380, -1, -1,
12336
-1, 384, -1, 386, -1, -1, -1, -1, -1, 392,
12337
393, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12338
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12339
256, -1, -1, -1, 417, 418, 419, 420, 264, 265,
12340
-1, 267, -1, -1, 270, 271, -1, -1, -1, 275,
12341
276, 277, 418, 279, -1, -1, -1, -1, -1, 285,
12342
-1, -1, 288, -1, -1, -1, -1, -1, -1, 295,
12343
-1, -1, -1, -1, 300, -1, 302, 303, 304, -1,
12344
-1, -1, -1, -1, -1, -1, 262, -1, -1, -1,
12345
316, -1, 318, 319, -1, -1, 322, -1, -1, 325,
12346
-1, 327, -1, 329, 330, 331, 332, -1, 334, -1,
12347
-1, -1, -1, -1, -1, 341, -1, -1, 344, 345,
12348
-1, -1, 298, -1, -1, -1, -1, -1, -1, -1,
12349
-1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
12350
-1, -1, -1, -1, -1, 371, -1, -1, -1, -1,
12351
-1, 377, 378, 379, 380, -1, -1, -1, 384, -1,
12352
386, -1, -1, -1, -1, -1, 392, 393, -1, -1,
12353
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12354
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12355
-1, 417, 418, 419, 420, 371, 372, 373, 374, 375,
12356
-1, -1, 378, 379, -1, -1, 382, 383, 384, 385,
12357
386, 387, 388, 389, 390, -1, 392, 393, 394, 395,
12358
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
12359
406, 407, 408, 409, 410, 411, 412, 413, -1, 261,
12360
-1, 263, -1, 265, 420, 267, -1, 423, 270, -1,
12361
272, 273, -1, 275, -1, 277, -1, 279, -1, 281,
12362
282, 283, 284, -1, -1, 287, 288, -1, -1, -1,
12363
-1, 293, 294, 295, 296, 297, -1, -1, 300, -1,
12364
302, -1, 304, -1, 306, 307, -1, 309, 310, 311,
12365
312, -1, -1, 315, 316, 317, 318, -1, -1, 321,
12366
322, 323, -1, -1, -1, -1, -1, -1, 330, 331,
12367
-1, 333, 334, -1, 336, 337, 338, -1, -1, -1,
12368
342, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12369
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12370
362, -1, 364, 365, 261, -1, -1, -1, 265, -1,
12371
267, -1, -1, 270, -1, 272, 273, -1, 275, -1,
12372
277, -1, 279, -1, 281, 282, 283, 284, -1, -1,
12373
287, 288, -1, -1, -1, -1, 293, -1, 295, 296,
12374
297, -1, -1, 300, -1, 302, -1, 304, -1, -1,
12375
307, -1, 309, 310, 311, 312, 418, -1, -1, 316,
12376
317, 318, -1, -1, 321, 322, 323, -1, -1, -1,
12377
-1, -1, -1, 330, 331, -1, 333, 334, -1, 336,
12378
337, 338, -1, -1, -1, 342, -1, -1, -1, -1,
12379
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12380
-1, -1, -1, 261, -1, 362, -1, 265, -1, 267,
12381
-1, 368, 270, -1, 272, 273, -1, 275, -1, 277,
12382
377, 279, -1, 281, 282, 283, 284, -1, -1, 287,
12383
288, -1, -1, -1, -1, 293, -1, 295, 296, 297,
12384
-1, -1, 300, -1, 302, -1, 304, -1, -1, 307,
12385
-1, 309, 310, 311, 312, -1, -1, -1, 316, 317,
12386
318, 418, -1, 321, 322, 323, -1, -1, -1, -1,
12387
-1, -1, 330, 331, -1, 333, 334, -1, 336, 337,
12388
338, -1, -1, -1, 342, -1, -1, -1, -1, -1,
12389
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12390
-1, -1, 261, -1, 362, -1, 265, -1, 267, -1,
12391
368, 270, -1, 272, 273, -1, 275, -1, 277, 377,
12392
279, -1, 281, 282, 283, 284, -1, -1, 287, 288,
12393
-1, -1, -1, -1, 293, -1, 295, 296, 297, -1,
12394
-1, 300, -1, 302, -1, 304, -1, -1, 307, -1,
12395
309, 310, 311, 312, -1, -1, -1, 316, 317, 318,
12396
418, -1, 321, 322, 323, -1, -1, -1, -1, -1,
12397
-1, 330, 331, -1, 333, 334, -1, 336, 337, 338,
12398
-1, -1, -1, 342, -1, -1, -1, -1, -1, -1,
12399
-1, -1, -1, -1, -1, -1, 261, -1, -1, -1,
12400
265, -1, 267, 362, -1, 270, -1, 272, 273, 368,
12401
275, -1, 277, -1, 279, -1, 281, 282, 283, 284,
12402
-1, -1, 287, 288, -1, -1, -1, -1, 293, -1,
12403
295, 296, 297, -1, -1, 300, -1, 302, -1, 304,
12404
-1, -1, 307, -1, 309, 310, 311, 312, -1, -1,
12405
-1, 316, 317, 318, -1, -1, 321, 322, 323, 418,
12406
-1, -1, -1, -1, -1, 330, 331, -1, 333, 334,
12407
-1, 336, 337, 338, -1, -1, -1, 342, -1, -1,
12408
-1, -1, 261, -1, -1, -1, 265, -1, 267, -1,
12409
-1, 270, -1, 272, 273, -1, 275, 362, 277, -1,
12410
279, -1, 281, 282, 283, 284, -1, -1, 287, 288,
12411
-1, -1, 377, -1, 293, -1, 295, 296, 297, -1,
12412
-1, 300, -1, 302, 261, 304, -1, -1, 307, -1,
12413
309, 310, 311, 312, -1, -1, -1, 316, 317, 318,
12414
-1, -1, 321, 322, 323, -1, -1, 284, -1, -1,
12415
-1, 330, 331, 418, 333, 334, -1, 336, 337, 338,
12416
297, -1, -1, 342, -1, 302, -1, -1, 305, -1,
12417
307, -1, 309, 310, 311, 312, -1, -1, -1, -1,
12418
317, -1, -1, 362, 321, -1, -1, -1, 325, 368,
12419
-1, -1, -1, -1, -1, -1, 333, -1, -1, 336,
12420
-1, 338, 264, 265, -1, 267, -1, -1, 270, 271,
12421
-1, -1, -1, 275, 276, 277, -1, 279, -1, -1,
12422
357, -1, -1, 285, -1, 362, 288, -1, -1, -1,
12423
-1, -1, 369, 295, 371, -1, 373, -1, 300, 418,
12424
302, 303, 304, -1, 306, -1, -1, -1, -1, 386,
12425
-1, 313, -1, -1, 316, -1, 318, 319, -1, -1,
12426
322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
12427
332, -1, 334, -1, -1, -1, -1, -1, -1, 341,
12428
-1, 418, 344, 345, -1, -1, -1, -1, -1, -1,
12429
-1, -1, -1, -1, -1, -1, -1, 359, 360, 361,
12430
362, 363, -1, -1, -1, -1, -1, -1, -1, 371,
12431
372, -1, 374, -1, -1, 377, 378, 379, 380, -1,
12432
-1, -1, 384, -1, 386, -1, -1, -1, -1, -1,
12433
392, 393, -1, -1, -1, -1, -1, -1, 264, 265,
12434
-1, 267, -1, -1, 270, 271, -1, -1, -1, 275,
12435
276, 277, -1, 279, -1, 417, 418, 419, 420, 285,
12436
-1, -1, 288, -1, -1, -1, -1, -1, -1, 295,
12437
-1, -1, -1, -1, 300, -1, 302, 303, 304, -1,
12438
306, -1, -1, -1, -1, -1, -1, 313, -1, -1,
12439
316, -1, 318, 319, -1, -1, 322, -1, -1, 325,
12440
-1, 327, -1, 329, 330, 331, 332, -1, 334, -1,
12441
-1, -1, -1, -1, -1, 341, -1, -1, 344, 345,
12442
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12443
-1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
12444
-1, -1, -1, -1, -1, 371, -1, -1, 374, -1,
12445
-1, 377, 378, 379, 380, -1, -1, -1, 384, -1,
12446
386, -1, -1, -1, -1, -1, 392, 393, -1, -1,
12447
-1, -1, -1, -1, 264, 265, -1, 267, -1, -1,
12448
270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
12449
-1, 417, 418, 419, 420, 285, -1, -1, 288, -1,
12450
-1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
12451
300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
12452
-1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
12453
-1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
12454
330, 331, 332, -1, 334, -1, -1, 337, -1, -1,
12455
-1, 341, -1, -1, 344, 345, -1, -1, -1, -1,
12456
-1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
12457
360, 361, 362, 363, -1, -1, -1, -1, -1, -1,
12458
-1, 371, -1, -1, -1, -1, -1, 377, 378, 379,
12459
380, -1, -1, -1, 384, -1, 386, -1, -1, -1,
12460
-1, -1, 392, 393, -1, -1, -1, -1, -1, -1,
12461
264, 265, -1, 267, -1, -1, 270, 271, -1, -1,
12462
-1, 275, 276, 277, -1, 279, -1, 417, 418, 419,
12463
420, 285, -1, -1, 288, -1, -1, -1, -1, -1,
12464
-1, 295, -1, -1, -1, -1, 300, -1, 302, 303,
12465
304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12466
-1, -1, 316, -1, 318, 319, -1, -1, 322, -1,
12467
-1, 325, -1, 327, -1, 329, 330, 331, 332, -1,
12468
334, -1, -1, -1, -1, -1, -1, 341, -1, -1,
12469
344, 345, -1, -1, -1, -1, -1, -1, -1, -1,
12470
-1, -1, -1, -1, -1, 359, 360, 361, 362, 363,
12471
-1, -1, -1, -1, 368, -1, -1, 371, -1, -1,
12472
-1, -1, -1, 377, 378, 379, 380, -1, -1, -1,
12473
384, -1, 386, -1, -1, -1, -1, -1, 392, 393,
12474
-1, -1, -1, -1, -1, -1, 264, 265, -1, 267,
12475
-1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
12476
-1, 279, -1, 417, 418, 419, 420, 285, -1, -1,
12477
288, -1, -1, -1, -1, -1, -1, 295, -1, -1,
12478
-1, -1, 300, -1, 302, 303, 304, -1, -1, -1,
12479
-1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
12480
318, 319, -1, -1, 322, -1, -1, 325, -1, 327,
12481
-1, 329, 330, 331, 332, -1, 334, -1, -1, -1,
12482
-1, -1, -1, 341, -1, -1, 344, 345, -1, -1,
12483
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12484
-1, 359, 360, 361, 362, 363, -1, -1, -1, 367,
12485
-1, -1, -1, 371, -1, -1, -1, -1, -1, 377,
12486
378, 379, 380, -1, -1, -1, 384, -1, 386, -1,
12487
-1, -1, -1, -1, 392, 393, -1, -1, -1, -1,
12488
-1, -1, 264, 265, -1, 267, -1, -1, 270, 271,
12489
-1, -1, -1, 275, 276, 277, -1, 279, -1, 417,
12490
418, 419, 420, 285, -1, -1, 288, -1, -1, -1,
12491
-1, -1, -1, 295, -1, -1, -1, -1, 300, -1,
12492
302, 303, 304, -1, -1, -1, -1, -1, -1, -1,
12493
-1, -1, -1, -1, 316, -1, 318, 319, -1, -1,
12494
322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
12495
332, -1, 334, -1, -1, -1, -1, -1, -1, 341,
12496
-1, -1, 344, 345, -1, -1, -1, -1, -1, -1,
12497
-1, -1, -1, -1, -1, -1, -1, 359, 360, 361,
12498
362, 363, -1, -1, -1, 367, -1, -1, -1, 371,
12499
-1, -1, -1, -1, -1, 377, 378, 379, 380, -1,
12500
-1, -1, 384, -1, 386, -1, -1, -1, -1, -1,
12501
392, 393, -1, -1, -1, -1, -1, -1, 264, 265,
12502
-1, 267, -1, -1, 270, 271, -1, -1, -1, 275,
12503
276, 277, -1, 279, -1, 417, 418, 419, 420, 285,
12504
-1, -1, 288, -1, -1, -1, -1, -1, -1, 295,
12505
-1, -1, -1, -1, 300, -1, 302, 303, 304, -1,
12506
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12507
316, -1, 318, 319, -1, -1, 322, -1, -1, 325,
12508
-1, 327, -1, 329, 330, 331, 332, -1, 334, -1,
12509
-1, -1, -1, -1, -1, 341, -1, -1, 344, 345,
12510
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12511
-1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
12512
-1, -1, -1, -1, -1, 371, -1, -1, -1, -1,
12513
-1, 377, 378, 379, 380, -1, -1, -1, 384, -1,
12514
386, -1, -1, -1, -1, -1, 392, 393, -1, -1,
12515
-1, -1, -1, -1, 264, 265, -1, 267, -1, -1,
12516
270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
12517
-1, 417, 418, 419, 420, 285, -1, -1, 288, -1,
12518
-1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
12519
300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
12520
-1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
12521
-1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
12522
330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
12523
-1, 341, -1, -1, 344, 345, -1, -1, -1, -1,
12524
-1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
12525
360, 361, 362, 363, -1, -1, -1, -1, -1, -1,
12526
-1, 371, -1, -1, -1, -1, -1, 377, 378, 379,
12527
380, -1, -1, -1, 384, -1, 386, -1, -1, -1,
12528
-1, -1, 392, 393, -1, -1, -1, -1, -1, -1,
12529
264, 265, -1, 267, -1, -1, 270, 271, -1, -1,
12530
-1, 275, 276, 277, -1, 279, -1, 417, 418, 419,
12531
420, 285, -1, -1, 288, -1, -1, -1, -1, -1,
12532
-1, 295, -1, -1, -1, -1, 300, -1, 302, 303,
12533
304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12534
-1, -1, 316, -1, 318, 319, -1, -1, 322, -1,
12535
-1, 325, -1, 327, -1, 329, 330, 331, 332, -1,
12536
334, -1, -1, -1, -1, -1, -1, 341, -1, -1,
12537
344, 345, -1, -1, -1, -1, -1, -1, -1, -1,
12538
-1, -1, -1, -1, -1, 359, 360, 361, 362, 363,
12539
-1, -1, -1, -1, -1, -1, -1, 371, -1, -1,
12540
-1, -1, -1, 377, 378, 379, 380, -1, -1, -1,
12541
384, -1, 386, -1, -1, -1, -1, -1, 392, 393,
12542
-1, -1, -1, -1, -1, -1, 264, 265, -1, 267,
12543
-1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
12544
-1, 279, -1, 417, 418, 419, 420, 285, -1, -1,
12545
288, -1, -1, -1, -1, -1, -1, 295, -1, -1,
12546
-1, -1, 300, -1, 302, 303, 304, -1, -1, -1,
12547
-1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
12548
318, 319, -1, -1, 322, -1, -1, 325, -1, 327,
12549
-1, 329, 330, 331, 332, -1, 334, -1, -1, -1,
12550
-1, -1, -1, 341, -1, -1, 344, 345, -1, -1,
12551
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12552
-1, 359, 360, 361, 362, 363, -1, -1, -1, -1,
12553
-1, -1, -1, 371, -1, -1, -1, -1, -1, 377,
12554
378, 379, 380, -1, -1, -1, 384, -1, 386, -1,
12555
-1, -1, -1, -1, 392, 393, -1, -1, -1, -1,
12556
-1, -1, 264, 265, -1, 267, -1, -1, 270, 271,
12557
-1, -1, -1, 275, 276, 277, -1, 279, -1, 417,
12558
418, 419, 420, 285, -1, -1, 288, -1, -1, -1,
12559
-1, -1, -1, 295, -1, -1, -1, -1, 300, -1,
12560
302, 303, 304, -1, -1, -1, -1, -1, -1, -1,
12561
-1, -1, -1, -1, 316, -1, 318, 319, -1, -1,
12562
322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
12563
332, -1, 334, -1, -1, -1, -1, -1, -1, 341,
12564
-1, -1, 344, 345, -1, -1, -1, -1, -1, -1,
12565
-1, -1, -1, -1, -1, -1, -1, 359, 360, 361,
12566
362, 363, -1, -1, -1, -1, -1, -1, -1, 371,
12567
-1, -1, -1, -1, -1, 377, 378, 379, 380, -1,
12568
-1, -1, 384, -1, 386, -1, -1, -1, -1, -1,
12569
392, 393, -1, -1, -1, -1, -1, -1, 264, 265,
12570
-1, 267, -1, -1, 270, 271, -1, -1, -1, 275,
12571
276, 277, -1, 279, -1, 417, 418, 419, 420, 285,
12572
-1, -1, 288, -1, -1, -1, -1, -1, -1, 295,
12573
-1, 261, -1, -1, 300, -1, 302, 303, 304, -1,
12574
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12575
316, -1, 318, 319, 284, -1, 322, -1, -1, 325,
12576
-1, 327, -1, 329, 330, 331, 332, 297, 334, -1,
12577
-1, -1, 302, -1, -1, -1, -1, 307, -1, 309,
12578
310, 311, 312, -1, -1, 315, -1, 317, -1, -1,
12579
-1, 321, -1, 359, 360, 361, 362, 363, -1, -1,
12580
-1, -1, -1, 333, -1, 371, 336, -1, 338, -1,
12581
-1, 377, 378, 379, 380, -1, -1, -1, 384, -1,
12582
386, -1, -1, -1, -1, -1, 392, 393, -1, -1,
12583
-1, -1, 362, -1, -1, -1, -1, -1, 368, 369,
12584
-1, -1, -1, -1, -1, -1, 263, -1, 265, -1,
12585
267, 417, 418, 270, 420, 272, 273, -1, 275, -1,
12586
277, -1, 279, -1, 281, 282, 283, -1, -1, -1,
12587
287, 288, -1, -1, -1, -1, 293, -1, 295, 296,
12588
-1, -1, -1, 300, -1, -1, -1, 304, -1, -1,
12589
-1, -1, -1, -1, -1, -1, -1, -1, 315, 316,
12590
-1, 318, -1, -1, -1, 322, 323, -1, -1, -1,
12591
-1, -1, -1, 330, 331, 264, 265, 334, 267, -1,
12592
337, 270, 271, -1, -1, 342, 275, 276, 277, -1,
12593
279, -1, -1, -1, -1, -1, 285, -1, -1, 288,
12594
-1, -1, -1, -1, -1, -1, 295, 364, 365, -1,
12595
-1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
12596
377, -1, -1, -1, -1, -1, -1, 316, -1, 318,
12597
319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
12598
329, 330, 331, 332, -1, 334, -1, -1, 337, -1,
12599
-1, -1, -1, -1, -1, 265, -1, 267, -1, -1,
12600
270, 418, 272, -1, -1, 275, -1, -1, -1, 279,
12601
359, 360, 361, 362, -1, -1, -1, -1, 288, 265,
12602
-1, 267, 371, -1, 270, 295, 272, 273, -1, 275,
12603
300, 277, 302, 279, 304, 281, 282, 283, -1, -1,
12604
-1, 287, 288, -1, -1, -1, 316, 293, 318, 295,
12605
296, -1, 322, 323, 300, -1, -1, -1, 304, -1,
12606
330, 331, -1, -1, 334, -1, -1, 337, 417, 418,
12607
316, -1, 318, -1, -1, -1, 322, 323, -1, -1,
12608
-1, -1, -1, -1, 330, 331, -1, 265, 334, 267,
12609
-1, 337, 270, -1, 272, 273, 342, 275, -1, 277,
12610
-1, 279, -1, 281, 282, 283, -1, -1, -1, 287,
12611
288, -1, -1, -1, -1, 293, -1, 295, 296, -1,
12612
-1, -1, 300, -1, -1, -1, 304, -1, -1, -1,
12613
-1, 377, -1, -1, -1, -1, -1, -1, 316, -1,
12614
318, -1, -1, -1, 322, 323, -1, -1, 418, -1,
12615
-1, -1, 330, 331, -1, -1, 334, -1, -1, 337,
12616
-1, 265, -1, 267, 342, -1, 270, -1, -1, 273,
12617
-1, 275, 418, 277, -1, 279, -1, 281, 282, 283,
12618
-1, -1, -1, 287, 288, -1, -1, -1, -1, 293,
12619
-1, 295, -1, 265, -1, 267, 300, -1, 270, -1,
12620
304, 273, -1, 275, -1, 277, -1, 279, -1, 281,
12621
282, 283, 316, -1, 318, 287, 288, -1, 322, -1,
12622
-1, 293, -1, 295, -1, -1, 330, 331, 300, -1,
12623
334, -1, 304, 337, -1, -1, -1, 265, 342, 267,
12624
418, -1, 270, -1, 316, -1, 318, 275, -1, -1,
12625
322, 279, -1, -1, -1, -1, -1, -1, 330, 331,
12626
288, -1, 334, -1, -1, 337, -1, 295, -1, 265,
12627
342, 267, 300, 377, 270, -1, 304, -1, 306, 275,
12628
308, -1, -1, 279, -1, 313, -1, -1, 316, -1,
12629
318, -1, 288, -1, 322, -1, -1, 325, -1, 295,
12630
-1, -1, 330, 331, 300, -1, 334, -1, 304, 337,
12631
306, -1, 308, 265, 418, 267, -1, 313, 270, -1,
12632
316, -1, 318, 275, -1, -1, 322, 279, -1, 325,
12633
-1, -1, -1, -1, 330, 331, 288, -1, 334, -1,
12634
-1, 337, -1, 295, 372, 265, 418, 267, 300, -1,
12635
270, -1, 304, -1, 306, 275, 308, -1, -1, 279,
12636
-1, 313, -1, -1, 316, -1, 318, -1, 288, -1,
12637
322, -1, -1, 325, 370, 295, -1, -1, 330, 331,
12638
300, -1, 334, -1, 304, 337, 306, -1, 308, 265,
12639
418, 267, -1, 313, 270, -1, 316, -1, 318, 275,
12640
-1, -1, 322, 279, -1, 325, -1, -1, -1, -1,
12641
330, 331, 288, -1, 334, -1, -1, 337, -1, 295,
12642
-1, -1, 418, -1, 300, -1, -1, -1, 304, -1,
12643
306, -1, -1, -1, 265, -1, 267, 313, -1, 270,
12644
316, -1, 318, -1, 275, -1, 322, -1, 279, 325,
12645
-1, -1, 283, -1, 330, 331, -1, 288, 334, -1,
12646
-1, 337, 293, -1, 295, -1, 418, -1, -1, 300,
12647
-1, -1, -1, 304, 305, -1, -1, -1, 265, -1,
12648
267, -1, -1, 270, -1, 316, -1, 318, 275, -1,
12649
-1, 322, 279, -1, -1, -1, -1, -1, 418, 330,
12650
331, 288, 265, 334, 267, -1, -1, 270, 295, -1,
12651
-1, -1, 275, 300, -1, -1, 279, 304, -1, -1,
12652
-1, -1, -1, -1, -1, 288, -1, -1, -1, 316,
12653
-1, 318, 295, -1, -1, 322, -1, 300, -1, -1,
12654
-1, 304, 418, 330, 331, -1, -1, 334, -1, -1,
12655
337, -1, -1, 316, -1, 318, 265, -1, 267, 322,
12656
-1, 270, -1, -1, -1, -1, 275, 330, 331, -1,
12657
279, 334, -1, -1, 337, -1, 363, -1, -1, 288,
12658
-1, -1, -1, -1, -1, -1, 295, 418, -1, -1,
12659
-1, 300, -1, -1, 261, 304, -1, -1, -1, -1,
12660
-1, -1, -1, -1, -1, 272, -1, 316, -1, 318,
12661
277, -1, -1, 322, 281, -1, -1, 284, -1, -1,
12662
-1, 330, 331, -1, -1, 334, -1, -1, 337, 296,
12663
297, 418, -1, -1, 301, 302, -1, -1, -1, -1,
12664
307, -1, 309, 310, 311, 312, -1, -1, -1, -1,
12665
317, -1, -1, -1, 321, 418, 323, -1, -1, -1,
12666
-1, -1, -1, -1, -1, -1, 333, -1, 335, 336,
12667
261, 338, -1, -1, -1, 342, -1, -1, -1, -1,
12668
-1, 272, -1, -1, -1, -1, 277, -1, -1, -1,
12669
281, -1, -1, 284, -1, 362, -1, -1, -1, -1,
12670
-1, 368, 369, -1, -1, 296, 297, -1, -1, 418,
12671
301, 302, 261, -1, 263, -1, 307, -1, 309, 310,
12672
311, 312, -1, -1, -1, -1, 317, -1, -1, -1,
12673
321, -1, 323, -1, -1, 284, -1, -1, -1, -1,
12674
-1, -1, 333, -1, -1, 336, -1, 338, 297, -1,
12675
-1, 342, -1, 302, -1, -1, -1, -1, 307, -1,
12676
309, 310, 311, 312, -1, -1, -1, -1, 317, -1,
12677
-1, 362, 321, -1, -1, 261, -1, 368, 369, -1,
12678
-1, -1, -1, -1, 333, -1, 272, 336, -1, 338,
12679
-1, 277, -1, -1, -1, 281, -1, -1, 284, -1,
12680
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12681
296, 297, -1, 362, -1, 301, 302, -1, 261, 368,
12682
369, 307, -1, 309, 310, 311, 312, -1, -1, 272,
12683
-1, 317, -1, -1, 277, 321, -1, 323, 281, -1,
12684
-1, 284, -1, -1, -1, -1, -1, 333, -1, -1,
12685
336, -1, 338, 296, 297, -1, 342, -1, 301, 302,
12686
261, -1, -1, -1, 307, -1, 309, 310, 311, 312,
12687
-1, -1, -1, -1, 317, -1, 362, -1, 321, -1,
12688
323, -1, 368, 284, -1, -1, -1, -1, -1, -1,
12689
333, -1, -1, 336, -1, 338, 297, -1, 261, 342,
12690
-1, 302, -1, -1, -1, -1, 307, -1, 309, 310,
12691
311, 312, -1, -1, -1, -1, 317, -1, -1, 362,
12692
321, 284, -1, -1, -1, 368, -1, -1, -1, -1,
12693
-1, -1, 333, -1, 297, 336, 261, 338, -1, 302,
12694
-1, -1, -1, -1, 307, -1, 309, 310, 311, 312,
12695
-1, -1, -1, -1, 317, -1, -1, -1, 321, 284,
12696
-1, 362, -1, 364, 365, -1, -1, 368, -1, -1,
12697
333, -1, 297, 336, 261, 338, 263, 302, -1, -1,
12698
-1, -1, 307, -1, 309, 310, 311, 312, -1, -1,
12699
315, -1, 317, -1, -1, -1, 321, 284, -1, 362,
12700
-1, 364, 365, -1, -1, 368, -1, -1, 333, -1,
12701
297, 336, 261, 338, 263, 302, -1, -1, -1, -1,
12702
307, -1, 309, 310, 311, 312, -1, -1, -1, -1,
12703
317, -1, -1, -1, 321, 284, -1, 362, -1, -1,
12704
-1, -1, 261, 368, -1, -1, 333, -1, 297, 336,
12705
-1, 338, -1, 302, -1, -1, -1, -1, 307, -1,
12706
309, 310, 311, 312, -1, 284, 315, -1, 317, -1,
12707
-1, -1, 321, -1, 261, 362, -1, -1, 297, -1,
12708
-1, 368, 301, 302, 333, -1, -1, 336, 307, 338,
12709
309, 310, 311, 312, -1, -1, -1, 284, 317, -1,
12710
-1, -1, 321, -1, -1, -1, -1, -1, -1, -1,
12711
297, -1, -1, 362, 333, 302, -1, 336, -1, 338,
12712
307, -1, 309, 310, 311, 312, -1, -1, -1, -1,
12713
317, -1, -1, -1, 321, -1, -1, -1, -1, -1,
12714
-1, -1, -1, 362, -1, -1, 333, -1, -1, 336,
12715
-1, 338, -1, -1, -1, -1, -1, -1, -1, -1,
12716
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12717
-1, -1, -1, -1, -1, 362,
12720
#line 6614 "cs-parser.jay"
12723
// A class used to hold info about an operator declarator
12725
class OperatorDeclaration {
12726
public readonly Operator.OpType optype;
12727
public readonly FullNamedExpression ret_type;
12728
public readonly Location location;
12730
public OperatorDeclaration (Operator.OpType op, FullNamedExpression ret_type, Location location)
12733
this.ret_type = ret_type;
12734
this.location = location;
12738
void Error_ExpectingTypeName (Expression expr)
12740
if (expr is Invocation){
12741
report.Error (1002, expr.Location, "Expecting `;'");
12743
Expression.Error_InvalidExpressionStatement (report, expr.Location);
12747
void Error_ParameterModifierNotValid (string modifier, Location loc)
12749
report.Error (631, loc, "The parameter modifier `{0}' is not valid in this context",
12753
void Error_DuplicateParameterModifier (Location loc, Parameter.Modifier mod)
12755
report.Error (1107, loc, "Duplicate parameter modifier `{0}'",
12756
Parameter.GetModifierSignature (mod));
12759
void Error_TypeExpected (Location loc)
12761
report.Error (1031, loc, "Type expected");
12764
void Error_UnsafeCodeNotAllowed (Location loc)
12766
report.Error (227, loc, "Unsafe code requires the `unsafe' command line option to be specified");
12769
void Warning_EmptyStatement (Location loc)
12771
report.Warning (642, 3, loc, "Possible mistaken empty statement");
12774
void Error_NamedArgumentExpected (NamedArgument a)
12776
report.Error (1738, a.Location, "Named arguments must appear after the positional arguments");
12779
void Error_MissingInitializer (Location loc)
12781
report.Error (210, loc, "You must provide an initializer in a fixed or using statement declaration");
12784
void push_current_container (TypeDefinition tc, object partial_token)
12786
if (module.Evaluator != null){
12787
tc.Definition.Modifiers = tc.ModFlags = (tc.ModFlags & ~Modifiers.AccessibilityMask) | Modifiers.PUBLIC;
12789
undo = new Undo ();
12791
undo.AddTypeContainer (current_container, tc);
12794
if (partial_token != null)
12795
current_container.AddPartial (tc);
12797
current_container.AddTypeContainer (tc);
12799
++lexer.parsing_declaration;
12800
current_container = tc;
12804
TypeContainer pop_current_class ()
12806
var retval = current_container;
12808
current_container = current_container.Parent;
12809
current_type = current_type.Parent as TypeDefinition;
12814
[System.Diagnostics.Conditional ("FULL_AST")]
12815
void StoreModifierLocation (object token, Location loc)
12820
if (mod_locations == null)
12821
mod_locations = new List<Tuple<Modifiers, Location>> ();
12823
mod_locations.Add (Tuple.Create ((Modifiers) token, loc));
12826
List<Tuple<Modifiers, Location>> GetModifierLocations ()
12828
var result = mod_locations;
12829
mod_locations = null;
12833
string CheckAttributeTarget (string a, Location l)
12836
case "assembly" : case "module" : case "field" : case "method" : case "param" : case "property" : case "type" :
12840
report.Warning (658, 1, l,
12841
"`{0}' is invalid attribute target. All attributes in this attribute section will be ignored", a);
12842
return string.Empty;
12845
static bool IsUnaryOperator (Operator.OpType op)
12849
case Operator.OpType.LogicalNot:
12850
case Operator.OpType.OnesComplement:
12851
case Operator.OpType.Increment:
12852
case Operator.OpType.Decrement:
12853
case Operator.OpType.True:
12854
case Operator.OpType.False:
12855
case Operator.OpType.UnaryPlus:
12856
case Operator.OpType.UnaryNegation:
12862
void syntax_error (Location l, string msg)
12864
report.Error (1003, l, "Syntax error, " + msg);
12869
public Tokenizer Lexer {
12875
static CSharpParser ()
12877
oob_stack = new Stack<object> ();
12880
public CSharpParser (SeekableStreamReader reader, CompilationSourceFile file)
12881
: this (reader, file, file.Compiler.Report)
12885
public CSharpParser (SeekableStreamReader reader, CompilationSourceFile file, Report report)
12888
current_container = current_namespace = file;
12890
this.module = file.Module;
12891
this.compiler = file.Compiler;
12892
this.settings = compiler.Settings;
12893
this.report = report;
12895
lang_version = settings.Version;
12896
yacc_verbose_flag = settings.VerboseParserFlag;
12897
doc_support = settings.DocumentationFile != null;
12898
oob_stack.Clear ();
12899
lexer = new Tokenizer (reader, file);
12902
lbag = new LocationsBag ();
12907
use_global_stacks = true;
12910
public void parse ()
12912
eof_token = Token.EOF;
12913
Tokenizer.LocatedToken.Initialize ();
12916
if (yacc_verbose_flag > 1)
12917
yyparse (lexer, new yydebug.yyDebugSimple ());
12921
Tokenizer tokenizer = lexer as Tokenizer;
12922
tokenizer.cleanup ();
12923
} catch (Exception e){
12924
if (e is yyParser.yyUnexpectedEof) {
12925
Error_SyntaxError (yyToken);
12926
UnexpectedEOF = true;
12930
if (e is yyParser.yyException) {
12931
report.Error (-25, lexer.Location, "Parsing error");
12933
// Used by compiler-tester to test internal errors
12934
if (yacc_verbose_flag > 0 || e is FatalException)
12937
report.Error (589, lexer.Location, "Internal compiler error during parsing" + e);
12942
void CheckToken (int error, int yyToken, string msg, Location loc)
12944
if (yyToken >= Token.FIRST_KEYWORD && yyToken <= Token.LAST_KEYWORD)
12945
report.Error (error, loc, "{0}: `{1}' is a keyword", msg, GetTokenName (yyToken));
12947
report.Error (error, loc, msg);
12950
string ConsumeStoredComment ()
12952
string s = tmpComment;
12954
Lexer.doc_state = XmlCommentState.Allowed;
12958
void FeatureIsNotAvailable (Location loc, string feature)
12960
report.FeatureIsNotAvailable (compiler, loc, feature);
12963
Location GetLocation (object obj)
12965
var lt = obj as Tokenizer.LocatedToken;
12967
return lt.Location;
12969
var mn = obj as MemberName;
12971
return mn.Location;
12973
var expr = obj as Expression;
12975
return expr.Location;
12977
return lexer.Location;
12980
public LocationsBag LocationsBag {
12986
void start_block (Location loc)
12988
if (current_block == null) {
12989
current_block = new ToplevelBlock (compiler, current_local_parameters, loc);
12990
parsing_anonymous_method = false;
12991
} else if (parsing_anonymous_method) {
12992
current_block = new ParametersBlock (current_block, current_local_parameters, loc);
12993
parsing_anonymous_method = false;
12995
current_block = new ExplicitBlock (current_block, loc, Location.Null);
13000
end_block (Location loc)
13002
Block retval = current_block.Explicit;
13003
retval.SetEndLocation (loc);
13004
current_block = retval.Parent;
13008
void start_anonymous (bool isLambda, ParametersCompiled parameters, bool isAsync, Location loc)
13010
oob_stack.Push (current_anonymous_method);
13011
oob_stack.Push (current_local_parameters);
13012
oob_stack.Push (current_variable);
13013
oob_stack.Push (async_block);
13015
current_local_parameters = parameters;
13017
if (lang_version <= LanguageVersion.ISO_2)
13018
FeatureIsNotAvailable (loc, "lambda expressions");
13020
current_anonymous_method = new LambdaExpression (loc);
13022
if (lang_version == LanguageVersion.ISO_1)
13023
FeatureIsNotAvailable (loc, "anonymous methods");
13025
current_anonymous_method = new AnonymousMethodExpression (loc);
13027
current_anonymous_method.IsAsync = isAsync;
13029
async_block = isAsync;
13030
// Force the next block to be created as a ToplevelBlock
13031
parsing_anonymous_method = true;
13035
* Completes the anonymous method processing, if lambda_expr is null, this
13036
* means that we have a Statement instead of an Expression embedded
13038
AnonymousMethodExpression end_anonymous (ParametersBlock anon_block)
13040
AnonymousMethodExpression retval;
13043
anon_block.IsAsync = true;
13045
current_anonymous_method.Block = anon_block;
13046
retval = current_anonymous_method;
13048
async_block = (bool) oob_stack.Pop ();
13049
current_variable = (BlockVariableDeclaration) oob_stack.Pop ();
13050
current_local_parameters = (ParametersCompiled) oob_stack.Pop ();
13051
current_anonymous_method = (AnonymousMethodExpression) oob_stack.Pop ();
13056
void Error_SyntaxError (int token)
13058
Error_SyntaxError (0, token);
13061
void Error_SyntaxError (int error_code, int token)
13063
Error_SyntaxError (error_code, token, "Unexpected symbol");
13066
void Error_SyntaxError (int error_code, int token, string msg)
13068
Lexer.CompleteOnEOF = false;
13070
// An error message has been reported by tokenizer
13071
if (token == Token.ERROR)
13074
string symbol = GetSymbolName (token);
13075
string expecting = GetExpecting ();
13076
var loc = lexer.Location - symbol.Length;
13078
if (error_code == 0) {
13079
if (expecting == "`identifier'") {
13080
if (token > Token.FIRST_KEYWORD && token < Token.LAST_KEYWORD) {
13081
report.Error (1041, loc, "Identifier expected, `{0}' is a keyword", symbol);
13086
expecting = "identifier";
13087
} else if (expecting == "`)'") {
13094
if (string.IsNullOrEmpty (expecting))
13095
report.Error (error_code, loc, "{1} `{0}'", symbol, msg);
13097
report.Error (error_code, loc, "{2} `{0}', expecting {1}", symbol, expecting, msg);
13100
string GetExpecting ()
13102
int [] tokens = yyExpectingTokens (yyExpectingState);
13103
var names = new List<string> (tokens.Length);
13104
bool has_type = false;
13105
bool has_identifier = false;
13106
for (int i = 0; i < tokens.Length; i++){
13107
int token = tokens [i];
13108
has_identifier |= token == Token.IDENTIFIER;
13110
string name = GetTokenName (token);
13111
if (name == "<internal>")
13114
has_type |= name == "type";
13115
if (names.Contains (name))
13122
// Too many tokens to enumerate
13124
if (names.Count > 8)
13127
if (has_type && has_identifier)
13128
names.Remove ("identifier");
13130
if (names.Count == 1)
13131
return "`" + GetTokenName (tokens [0]) + "'";
13133
StringBuilder sb = new StringBuilder ();
13135
int count = names.Count;
13136
for (int i = 0; i < count; i++){
13137
bool last = i + 1 == count;
13141
sb.Append (names [i]);
13142
sb.Append (last ? "'" : count < 3 ? "' " : "', ");
13144
return sb.ToString ();
13148
string GetSymbolName (int token)
13151
case Token.LITERAL:
13152
return ((Constant)lexer.Value).GetValue ().ToString ();
13153
case Token.IDENTIFIER:
13154
return ((Tokenizer.LocatedToken)lexer.Value).Value;
13164
case Token.DECIMAL:
13196
case Token.BITWISE_AND:
13198
case Token.BITWISE_OR:
13202
case Token.PERCENT:
13212
case Token.OP_SHIFT_LEFT:
13214
case Token.OP_SHIFT_RIGHT:
13234
case Token.OP_COALESCING:
13236
case Token.OP_MULT_ASSIGN:
13238
case Token.OP_DIV_ASSIGN:
13240
case Token.OP_MOD_ASSIGN:
13242
case Token.OP_ADD_ASSIGN:
13244
case Token.OP_SUB_ASSIGN:
13246
case Token.OP_SHIFT_LEFT_ASSIGN:
13248
case Token.OP_SHIFT_RIGHT_ASSIGN:
13250
case Token.OP_AND_ASSIGN:
13252
case Token.OP_XOR_ASSIGN:
13254
case Token.OP_OR_ASSIGN:
13258
return GetTokenName (token);
13261
static string GetTokenName (int token)
13264
case Token.ABSTRACT:
13280
case Token.CHECKED:
13286
case Token.CONTINUE:
13288
case Token.DEFAULT:
13290
case Token.DELEGATE:
13300
case Token.EXPLICIT:
13303
case Token.EXTERN_ALIAS:
13307
case Token.FINALLY:
13313
case Token.FOREACH:
13319
case Token.IMPLICIT:
13323
case Token.INTERFACE:
13324
return "interface";
13325
case Token.INTERNAL:
13331
case Token.NAMESPACE:
13332
return "namespace";
13337
case Token.OPERATOR:
13341
case Token.OVERRIDE:
13345
case Token.PRIVATE:
13347
case Token.PROTECTED:
13348
return "protected";
13351
case Token.READONLY:
13363
case Token.STACKALLOC:
13364
return "stackalloc";
13381
case Token.UNCHECKED:
13382
return "unchecked";
13387
case Token.VIRTUAL:
13389
case Token.VOLATILE:
13395
case Token.ARGLIST:
13396
return "__arglist";
13397
case Token.REFVALUE:
13398
return "__refvalue";
13399
case Token.REFTYPE:
13400
return "__reftype";
13401
case Token.MAKEREF:
13402
return "__makeref";
13403
case Token.PARTIAL:
13408
case Token.FROM_FIRST:
13424
case Token.ORDERBY:
13426
case Token.ASCENDING:
13427
return "ascending";
13428
case Token.DESCENDING:
13429
return "descending";
13436
case Token.OPEN_BRACE:
13438
case Token.CLOSE_BRACE:
13440
case Token.OPEN_BRACKET:
13441
case Token.OPEN_BRACKET_EXPR:
13443
case Token.CLOSE_BRACKET:
13445
case Token.OPEN_PARENS_CAST:
13446
case Token.OPEN_PARENS_LAMBDA:
13447
case Token.OPEN_PARENS:
13449
case Token.CLOSE_PARENS:
13455
case Token.DEFAULT_COLON:
13459
case Token.SEMICOLON:
13470
case Token.BITWISE_AND:
13471
case Token.BITWISE_OR:
13473
case Token.PERCENT:
13478
case Token.OP_SHIFT_LEFT:
13479
case Token.OP_SHIFT_RIGHT:
13487
case Token.OP_COALESCING:
13488
case Token.OP_MULT_ASSIGN:
13489
case Token.OP_DIV_ASSIGN:
13490
case Token.OP_MOD_ASSIGN:
13491
case Token.OP_ADD_ASSIGN:
13492
case Token.OP_SUB_ASSIGN:
13493
case Token.OP_SHIFT_LEFT_ASSIGN:
13494
case Token.OP_SHIFT_RIGHT_ASSIGN:
13495
case Token.OP_AND_ASSIGN:
13496
case Token.OP_XOR_ASSIGN:
13497
case Token.OP_OR_ASSIGN:
13498
return "<operator>";
13504
case Token.DECIMAL:
13520
case Token.OP_GENERICS_LT:
13521
case Token.GENERIC_DIMENSION:
13523
case Token.OP_GENERICS_GT:
13526
case Token.INTERR_NULLABLE:
13528
case Token.DOUBLE_COLON:
13530
case Token.LITERAL:
13532
case Token.IDENTIFIER:
13534
return "identifier";
13537
return "end-of-file";
13539
// All of these are internal.
13542
case Token.FIRST_KEYWORD:
13543
case Token.EVAL_COMPILATION_UNIT_PARSER:
13544
case Token.EVAL_USING_DECLARATIONS_UNIT_PARSER:
13545
case Token.EVAL_STATEMENT_PARSER:
13546
case Token.LAST_KEYWORD:
13547
case Token.GENERATE_COMPLETION:
13548
case Token.COMPLETE_COMPLETION:
13549
return "<internal>";
13551
// A bit more robust.
13553
return yyNames [token];
13560
namespace yydebug {
13562
internal interface yyDebug {
13563
void push (int state, Object value);
13564
void lex (int state, int token, string name, Object value);
13565
void shift (int from, int to, int errorFlag);
13566
void pop (int state);
13567
void discard (int state, int token, string name, Object value);
13568
void reduce (int from, int to, int rule, string text, int len);
13569
void shift (int from, int to);
13570
void accept (Object value);
13571
void error (string message);
13575
class yyDebugSimple : yyDebug {
13576
void println (string s){
13577
Console.Error.WriteLine (s);
13580
public void push (int state, Object value) {
13581
println ("push\tstate "+state+"\tvalue "+value);
13584
public void lex (int state, int token, string name, Object value) {
13585
println("lex\tstate "+state+"\treading "+name+"\tvalue "+value);
13588
public void shift (int from, int to, int errorFlag) {
13589
switch (errorFlag) {
13590
default: // normally
13591
println("shift\tfrom state "+from+" to "+to);
13593
case 0: case 1: case 2: // in error recovery
13594
println("shift\tfrom state "+from+" to "+to
13595
+"\t"+errorFlag+" left to recover");
13597
case 3: // normally
13598
println("shift\tfrom state "+from+" to "+to+"\ton error");
13603
public void pop (int state) {
13604
println("pop\tstate "+state+"\ton error");
13607
public void discard (int state, int token, string name, Object value) {
13608
println("discard\tstate "+state+"\ttoken "+name+"\tvalue "+value);
13611
public void reduce (int from, int to, int rule, string text, int len) {
13612
println("reduce\tstate "+from+"\tuncover "+to
13613
+"\trule ("+rule+") "+text);
13616
public void shift (int from, int to) {
13617
println("goto\tfrom state "+from+" to "+to);
13620
public void accept (Object value) {
13621
println("accept\tvalue "+value);
13624
public void error (string message) {
13625
println("error\t"+message);
13628
public void reject () {
13634
// %token constants
13636
public const int EOF = 257;
13637
public const int NONE = 258;
13638
public const int ERROR = 259;
13639
public const int FIRST_KEYWORD = 260;
13640
public const int ABSTRACT = 261;
13641
public const int AS = 262;
13642
public const int ADD = 263;
13643
public const int BASE = 264;
13644
public const int BOOL = 265;
13645
public const int BREAK = 266;
13646
public const int BYTE = 267;
13647
public const int CASE = 268;
13648
public const int CATCH = 269;
13649
public const int CHAR = 270;
13650
public const int CHECKED = 271;
13651
public const int CLASS = 272;
13652
public const int CONST = 273;
13653
public const int CONTINUE = 274;
13654
public const int DECIMAL = 275;
13655
public const int DEFAULT = 276;
13656
public const int DELEGATE = 277;
13657
public const int DO = 278;
13658
public const int DOUBLE = 279;
13659
public const int ELSE = 280;
13660
public const int ENUM = 281;
13661
public const int EVENT = 282;
13662
public const int EXPLICIT = 283;
13663
public const int EXTERN = 284;
13664
public const int FALSE = 285;
13665
public const int FINALLY = 286;
13666
public const int FIXED = 287;
13667
public const int FLOAT = 288;
13668
public const int FOR = 289;
13669
public const int FOREACH = 290;
13670
public const int GOTO = 291;
13671
public const int IF = 292;
13672
public const int IMPLICIT = 293;
13673
public const int IN = 294;
13674
public const int INT = 295;
13675
public const int INTERFACE = 296;
13676
public const int INTERNAL = 297;
13677
public const int IS = 298;
13678
public const int LOCK = 299;
13679
public const int LONG = 300;
13680
public const int NAMESPACE = 301;
13681
public const int NEW = 302;
13682
public const int NULL = 303;
13683
public const int OBJECT = 304;
13684
public const int OPERATOR = 305;
13685
public const int OUT = 306;
13686
public const int OVERRIDE = 307;
13687
public const int PARAMS = 308;
13688
public const int PRIVATE = 309;
13689
public const int PROTECTED = 310;
13690
public const int PUBLIC = 311;
13691
public const int READONLY = 312;
13692
public const int REF = 313;
13693
public const int RETURN = 314;
13694
public const int REMOVE = 315;
13695
public const int SBYTE = 316;
13696
public const int SEALED = 317;
13697
public const int SHORT = 318;
13698
public const int SIZEOF = 319;
13699
public const int STACKALLOC = 320;
13700
public const int STATIC = 321;
13701
public const int STRING = 322;
13702
public const int STRUCT = 323;
13703
public const int SWITCH = 324;
13704
public const int THIS = 325;
13705
public const int THROW = 326;
13706
public const int TRUE = 327;
13707
public const int TRY = 328;
13708
public const int TYPEOF = 329;
13709
public const int UINT = 330;
13710
public const int ULONG = 331;
13711
public const int UNCHECKED = 332;
13712
public const int UNSAFE = 333;
13713
public const int USHORT = 334;
13714
public const int USING = 335;
13715
public const int VIRTUAL = 336;
13716
public const int VOID = 337;
13717
public const int VOLATILE = 338;
13718
public const int WHERE = 339;
13719
public const int WHILE = 340;
13720
public const int ARGLIST = 341;
13721
public const int PARTIAL = 342;
13722
public const int ARROW = 343;
13723
public const int FROM = 344;
13724
public const int FROM_FIRST = 345;
13725
public const int JOIN = 346;
13726
public const int ON = 347;
13727
public const int EQUALS = 348;
13728
public const int SELECT = 349;
13729
public const int GROUP = 350;
13730
public const int BY = 351;
13731
public const int LET = 352;
13732
public const int ORDERBY = 353;
13733
public const int ASCENDING = 354;
13734
public const int DESCENDING = 355;
13735
public const int INTO = 356;
13736
public const int INTERR_NULLABLE = 357;
13737
public const int EXTERN_ALIAS = 358;
13738
public const int REFVALUE = 359;
13739
public const int REFTYPE = 360;
13740
public const int MAKEREF = 361;
13741
public const int ASYNC = 362;
13742
public const int AWAIT = 363;
13743
public const int GET = 364;
13744
public const int SET = 365;
13745
public const int LAST_KEYWORD = 366;
13746
public const int OPEN_BRACE = 367;
13747
public const int CLOSE_BRACE = 368;
13748
public const int OPEN_BRACKET = 369;
13749
public const int CLOSE_BRACKET = 370;
13750
public const int OPEN_PARENS = 371;
13751
public const int CLOSE_PARENS = 372;
13752
public const int DOT = 373;
13753
public const int COMMA = 374;
13754
public const int COLON = 375;
13755
public const int SEMICOLON = 376;
13756
public const int TILDE = 377;
13757
public const int PLUS = 378;
13758
public const int MINUS = 379;
13759
public const int BANG = 380;
13760
public const int ASSIGN = 381;
13761
public const int OP_LT = 382;
13762
public const int OP_GT = 383;
13763
public const int BITWISE_AND = 384;
13764
public const int BITWISE_OR = 385;
13765
public const int STAR = 386;
13766
public const int PERCENT = 387;
13767
public const int DIV = 388;
13768
public const int CARRET = 389;
13769
public const int INTERR = 390;
13770
public const int DOUBLE_COLON = 391;
13771
public const int OP_INC = 392;
13772
public const int OP_DEC = 393;
13773
public const int OP_SHIFT_LEFT = 394;
13774
public const int OP_SHIFT_RIGHT = 395;
13775
public const int OP_LE = 396;
13776
public const int OP_GE = 397;
13777
public const int OP_EQ = 398;
13778
public const int OP_NE = 399;
13779
public const int OP_AND = 400;
13780
public const int OP_OR = 401;
13781
public const int OP_MULT_ASSIGN = 402;
13782
public const int OP_DIV_ASSIGN = 403;
13783
public const int OP_MOD_ASSIGN = 404;
13784
public const int OP_ADD_ASSIGN = 405;
13785
public const int OP_SUB_ASSIGN = 406;
13786
public const int OP_SHIFT_LEFT_ASSIGN = 407;
13787
public const int OP_SHIFT_RIGHT_ASSIGN = 408;
13788
public const int OP_AND_ASSIGN = 409;
13789
public const int OP_XOR_ASSIGN = 410;
13790
public const int OP_OR_ASSIGN = 411;
13791
public const int OP_PTR = 412;
13792
public const int OP_COALESCING = 413;
13793
public const int OP_GENERICS_LT = 414;
13794
public const int OP_GENERICS_LT_DECL = 415;
13795
public const int OP_GENERICS_GT = 416;
13796
public const int LITERAL = 417;
13797
public const int IDENTIFIER = 418;
13798
public const int OPEN_PARENS_LAMBDA = 419;
13799
public const int OPEN_PARENS_CAST = 420;
13800
public const int GENERIC_DIMENSION = 421;
13801
public const int DEFAULT_COLON = 422;
13802
public const int OPEN_BRACKET_EXPR = 423;
13803
public const int EVAL_STATEMENT_PARSER = 424;
13804
public const int EVAL_COMPILATION_UNIT_PARSER = 425;
13805
public const int EVAL_USING_DECLARATIONS_UNIT_PARSER = 426;
13806
public const int DOC_SEE = 427;
13807
public const int GENERATE_COMPLETION = 428;
13808
public const int COMPLETE_COMPLETION = 429;
13809
public const int UMINUS = 430;
13810
public const int yyErrorCode = 256;
13812
namespace yyParser {
13814
/** thrown for irrecoverable syntax errors and stack overflow.
13816
internal class yyException : System.Exception {
13817
public yyException (string message) : base (message) {
13820
internal class yyUnexpectedEof : yyException {
13821
public yyUnexpectedEof (string message) : base (message) {
13823
public yyUnexpectedEof () : base ("") {
13827
/** must be implemented by a scanner object to supply input to the parser.
13829
internal interface yyInput {
13830
/** move on to next token.
13831
@return false if positioned beyond tokens.
13832
@throws IOException on input error.
13834
bool advance (); // throws java.io.IOException;
13835
/** classifies current token.
13836
Should not be called if advance() returned false.
13837
@return current %token or single character.
13840
/** associated with current token.
13841
Should not be called if advance() returned false.
13842
@return value for token().
13847
} // close outermost namespace, that MUST HAVE BEEN opened in the prolog