~ubuntu-branches/ubuntu/trusty/monodevelop/trusty-proposed

« back to all changes in this revision

Viewing changes to contrib/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs

  • Committer: Package Import Robot
  • Author(s): Jo Shields
  • Date: 2013-05-12 09:46:03 UTC
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20130512094603-mad323bzcxvmcam0
Tags: upstream-4.0.5+dfsg
ImportĀ upstreamĀ versionĀ 4.0.5+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// created by jay 0.7 (c) 1998 Axel.Schreiner@informatik.uni-osnabrueck.de
2
 
 
3
 
#line 2 "cs-parser.jay"
4
 
//
5
 
// cs-parser.jay: The Parser for the C# compiler
6
 
//
7
 
// Authors: Miguel de Icaza (miguel@gnome.org)
8
 
//          Ravi Pratap     (ravi@ximian.com)
9
 
//          Marek Safar     (marek.safar@gmail.com)
10
 
//
11
 
// Dual Licensed under the terms of the GNU GPL and the MIT X11 license
12
 
//
13
 
// (C) 2001 Ximian, Inc (http://www.ximian.com)
14
 
// (C) 2004-2011 Novell, Inc
15
 
// Copyright 2011 Xamarin Inc.
16
 
//
17
 
// TODO:
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:
20
 
//       "public X { }"
21
 
//
22
 
 
23
 
using System.Text;
24
 
using System.IO;
25
 
using System;
26
 
using System.Collections.Generic;
27
 
 
28
 
namespace Mono.CSharp
29
 
{
30
 
        /// <summary>
31
 
        ///    The C# Parser
32
 
        /// </summary>
33
 
        public class CSharpParser
34
 
        {
35
 
                [Flags]
36
 
                enum ParameterModifierType
37
 
                {
38
 
                        Ref             = 1 << 1,
39
 
                        Out             = 1 << 2,
40
 
                        This    = 1 << 3,
41
 
                        Params  = 1 << 4,
42
 
                        Arglist = 1 << 5,
43
 
                        DefaultValue = 1 << 6,
44
 
                        
45
 
                        All = Ref | Out | This | Params | Arglist | DefaultValue
46
 
                }
47
 
                
48
 
                static readonly object ModifierNone = 0;
49
 
        
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;
57
 
        
58
 
                /// <summary>
59
 
                ///   Current block is used to add statements as we find
60
 
                ///   them.  
61
 
                /// </summary>
62
 
                Block      current_block;
63
 
                
64
 
                BlockVariableDeclaration current_variable;
65
 
 
66
 
                Delegate   current_delegate;
67
 
                
68
 
                AnonymousMethodExpression current_anonymous_method;
69
 
 
70
 
                /// <summary>
71
 
                ///   This is used by the unary_expression code to resolve
72
 
                ///   a name against a parameter.  
73
 
                /// </summary>
74
 
                
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;
78
 
 
79
 
                bool parsing_anonymous_method;
80
 
                
81
 
                bool async_block;
82
 
 
83
 
                ///
84
 
                /// An out-of-band stack.
85
 
                ///
86
 
                static Stack<object> oob_stack;
87
 
 
88
 
                ///
89
 
                /// Controls the verbosity of the errors produced by the parser
90
 
                ///
91
 
                int yacc_verbose_flag;
92
 
 
93
 
                /// 
94
 
                /// Used by the interactive shell, flags whether EOF was reached
95
 
                /// and an error was produced
96
 
                ///
97
 
                public bool UnexpectedEOF;
98
 
 
99
 
                ///
100
 
                /// The current file.
101
 
                ///
102
 
                readonly CompilationSourceFile file;
103
 
 
104
 
                ///
105
 
                /// Temporary Xml documentation cache.
106
 
                /// For enum types, we need one more temporary store.
107
 
                ///
108
 
                string tmpComment;
109
 
                string enumTypeComment;
110
 
                        
111
 
                /// Current attribute target
112
 
                string current_attr_target;
113
 
                
114
 
                ParameterModifierType valid_param_mod;
115
 
                
116
 
                bool default_parameter_used;
117
 
 
118
 
                /// When using the interactive parser, this holds the
119
 
                /// resulting expression
120
 
                public Class InteractiveResult;
121
 
 
122
 
                //
123
 
                // Keeps track of global data changes to undo on parser error
124
 
                //
125
 
                public Undo undo;
126
 
                
127
 
                Stack<Linq.QueryBlock> linq_clause_blocks;
128
 
 
129
 
                ModuleContainer module;
130
 
                
131
 
                readonly CompilerContext compiler;
132
 
                readonly LanguageVersion lang_version;
133
 
                readonly bool doc_support;
134
 
                readonly CompilerSettings settings;
135
 
                readonly Report report;
136
 
                
137
 
                //
138
 
                // Instead of allocating carrier array everytime we
139
 
                // share the bucket for very common constructs which can never
140
 
                // be recursive
141
 
                //
142
 
                static List<Parameter> parameters_bucket = new List<Parameter> (6);
143
 
                
144
 
                //
145
 
                // Full AST support members
146
 
                //
147
 
                LocationsBag lbag;
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> ();
153
 
 
154
 
                bool HadAttributeParens;
155
 
                List<Location> attributeCommas = new List<Location> ();
156
 
                List<Location> attributeArgumentCommas = new List<Location> ();
157
 
                List<Location> parameterListCommas = new List<Location> ();
158
 
#line default
159
 
 
160
 
  /** error output stream.
161
 
      It should be changeable.
162
 
    */
163
 
  public System.IO.TextWriter ErrorOutput = System.Console.Out;
164
 
 
165
 
  /** simplified error message.
166
 
      @see <a href="#yyerror(java.lang.String, java.lang.String[])">yyerror</a>
167
 
    */
168
 
  public void yyerror (string message) {
169
 
    yyerror(message, null);
170
 
  }
171
 
 
172
 
  /* An EOF token */
173
 
  public int eof_token;
174
 
 
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.
179
 
    */
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 ();
186
 
    } else
187
 
      ErrorOutput.WriteLine (message);
188
 
  }
189
 
 
190
 
  /** debugging support, requires the package jay.yydebug.
191
 
      Set to null to suppress debugging messages.
192
 
    */
193
 
//t  internal yydebug.yyDebug debug;
194
 
 
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",
202
 
//t    "$$1 :",
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",
209
 
//t    "opt_EOF :",
210
 
//t    "opt_EOF : EOF",
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",
221
 
//t    "$$2 :",
222
 
//t    "$$3 :",
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",
229
 
//t    "opt_comma :",
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",
251
 
//t    "$$4 :",
252
 
//t    "attribute_section : OPEN_BRACKET $$4 attribute_section_cont",
253
 
//t    "$$5 :",
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",
262
 
//t    "$$6 :",
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",
274
 
//t    "$$7 :",
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",
296
 
//t    "$$8 :",
297
 
//t    "$$9 :",
298
 
//t    "$$10 :",
299
 
//t    "$$11 :",
300
 
//t    "$$12 :",
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",
303
 
//t    "$$13 :",
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",
310
 
//t    "$$14 :",
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",
315
 
//t    "$$15 :",
316
 
//t    "field_declaration : opt_attributes opt_modifiers member_type IDENTIFIER $$15 opt_field_initializer opt_field_declarators SEMICOLON",
317
 
//t    "$$16 :",
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 :",
321
 
//t    "$$17 :",
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",
328
 
//t    "$$18 :",
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",
335
 
//t    "$$19 :",
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",
341
 
//t    "$$20 :",
342
 
//t    "method_declaration : method_header $$20 method_body",
343
 
//t    "$$21 :",
344
 
//t    "$$22 :",
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",
346
 
//t    "$$23 :",
347
 
//t    "$$24 :",
348
 
//t    "$$25 :",
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",
372
 
//t    "$$26 :",
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",
388
 
//t    "$$27 :",
389
 
//t    "$$28 :",
390
 
//t    "$$29 :",
391
 
//t    "property_declaration : opt_attributes opt_modifiers member_type member_declaration_name $$27 OPEN_BRACE $$28 accessor_declarations $$29 CLOSE_BRACE",
392
 
//t    "$$30 :",
393
 
//t    "$$31 :",
394
 
//t    "$$32 :",
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",
401
 
//t    "$$33 :",
402
 
//t    "get_accessor_declaration : opt_attributes opt_modifiers GET $$33 accessor_body",
403
 
//t    "$$34 :",
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",
408
 
//t    "$$35 :",
409
 
//t    "$$36 :",
410
 
//t    "$$37 :",
411
 
//t    "$$38 :",
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",
427
 
//t    "$$39 :",
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",
433
 
//t    "$$40 :",
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",
458
 
//t    "$$41 :",
459
 
//t    "conversion_operator_declarator : IMPLICIT OPERATOR type OPEN_PARENS $$41 opt_formal_parameter_list CLOSE_PARENS",
460
 
//t    "$$42 :",
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",
465
 
//t    "$$43 :",
466
 
//t    "$$44 :",
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",
472
 
//t    "$$45 :",
473
 
//t    "constructor_initializer : COLON BASE OPEN_PARENS $$45 opt_argument_list CLOSE_PARENS",
474
 
//t    "$$46 :",
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",
478
 
//t    "$$47 :",
479
 
//t    "destructor_declaration : opt_attributes opt_modifiers TILDE $$47 IDENTIFIER OPEN_PARENS CLOSE_PARENS method_body",
480
 
//t    "$$48 :",
481
 
//t    "event_declaration : opt_attributes opt_modifiers EVENT type member_declaration_name $$48 opt_event_initializer opt_event_declarators SEMICOLON",
482
 
//t    "$$49 :",
483
 
//t    "$$50 :",
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 :",
486
 
//t    "$$51 :",
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",
493
 
//t    "$$52 :",
494
 
//t    "event_declarator : COMMA IDENTIFIER ASSIGN $$52 event_variable_initializer",
495
 
//t    "$$53 :",
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",
502
 
//t    "$$54 :",
503
 
//t    "add_accessor_declaration : opt_attributes opt_modifiers ADD $$54 event_accessor_block",
504
 
//t    "$$55 :",
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",
509
 
//t    "$$56 :",
510
 
//t    "$$57 :",
511
 
//t    "$$58 :",
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",
522
 
//t    "$$59 :",
523
 
//t    "enum_member_declaration : opt_attributes IDENTIFIER $$59 ASSIGN constant_expression",
524
 
//t    "$$60 :",
525
 
//t    "$$61 :",
526
 
//t    "$$62 :",
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",
540
 
//t    "$$63 :",
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",
560
 
//t    "type : VOID",
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",
688
 
//t    "$$64 :",
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",
715
 
//t    "$$65 :",
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",
731
 
//t    "$$66 :",
732
 
//t    "anonymous_method_expression : DELEGATE opt_anonymous_method_signature $$66 block",
733
 
//t    "$$67 :",
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",
737
 
//t    "$$68 :",
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",
808
 
//t    "$$69 :",
809
 
//t    "lambda_expression_body_simple : $$69 expression_or_error",
810
 
//t    "expression_or_error : expression",
811
 
//t    "expression_or_error : error",
812
 
//t    "$$70 :",
813
 
//t    "lambda_expression : IDENTIFIER ARROW $$70 lambda_expression_body",
814
 
//t    "$$71 :",
815
 
//t    "lambda_expression : ASYNC identifier_inside_body ARROW $$71 lambda_expression_body",
816
 
//t    "$$72 :",
817
 
//t    "$$73 :",
818
 
//t    "lambda_expression : OPEN_PARENS_LAMBDA $$72 opt_lambda_parameter_list CLOSE_PARENS ARROW $$73 lambda_expression_body",
819
 
//t    "$$74 :",
820
 
//t    "$$75 :",
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",
833
 
//t    "$$76 :",
834
 
//t    "$$77 :",
835
 
//t    "$$78 :",
836
 
//t    "$$79 :",
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",
838
 
//t    "opt_partial :",
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",
878
 
//t    "$$80 :",
879
 
//t    "block : OPEN_BRACE $$80 opt_statement_list block_end",
880
 
//t    "block_end : CLOSE_BRACE",
881
 
//t    "block_end : COMPLETE_COMPLETION",
882
 
//t    "$$81 :",
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",
930
 
//t    "$$82 :",
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",
945
 
//t    "$$83 :",
946
 
//t    "block_variable_declaration : variable_type identifier_inside_body $$83 opt_local_variable_initializer opt_variable_declarators semicolon_or_handle_error_close_brace",
947
 
//t    "$$84 :",
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",
986
 
//t    "$$85 :",
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",
994
 
//t    "$$86 :",
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",
1010
 
//t    "$$87 :",
1011
 
//t    "for_statement : FOR open_parens_any $$87 for_statement_cont",
1012
 
//t    "$$88 :",
1013
 
//t    "for_statement_cont : opt_for_initializer SEMICOLON $$88 for_statement_condition",
1014
 
//t    "for_statement_cont : opt_for_initializer CLOSE_PARENS",
1015
 
//t    "$$89 :",
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",
1022
 
//t    "$$90 :",
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",
1034
 
//t    "$$91 :",
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",
1067
 
//t    "$$92 :",
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",
1072
 
//t    "$$93 :",
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",
1076
 
//t    "$$94 :",
1077
 
//t    "$$95 :",
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",
1079
 
//t    "$$96 :",
1080
 
//t    "$$97 :",
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",
1096
 
//t    "$$98 :",
1097
 
//t    "from_clause : FROM identifier_inside_body IN $$98 expression_or_error",
1098
 
//t    "$$99 :",
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",
1105
 
//t    "$$100 :",
1106
 
//t    "select_or_group_clause : SELECT $$100 expression_or_error",
1107
 
//t    "$$101 :",
1108
 
//t    "$$102 :",
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",
1117
 
//t    "$$103 :",
1118
 
//t    "let_clause : LET identifier_inside_body ASSIGN $$103 expression_or_error",
1119
 
//t    "$$104 :",
1120
 
//t    "where_clause : WHERE $$104 expression_or_error",
1121
 
//t    "$$105 :",
1122
 
//t    "$$106 :",
1123
 
//t    "$$107 :",
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",
1125
 
//t    "$$108 :",
1126
 
//t    "$$109 :",
1127
 
//t    "$$110 :",
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",
1131
 
//t    "$$111 :",
1132
 
//t    "orderby_clause : ORDERBY $$111 orderings",
1133
 
//t    "orderings : order_by",
1134
 
//t    "$$112 :",
1135
 
//t    "orderings : order_by COMMA $$112 orderings_then_by",
1136
 
//t    "orderings_then_by : then_by",
1137
 
//t    "$$113 :",
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 :",
1146
 
//t    "$$114 :",
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",
1150
 
//t    "$$115 :",
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",
1164
 
//t    "$$116 :",
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 :",
1172
 
//t    "$$117 :",
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",
1179
 
//t  };
1180
 
//t public static string getRule (int index) {
1181
 
//t    return yyRule [index];
1182
 
//t }
1183
 
//t}
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",
1233
 
  };
1234
 
 
1235
 
  /** index-checked interface to yyNames[].
1236
 
      @param token single character or %token value.
1237
 
      @return token name or [illegal] or [unknown].
1238
 
    */
1239
 
//t  public static string yyname (int token) {
1240
 
//t    if ((token < 0) || (token > yyNames.Length)) return "[illegal]";
1241
 
//t    string name;
1242
 
//t    if ((name = yyNames[token]) != null) return name;
1243
 
//t    return "[unknown]";
1244
 
//t  }
1245
 
 
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.
1250
 
    */
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) {
1258
 
          ++ len;
1259
 
          ok[token] = true;
1260
 
        }
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) {
1265
 
          ++ len;
1266
 
          ok[token] = true;
1267
 
        }
1268
 
    int [] result = new int [len];
1269
 
    for (n = token = 0; n < len;  ++ token)
1270
 
      if (ok[token]) result[n++] = token;
1271
 
    return result;
1272
 
  }
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]];
1278
 
    return result;
1279
 
  }
1280
 
 
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.
1287
 
    */
1288
 
  internal Object yyparse (yyParser.yyInput yyLex, Object yyd)
1289
 
                                 {
1290
 
//t    this.debug = (yydebug.yyDebug)yyd;
1291
 
    return yyparse(yyLex);
1292
 
  }
1293
 
 
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
1296
 
      of yyparse().
1297
 
    */
1298
 
  protected int yyMax;
1299
 
 
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.
1304
 
      @return first.
1305
 
    */
1306
 
  protected Object yyDefault (Object first) {
1307
 
    return first;
1308
 
  }
1309
 
 
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
1316
 
        int yyTop;
1317
 
 
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.
1323
 
    */
1324
 
  internal Object yyparse (yyParser.yyInput yyLex)
1325
 
  {
1326
 
    if (yyMax <= 0) yyMax = 256;                // initial size
1327
 
    int yyState = 0;                   // state stack ptr
1328
 
    int [] yyStates;                    // state stack 
1329
 
    yyVal = null;
1330
 
    yyToken = -1;
1331
 
    int yyErrorFlag = 0;                                // #tks to shift
1332
 
        if (use_global_stacks && global_yyStates != null) {
1333
 
                yyVals = global_yyVals;
1334
 
                yyStates = global_yyStates;
1335
 
   } else {
1336
 
                yyVals = new object [yyMax];
1337
 
                yyStates = new int [yyMax];
1338
 
                if (use_global_stacks) {
1339
 
                        global_yyVals = yyVals;
1340
 
                        global_yyStates = yyStates;
1341
 
                }
1342
 
        }
1343
 
 
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);
1348
 
      }
1349
 
      yyStates[yyTop] = yyState;
1350
 
      yyVals[yyTop] = yyVal;
1351
 
//t      if (debug != null) debug.push(yyState, yyVal);
1352
 
 
1353
 
      /*yyDiscarded:*/ while (true) {   // discarding a token does not change stack
1354
 
        int yyN;
1355
 
        if ((yyN = yyDefRed[yyState]) == 0) {   // else [default] reduce (yyN)
1356
 
          if (yyToken < 0) {
1357
 
            yyToken = yyLex.advance() ? yyLex.token() : 0;
1358
 
//t            if (debug != null)
1359
 
//t              debug.lex(yyState, yyToken, yyname(yyToken), yyLex.value());
1360
 
          }
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();
1367
 
            yyToken = -1;
1368
 
            if (yyErrorFlag > 0) -- yyErrorFlag;
1369
 
            goto continue_yyLoop;
1370
 
          }
1371
 
          if ((yyN = yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0
1372
 
              && yyN < yyTable.Length && yyCheck[yyN] == yyToken)
1373
 
            yyN = yyTable[yyN];                 // reduce (yyN)
1374
 
          else
1375
 
            switch (yyErrorFlag) {
1376
 
  
1377
 
            case 0:
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 ();
1382
 
              goto case 1;
1383
 
            case 1: case 2:
1384
 
              yyErrorFlag = 3;
1385
 
              do {
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;
1394
 
                }
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");
1399
 
  
1400
 
            case 3:
1401
 
              if (yyToken == 0) {
1402
 
//t                if (debug != null) debug.reject();
1403
 
                throw new yyParser.yyException("irrecoverable syntax error at end-of-file");
1404
 
              }
1405
 
//t              if (debug != null)
1406
 
//t                debug.discard(yyState, yyToken, yyname(yyToken),
1407
 
//t                                                     yyLex.value());
1408
 
              yyToken = -1;
1409
 
              goto continue_yyDiscarded;                // leave stack alone
1410
 
            }
1411
 
        }
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]);
1416
 
        switch (yyN) {
1417
 
case 1:
1418
 
#line 390 "cs-parser.jay"
1419
 
  {
1420
 
                Lexer.check_incorrect_doc_comment ();
1421
 
          }
1422
 
  break;
1423
 
case 2:
1424
 
#line 391 "cs-parser.jay"
1425
 
  { Lexer.CompleteOnEOF = false; }
1426
 
  break;
1427
 
case 6:
1428
 
  case_6();
1429
 
  break;
1430
 
case 7:
1431
 
#line 410 "cs-parser.jay"
1432
 
  {
1433
 
                module.AddAttributes ((Attributes) yyVals[0+yyTop], current_namespace);
1434
 
          }
1435
 
  break;
1436
 
case 8:
1437
 
  case_8();
1438
 
  break;
1439
 
case 13:
1440
 
  case_13();
1441
 
  break;
1442
 
case 14:
1443
 
#line 455 "cs-parser.jay"
1444
 
  {
1445
 
                Error_SyntaxError (yyToken);
1446
 
          }
1447
 
  break;
1448
 
case 17:
1449
 
  case_17();
1450
 
  break;
1451
 
case 18:
1452
 
  case_18();
1453
 
  break;
1454
 
case 19:
1455
 
  case_19();
1456
 
  break;
1457
 
case 20:
1458
 
  case_20();
1459
 
  break;
1460
 
case 21:
1461
 
  case_21();
1462
 
  break;
1463
 
case 22:
1464
 
  case_22();
1465
 
  break;
1466
 
case 23:
1467
 
  case_23();
1468
 
  break;
1469
 
case 24:
1470
 
  case_24();
1471
 
  break;
1472
 
case 25:
1473
 
  case_25();
1474
 
  break;
1475
 
case 26:
1476
 
  case_26();
1477
 
  break;
1478
 
case 39:
1479
 
  case_39();
1480
 
  break;
1481
 
case 40:
1482
 
#line 621 "cs-parser.jay"
1483
 
  {
1484
 
                current_namespace.DeclarationFound = true;
1485
 
          }
1486
 
  break;
1487
 
case 41:
1488
 
  case_41();
1489
 
  break;
1490
 
case 49:
1491
 
  case_49();
1492
 
  break;
1493
 
case 50:
1494
 
  case_50();
1495
 
  break;
1496
 
case 51:
1497
 
  case_51();
1498
 
  break;
1499
 
case 52:
1500
 
  case_52();
1501
 
  break;
1502
 
case 53:
1503
 
  case_53();
1504
 
  break;
1505
 
case 54:
1506
 
  case_54();
1507
 
  break;
1508
 
case 55:
1509
 
  case_55();
1510
 
  break;
1511
 
case 56:
1512
 
  case_56();
1513
 
  break;
1514
 
case 57:
1515
 
#line 735 "cs-parser.jay"
1516
 
  { yyVal = "event"; savedCloseLocation = GetLocation (yyVals[0+yyTop]); }
1517
 
  break;
1518
 
case 58:
1519
 
#line 736 "cs-parser.jay"
1520
 
  { yyVal = "return"; savedCloseLocation = GetLocation (yyVals[0+yyTop]); }
1521
 
  break;
1522
 
case 59:
1523
 
  case_59();
1524
 
  break;
1525
 
case 60:
1526
 
#line 753 "cs-parser.jay"
1527
 
  {
1528
 
                yyVal = new List<Attribute> (4) { (Attribute) yyVals[0+yyTop] };
1529
 
          }
1530
 
  break;
1531
 
case 61:
1532
 
  case_61();
1533
 
  break;
1534
 
case 62:
1535
 
#line 768 "cs-parser.jay"
1536
 
  {
1537
 
                ++lexer.parsing_block;
1538
 
          }
1539
 
  break;
1540
 
case 63:
1541
 
  case_63();
1542
 
  break;
1543
 
case 65:
1544
 
#line 796 "cs-parser.jay"
1545
 
  { yyVal = null; HadAttributeParens = false;  }
1546
 
  break;
1547
 
case 66:
1548
 
  case_66();
1549
 
  break;
1550
 
case 67:
1551
 
#line 808 "cs-parser.jay"
1552
 
  { yyVal = null; }
1553
 
  break;
1554
 
case 68:
1555
 
  case_68();
1556
 
  break;
1557
 
case 69:
1558
 
  case_69();
1559
 
  break;
1560
 
case 70:
1561
 
  case_70();
1562
 
  break;
1563
 
case 71:
1564
 
  case_71();
1565
 
  break;
1566
 
case 72:
1567
 
#line 852 "cs-parser.jay"
1568
 
  {
1569
 
                yyVal = new Argument ((Expression) yyVals[0+yyTop]);
1570
 
          }
1571
 
  break;
1572
 
case 74:
1573
 
#line 860 "cs-parser.jay"
1574
 
  {
1575
 
                ++lexer.parsing_block;
1576
 
          }
1577
 
  break;
1578
 
case 75:
1579
 
  case_75();
1580
 
  break;
1581
 
case 76:
1582
 
  case_76();
1583
 
  break;
1584
 
case 77:
1585
 
#line 886 "cs-parser.jay"
1586
 
  { yyVal = null; }
1587
 
  break;
1588
 
case 78:
1589
 
#line 890 "cs-parser.jay"
1590
 
  { 
1591
 
                yyVal = Argument.AType.Ref;
1592
 
          }
1593
 
  break;
1594
 
case 79:
1595
 
#line 894 "cs-parser.jay"
1596
 
  { 
1597
 
                yyVal = Argument.AType.Out;
1598
 
          }
1599
 
  break;
1600
 
case 82:
1601
 
#line 906 "cs-parser.jay"
1602
 
  {
1603
 
                lexer.parsing_modifiers = true;
1604
 
          }
1605
 
  break;
1606
 
case 83:
1607
 
#line 910 "cs-parser.jay"
1608
 
  {
1609
 
                lexer.parsing_modifiers = true;
1610
 
          }
1611
 
  break;
1612
 
case 95:
1613
 
  case_95();
1614
 
  break;
1615
 
case 96:
1616
 
#line 941 "cs-parser.jay"
1617
 
  {
1618
 
                lexer.ConstraintsParsing = true;
1619
 
          }
1620
 
  break;
1621
 
case 97:
1622
 
  case_97();
1623
 
  break;
1624
 
case 98:
1625
 
  case_98();
1626
 
  break;
1627
 
case 99:
1628
 
  case_99();
1629
 
  break;
1630
 
case 100:
1631
 
  case_100();
1632
 
  break;
1633
 
case 101:
1634
 
  case_101();
1635
 
  break;
1636
 
case 102:
1637
 
#line 984 "cs-parser.jay"
1638
 
  {
1639
 
                Error_SyntaxError (yyToken);
1640
 
          }
1641
 
  break;
1642
 
case 103:
1643
 
  case_103();
1644
 
  break;
1645
 
case 104:
1646
 
  case_104();
1647
 
  break;
1648
 
case 107:
1649
 
#line 1025 "cs-parser.jay"
1650
 
  {
1651
 
                current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1652
 
          }
1653
 
  break;
1654
 
case 108:
1655
 
#line 1029 "cs-parser.jay"
1656
 
  {
1657
 
                current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1658
 
          }
1659
 
  break;
1660
 
case 109:
1661
 
  case_109();
1662
 
  break;
1663
 
case 110:
1664
 
#line 1045 "cs-parser.jay"
1665
 
  {
1666
 
                ++lexer.parsing_block;
1667
 
          }
1668
 
  break;
1669
 
case 111:
1670
 
  case_111();
1671
 
  break;
1672
 
case 112:
1673
 
  case_112();
1674
 
  break;
1675
 
case 115:
1676
 
  case_115();
1677
 
  break;
1678
 
case 116:
1679
 
  case_116();
1680
 
  break;
1681
 
case 117:
1682
 
  case_117();
1683
 
  break;
1684
 
case 118:
1685
 
  case_118();
1686
 
  break;
1687
 
case 119:
1688
 
#line 1124 "cs-parser.jay"
1689
 
  {
1690
 
                report.Error (1641, GetLocation (yyVals[-1+yyTop]), "A fixed size buffer field must have the array size specifier after the field name");
1691
 
          }
1692
 
  break;
1693
 
case 121:
1694
 
  case_121();
1695
 
  break;
1696
 
case 122:
1697
 
  case_122();
1698
 
  break;
1699
 
case 125:
1700
 
#line 1154 "cs-parser.jay"
1701
 
  {
1702
 
                current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1703
 
          }
1704
 
  break;
1705
 
case 126:
1706
 
#line 1158 "cs-parser.jay"
1707
 
  {
1708
 
                current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1709
 
          }
1710
 
  break;
1711
 
case 127:
1712
 
  case_127();
1713
 
  break;
1714
 
case 128:
1715
 
#line 1171 "cs-parser.jay"
1716
 
  {
1717
 
                ++lexer.parsing_block;
1718
 
          }
1719
 
  break;
1720
 
case 129:
1721
 
  case_129();
1722
 
  break;
1723
 
case 132:
1724
 
#line 1190 "cs-parser.jay"
1725
 
  {
1726
 
                current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1727
 
          }
1728
 
  break;
1729
 
case 133:
1730
 
#line 1194 "cs-parser.jay"
1731
 
  {
1732
 
                current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1733
 
          }
1734
 
  break;
1735
 
case 134:
1736
 
  case_134();
1737
 
  break;
1738
 
case 135:
1739
 
#line 1210 "cs-parser.jay"
1740
 
  {
1741
 
                ++lexer.parsing_block;
1742
 
          }
1743
 
  break;
1744
 
case 136:
1745
 
  case_136();
1746
 
  break;
1747
 
case 137:
1748
 
  case_137();
1749
 
  break;
1750
 
case 140:
1751
 
  case_140();
1752
 
  break;
1753
 
case 141:
1754
 
  case_141();
1755
 
  break;
1756
 
case 142:
1757
 
  case_142();
1758
 
  break;
1759
 
case 143:
1760
 
#line 1281 "cs-parser.jay"
1761
 
  {
1762
 
                valid_param_mod = ParameterModifierType.All;
1763
 
          }
1764
 
  break;
1765
 
case 144:
1766
 
#line 1285 "cs-parser.jay"
1767
 
  {
1768
 
                lexer.ConstraintsParsing = true;
1769
 
          }
1770
 
  break;
1771
 
case 145:
1772
 
  case_145();
1773
 
  break;
1774
 
case 146:
1775
 
#line 1311 "cs-parser.jay"
1776
 
  {
1777
 
                lexer.parsing_generic_declaration = true;
1778
 
          }
1779
 
  break;
1780
 
case 147:
1781
 
  case_147();
1782
 
  break;
1783
 
case 148:
1784
 
#line 1321 "cs-parser.jay"
1785
 
  {
1786
 
                lexer.ConstraintsParsing = true;
1787
 
          }
1788
 
  break;
1789
 
case 149:
1790
 
  case_149();
1791
 
  break;
1792
 
case 150:
1793
 
  case_150();
1794
 
  break;
1795
 
case 151:
1796
 
  case_151();
1797
 
  break;
1798
 
case 153:
1799
 
#line 1386 "cs-parser.jay"
1800
 
  { savedLocation = GetLocation (yyVals[0+yyTop]); yyVal = null; }
1801
 
  break;
1802
 
case 154:
1803
 
#line 1390 "cs-parser.jay"
1804
 
  { yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
1805
 
  break;
1806
 
case 156:
1807
 
  case_156();
1808
 
  break;
1809
 
case 157:
1810
 
  case_157();
1811
 
  break;
1812
 
case 158:
1813
 
  case_158();
1814
 
  break;
1815
 
case 159:
1816
 
  case_159();
1817
 
  break;
1818
 
case 160:
1819
 
  case_160();
1820
 
  break;
1821
 
case 161:
1822
 
  case_161();
1823
 
  break;
1824
 
case 162:
1825
 
  case_162();
1826
 
  break;
1827
 
case 163:
1828
 
#line 1462 "cs-parser.jay"
1829
 
  {
1830
 
                yyVal = new ParametersCompiled (new Parameter[] { (Parameter) yyVals[0+yyTop] } );
1831
 
          }
1832
 
  break;
1833
 
case 164:
1834
 
#line 1466 "cs-parser.jay"
1835
 
  {
1836
 
                yyVal = new ParametersCompiled (new Parameter [] { new ArglistParameter (GetLocation (yyVals[0+yyTop])) }, true);
1837
 
          }
1838
 
  break;
1839
 
case 165:
1840
 
  case_165();
1841
 
  break;
1842
 
case 166:
1843
 
  case_166();
1844
 
  break;
1845
 
case 167:
1846
 
  case_167();
1847
 
  break;
1848
 
case 168:
1849
 
  case_168();
1850
 
  break;
1851
 
case 169:
1852
 
  case_169();
1853
 
  break;
1854
 
case 170:
1855
 
  case_170();
1856
 
  break;
1857
 
case 171:
1858
 
  case_171();
1859
 
  break;
1860
 
case 172:
1861
 
#line 1547 "cs-parser.jay"
1862
 
  {
1863
 
                ++lexer.parsing_block;
1864
 
          }
1865
 
  break;
1866
 
case 173:
1867
 
  case_173();
1868
 
  break;
1869
 
case 174:
1870
 
#line 1588 "cs-parser.jay"
1871
 
  { yyVal = Parameter.Modifier.NONE; }
1872
 
  break;
1873
 
case 176:
1874
 
#line 1596 "cs-parser.jay"
1875
 
  {
1876
 
                yyVal = yyVals[0+yyTop];
1877
 
          }
1878
 
  break;
1879
 
case 177:
1880
 
  case_177();
1881
 
  break;
1882
 
case 178:
1883
 
  case_178();
1884
 
  break;
1885
 
case 179:
1886
 
  case_179();
1887
 
  break;
1888
 
case 180:
1889
 
  case_180();
1890
 
  break;
1891
 
case 181:
1892
 
  case_181();
1893
 
  break;
1894
 
case 182:
1895
 
  case_182();
1896
 
  break;
1897
 
case 183:
1898
 
  case_183();
1899
 
  break;
1900
 
case 184:
1901
 
  case_184();
1902
 
  break;
1903
 
case 185:
1904
 
  case_185();
1905
 
  break;
1906
 
case 186:
1907
 
#line 1689 "cs-parser.jay"
1908
 
  {
1909
 
                Error_DuplicateParameterModifier (GetLocation (yyVals[-1+yyTop]), Parameter.Modifier.PARAMS);
1910
 
          }
1911
 
  break;
1912
 
case 187:
1913
 
  case_187();
1914
 
  break;
1915
 
case 188:
1916
 
  case_188();
1917
 
  break;
1918
 
case 189:
1919
 
  case_189();
1920
 
  break;
1921
 
case 190:
1922
 
  case_190();
1923
 
  break;
1924
 
case 191:
1925
 
  case_191();
1926
 
  break;
1927
 
case 192:
1928
 
#line 1743 "cs-parser.jay"
1929
 
  {
1930
 
                valid_param_mod = ParameterModifierType.Params | ParameterModifierType.DefaultValue;
1931
 
          }
1932
 
  break;
1933
 
case 193:
1934
 
  case_193();
1935
 
  break;
1936
 
case 194:
1937
 
#line 1772 "cs-parser.jay"
1938
 
  {
1939
 
                lexer.PropertyParsing = false;
1940
 
          }
1941
 
  break;
1942
 
case 195:
1943
 
  case_195();
1944
 
  break;
1945
 
case 200:
1946
 
  case_200();
1947
 
  break;
1948
 
case 201:
1949
 
  case_201();
1950
 
  break;
1951
 
case 202:
1952
 
  case_202();
1953
 
  break;
1954
 
case 203:
1955
 
  case_203();
1956
 
  break;
1957
 
case 204:
1958
 
  case_204();
1959
 
  break;
1960
 
case 206:
1961
 
  case_206();
1962
 
  break;
1963
 
case 207:
1964
 
  case_207();
1965
 
  break;
1966
 
case 208:
1967
 
#line 1921 "cs-parser.jay"
1968
 
  {
1969
 
                lexer.ConstraintsParsing = true;
1970
 
          }
1971
 
  break;
1972
 
case 209:
1973
 
  case_209();
1974
 
  break;
1975
 
case 210:
1976
 
  case_210();
1977
 
  break;
1978
 
case 211:
1979
 
  case_211();
1980
 
  break;
1981
 
case 212:
1982
 
  case_212();
1983
 
  break;
1984
 
case 213:
1985
 
#line 1960 "cs-parser.jay"
1986
 
  {
1987
 
                Error_SyntaxError (yyToken);      
1988
 
          }
1989
 
  break;
1990
 
case 216:
1991
 
#line 1972 "cs-parser.jay"
1992
 
  {
1993
 
                lexer.parsing_modifiers = true;
1994
 
          }
1995
 
  break;
1996
 
case 217:
1997
 
#line 1976 "cs-parser.jay"
1998
 
  {
1999
 
                lexer.parsing_modifiers = true;
2000
 
          }
2001
 
  break;
2002
 
case 218:
2003
 
#line 1983 "cs-parser.jay"
2004
 
  {
2005
 
                report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants");
2006
 
          }
2007
 
  break;
2008
 
case 219:
2009
 
#line 1987 "cs-parser.jay"
2010
 
  {
2011
 
                report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants");
2012
 
          }
2013
 
  break;
2014
 
case 224:
2015
 
#line 1995 "cs-parser.jay"
2016
 
  {
2017
 
                report.Error (567, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain operators");
2018
 
          }
2019
 
  break;
2020
 
case 225:
2021
 
#line 1999 "cs-parser.jay"
2022
 
  {
2023
 
                report.Error (526, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain contructors");
2024
 
          }
2025
 
  break;
2026
 
case 226:
2027
 
#line 2003 "cs-parser.jay"
2028
 
  {
2029
 
                report.Error (524, GetLocation (yyVals[0+yyTop]), "Interfaces cannot declare classes, structs, interfaces, delegates, or enumerations");
2030
 
          }
2031
 
  break;
2032
 
case 227:
2033
 
#line 2009 "cs-parser.jay"
2034
 
  {
2035
 
          }
2036
 
  break;
2037
 
case 228:
2038
 
  case_228();
2039
 
  break;
2040
 
case 230:
2041
 
#line 2042 "cs-parser.jay"
2042
 
  { savedLocation = GetLocation (yyVals[0+yyTop]); yyVal = null; }
2043
 
  break;
2044
 
case 232:
2045
 
  case_232();
2046
 
  break;
2047
 
case 233:
2048
 
#line 2058 "cs-parser.jay"
2049
 
  {
2050
 
                valid_param_mod = ParameterModifierType.DefaultValue;
2051
 
          }
2052
 
  break;
2053
 
case 234:
2054
 
  case_234();
2055
 
  break;
2056
 
case 236:
2057
 
#line 2104 "cs-parser.jay"
2058
 
  { yyVal = Operator.OpType.LogicalNot; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2059
 
  break;
2060
 
case 237:
2061
 
#line 2105 "cs-parser.jay"
2062
 
  { yyVal = Operator.OpType.OnesComplement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2063
 
  break;
2064
 
case 238:
2065
 
#line 2106 "cs-parser.jay"
2066
 
  { yyVal = Operator.OpType.Increment; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2067
 
  break;
2068
 
case 239:
2069
 
#line 2107 "cs-parser.jay"
2070
 
  { yyVal = Operator.OpType.Decrement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2071
 
  break;
2072
 
case 240:
2073
 
#line 2108 "cs-parser.jay"
2074
 
  { yyVal = Operator.OpType.True; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2075
 
  break;
2076
 
case 241:
2077
 
#line 2109 "cs-parser.jay"
2078
 
  { yyVal = Operator.OpType.False; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2079
 
  break;
2080
 
case 242:
2081
 
#line 2111 "cs-parser.jay"
2082
 
  { yyVal = Operator.OpType.Addition; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2083
 
  break;
2084
 
case 243:
2085
 
#line 2112 "cs-parser.jay"
2086
 
  { yyVal = Operator.OpType.Subtraction; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2087
 
  break;
2088
 
case 244:
2089
 
#line 2114 "cs-parser.jay"
2090
 
  { yyVal = Operator.OpType.Multiply; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2091
 
  break;
2092
 
case 245:
2093
 
#line 2115 "cs-parser.jay"
2094
 
  {  yyVal = Operator.OpType.Division; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2095
 
  break;
2096
 
case 246:
2097
 
#line 2116 "cs-parser.jay"
2098
 
  { yyVal = Operator.OpType.Modulus; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2099
 
  break;
2100
 
case 247:
2101
 
#line 2117 "cs-parser.jay"
2102
 
  { yyVal = Operator.OpType.BitwiseAnd; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2103
 
  break;
2104
 
case 248:
2105
 
#line 2118 "cs-parser.jay"
2106
 
  { yyVal = Operator.OpType.BitwiseOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2107
 
  break;
2108
 
case 249:
2109
 
#line 2119 "cs-parser.jay"
2110
 
  { yyVal = Operator.OpType.ExclusiveOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2111
 
  break;
2112
 
case 250:
2113
 
#line 2120 "cs-parser.jay"
2114
 
  { yyVal = Operator.OpType.LeftShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2115
 
  break;
2116
 
case 251:
2117
 
#line 2121 "cs-parser.jay"
2118
 
  { yyVal = Operator.OpType.RightShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2119
 
  break;
2120
 
case 252:
2121
 
#line 2122 "cs-parser.jay"
2122
 
  { yyVal = Operator.OpType.Equality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2123
 
  break;
2124
 
case 253:
2125
 
#line 2123 "cs-parser.jay"
2126
 
  { yyVal = Operator.OpType.Inequality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2127
 
  break;
2128
 
case 254:
2129
 
#line 2124 "cs-parser.jay"
2130
 
  { yyVal = Operator.OpType.GreaterThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2131
 
  break;
2132
 
case 255:
2133
 
#line 2125 "cs-parser.jay"
2134
 
  { yyVal = Operator.OpType.LessThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2135
 
  break;
2136
 
case 256:
2137
 
#line 2126 "cs-parser.jay"
2138
 
  { yyVal = Operator.OpType.GreaterThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2139
 
  break;
2140
 
case 257:
2141
 
#line 2127 "cs-parser.jay"
2142
 
  { yyVal = Operator.OpType.LessThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2143
 
  break;
2144
 
case 258:
2145
 
#line 2134 "cs-parser.jay"
2146
 
  {
2147
 
                valid_param_mod = ParameterModifierType.DefaultValue;
2148
 
          }
2149
 
  break;
2150
 
case 259:
2151
 
  case_259();
2152
 
  break;
2153
 
case 260:
2154
 
#line 2153 "cs-parser.jay"
2155
 
  {
2156
 
                valid_param_mod = ParameterModifierType.DefaultValue;
2157
 
          }
2158
 
  break;
2159
 
case 261:
2160
 
  case_261();
2161
 
  break;
2162
 
case 262:
2163
 
  case_262();
2164
 
  break;
2165
 
case 263:
2166
 
  case_263();
2167
 
  break;
2168
 
case 264:
2169
 
  case_264();
2170
 
  break;
2171
 
case 265:
2172
 
  case_265();
2173
 
  break;
2174
 
case 266:
2175
 
  case_266();
2176
 
  break;
2177
 
case 267:
2178
 
  case_267();
2179
 
  break;
2180
 
case 269:
2181
 
#line 2259 "cs-parser.jay"
2182
 
  { current_block = null; yyVal = null; }
2183
 
  break;
2184
 
case 272:
2185
 
#line 2271 "cs-parser.jay"
2186
 
  {
2187
 
                ++lexer.parsing_block;
2188
 
          }
2189
 
  break;
2190
 
case 273:
2191
 
  case_273();
2192
 
  break;
2193
 
case 274:
2194
 
#line 2281 "cs-parser.jay"
2195
 
  {
2196
 
                ++lexer.parsing_block;
2197
 
          }
2198
 
  break;
2199
 
case 275:
2200
 
  case_275();
2201
 
  break;
2202
 
case 276:
2203
 
  case_276();
2204
 
  break;
2205
 
case 277:
2206
 
  case_277();
2207
 
  break;
2208
 
case 278:
2209
 
  case_278();
2210
 
  break;
2211
 
case 279:
2212
 
  case_279();
2213
 
  break;
2214
 
case 280:
2215
 
  case_280();
2216
 
  break;
2217
 
case 281:
2218
 
  case_281();
2219
 
  break;
2220
 
case 282:
2221
 
  case_282();
2222
 
  break;
2223
 
case 283:
2224
 
  case_283();
2225
 
  break;
2226
 
case 284:
2227
 
  case_284();
2228
 
  break;
2229
 
case 286:
2230
 
#line 2397 "cs-parser.jay"
2231
 
  {
2232
 
                ++lexer.parsing_block;
2233
 
          }
2234
 
  break;
2235
 
case 287:
2236
 
  case_287();
2237
 
  break;
2238
 
case 290:
2239
 
#line 2414 "cs-parser.jay"
2240
 
  {
2241
 
                current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
2242
 
          }
2243
 
  break;
2244
 
case 291:
2245
 
#line 2418 "cs-parser.jay"
2246
 
  {
2247
 
                current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
2248
 
          }
2249
 
  break;
2250
 
case 292:
2251
 
  case_292();
2252
 
  break;
2253
 
case 293:
2254
 
#line 2431 "cs-parser.jay"
2255
 
  {
2256
 
                ++lexer.parsing_block;
2257
 
          }
2258
 
  break;
2259
 
case 294:
2260
 
  case_294();
2261
 
  break;
2262
 
case 295:
2263
 
  case_295();
2264
 
  break;
2265
 
case 296:
2266
 
#line 2456 "cs-parser.jay"
2267
 
  {
2268
 
                yyVal = yyVals[0+yyTop];
2269
 
          }
2270
 
  break;
2271
 
case 299:
2272
 
  case_299();
2273
 
  break;
2274
 
case 300:
2275
 
  case_300();
2276
 
  break;
2277
 
case 301:
2278
 
  case_301();
2279
 
  break;
2280
 
case 302:
2281
 
  case_302();
2282
 
  break;
2283
 
case 303:
2284
 
  case_303();
2285
 
  break;
2286
 
case 304:
2287
 
  case_304();
2288
 
  break;
2289
 
case 305:
2290
 
  case_305();
2291
 
  break;
2292
 
case 306:
2293
 
  case_306();
2294
 
  break;
2295
 
case 308:
2296
 
  case_308();
2297
 
  break;
2298
 
case 309:
2299
 
  case_309();
2300
 
  break;
2301
 
case 310:
2302
 
  case_310();
2303
 
  break;
2304
 
case 311:
2305
 
  case_311();
2306
 
  break;
2307
 
case 312:
2308
 
  case_312();
2309
 
  break;
2310
 
case 314:
2311
 
  case_314();
2312
 
  break;
2313
 
case 315:
2314
 
  case_315();
2315
 
  break;
2316
 
case 318:
2317
 
#line 2624 "cs-parser.jay"
2318
 
  {
2319
 
                lbag.AppendToMember (current_container, GetLocation (yyVals[0+yyTop]));
2320
 
          }
2321
 
  break;
2322
 
case 320:
2323
 
  case_320();
2324
 
  break;
2325
 
case 321:
2326
 
  case_321();
2327
 
  break;
2328
 
case 322:
2329
 
  case_322();
2330
 
  break;
2331
 
case 323:
2332
 
  case_323();
2333
 
  break;
2334
 
case 324:
2335
 
#line 2682 "cs-parser.jay"
2336
 
  {
2337
 
                valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out | ParameterModifierType.Params | ParameterModifierType.DefaultValue;
2338
 
          }
2339
 
  break;
2340
 
case 325:
2341
 
  case_325();
2342
 
  break;
2343
 
case 326:
2344
 
#line 2701 "cs-parser.jay"
2345
 
  {
2346
 
                lexer.ConstraintsParsing = false;
2347
 
          }
2348
 
  break;
2349
 
case 327:
2350
 
  case_327();
2351
 
  break;
2352
 
case 329:
2353
 
  case_329();
2354
 
  break;
2355
 
case 331:
2356
 
  case_331();
2357
 
  break;
2358
 
case 333:
2359
 
  case_333();
2360
 
  break;
2361
 
case 334:
2362
 
  case_334();
2363
 
  break;
2364
 
case 336:
2365
 
  case_336();
2366
 
  break;
2367
 
case 337:
2368
 
  case_337();
2369
 
  break;
2370
 
case 338:
2371
 
  case_338();
2372
 
  break;
2373
 
case 339:
2374
 
  case_339();
2375
 
  break;
2376
 
case 340:
2377
 
#line 2807 "cs-parser.jay"
2378
 
  {
2379
 
                lexer.parsing_generic_declaration = true;
2380
 
          }
2381
 
  break;
2382
 
case 341:
2383
 
  case_341();
2384
 
  break;
2385
 
case 342:
2386
 
  case_342();
2387
 
  break;
2388
 
case 344:
2389
 
  case_344();
2390
 
  break;
2391
 
case 345:
2392
 
  case_345();
2393
 
  break;
2394
 
case 346:
2395
 
  case_346();
2396
 
  break;
2397
 
case 347:
2398
 
  case_347();
2399
 
  break;
2400
 
case 348:
2401
 
  case_348();
2402
 
  break;
2403
 
case 349:
2404
 
  case_349();
2405
 
  break;
2406
 
case 351:
2407
 
  case_351();
2408
 
  break;
2409
 
case 352:
2410
 
  case_352();
2411
 
  break;
2412
 
case 353:
2413
 
  case_353();
2414
 
  break;
2415
 
case 354:
2416
 
  case_354();
2417
 
  break;
2418
 
case 355:
2419
 
  case_355();
2420
 
  break;
2421
 
case 357:
2422
 
#line 2929 "cs-parser.jay"
2423
 
  {
2424
 
                yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
2425
 
          }
2426
 
  break;
2427
 
case 358:
2428
 
#line 2936 "cs-parser.jay"
2429
 
  {
2430
 
                lexer.parsing_generic_declaration = true;
2431
 
          }
2432
 
  break;
2433
 
case 360:
2434
 
  case_360();
2435
 
  break;
2436
 
case 362:
2437
 
  case_362();
2438
 
  break;
2439
 
case 364:
2440
 
  case_364();
2441
 
  break;
2442
 
case 366:
2443
 
#line 2974 "cs-parser.jay"
2444
 
  {
2445
 
                yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
2446
 
          }
2447
 
  break;
2448
 
case 367:
2449
 
  case_367();
2450
 
  break;
2451
 
case 368:
2452
 
#line 2993 "cs-parser.jay"
2453
 
  {
2454
 
                yyVal = new ComposedCast ((ATypeNameExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
2455
 
          }
2456
 
  break;
2457
 
case 369:
2458
 
  case_369();
2459
 
  break;
2460
 
case 370:
2461
 
#line 3002 "cs-parser.jay"
2462
 
  {
2463
 
                yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
2464
 
          }
2465
 
  break;
2466
 
case 371:
2467
 
#line 3006 "cs-parser.jay"
2468
 
  {
2469
 
                yyVal = new ComposedCast (new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-1+yyTop])), (ComposedTypeSpecifier) yyVals[0+yyTop]);
2470
 
          }
2471
 
  break;
2472
 
case 372:
2473
 
  case_372();
2474
 
  break;
2475
 
case 373:
2476
 
  case_373();
2477
 
  break;
2478
 
case 374:
2479
 
  case_374();
2480
 
  break;
2481
 
case 375:
2482
 
#line 3040 "cs-parser.jay"
2483
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Object, GetLocation (yyVals[0+yyTop])); }
2484
 
  break;
2485
 
case 376:
2486
 
#line 3041 "cs-parser.jay"
2487
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.String, GetLocation (yyVals[0+yyTop])); }
2488
 
  break;
2489
 
case 377:
2490
 
#line 3042 "cs-parser.jay"
2491
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Bool, GetLocation (yyVals[0+yyTop])); }
2492
 
  break;
2493
 
case 378:
2494
 
#line 3043 "cs-parser.jay"
2495
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Decimal, GetLocation (yyVals[0+yyTop])); }
2496
 
  break;
2497
 
case 379:
2498
 
#line 3044 "cs-parser.jay"
2499
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Float, GetLocation (yyVals[0+yyTop])); }
2500
 
  break;
2501
 
case 380:
2502
 
#line 3045 "cs-parser.jay"
2503
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Double, GetLocation (yyVals[0+yyTop])); }
2504
 
  break;
2505
 
case 382:
2506
 
#line 3050 "cs-parser.jay"
2507
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.SByte, GetLocation (yyVals[0+yyTop])); }
2508
 
  break;
2509
 
case 383:
2510
 
#line 3051 "cs-parser.jay"
2511
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Byte, GetLocation (yyVals[0+yyTop])); }
2512
 
  break;
2513
 
case 384:
2514
 
#line 3052 "cs-parser.jay"
2515
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Short, GetLocation (yyVals[0+yyTop])); }
2516
 
  break;
2517
 
case 385:
2518
 
#line 3053 "cs-parser.jay"
2519
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.UShort, GetLocation (yyVals[0+yyTop])); }
2520
 
  break;
2521
 
case 386:
2522
 
#line 3054 "cs-parser.jay"
2523
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Int, GetLocation (yyVals[0+yyTop])); }
2524
 
  break;
2525
 
case 387:
2526
 
#line 3055 "cs-parser.jay"
2527
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.UInt, GetLocation (yyVals[0+yyTop])); }
2528
 
  break;
2529
 
case 388:
2530
 
#line 3056 "cs-parser.jay"
2531
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Long, GetLocation (yyVals[0+yyTop])); }
2532
 
  break;
2533
 
case 389:
2534
 
#line 3057 "cs-parser.jay"
2535
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.ULong, GetLocation (yyVals[0+yyTop])); }
2536
 
  break;
2537
 
case 390:
2538
 
#line 3058 "cs-parser.jay"
2539
 
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Char, GetLocation (yyVals[0+yyTop])); }
2540
 
  break;
2541
 
case 411:
2542
 
  case_411();
2543
 
  break;
2544
 
case 412:
2545
 
  case_412();
2546
 
  break;
2547
 
case 416:
2548
 
#line 3105 "cs-parser.jay"
2549
 
  { yyVal = new NullLiteral (GetLocation (yyVals[0+yyTop])); }
2550
 
  break;
2551
 
case 417:
2552
 
#line 3109 "cs-parser.jay"
2553
 
  { yyVal = new BoolLiteral (compiler.BuiltinTypes, true, GetLocation (yyVals[0+yyTop])); }
2554
 
  break;
2555
 
case 418:
2556
 
#line 3110 "cs-parser.jay"
2557
 
  { yyVal = new BoolLiteral (compiler.BuiltinTypes, false, GetLocation (yyVals[0+yyTop])); }
2558
 
  break;
2559
 
case 423:
2560
 
  case_423();
2561
 
  break;
2562
 
case 424:
2563
 
#line 3143 "cs-parser.jay"
2564
 
  {
2565
 
                yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop]);
2566
 
          }
2567
 
  break;
2568
 
case 425:
2569
 
  case_425();
2570
 
  break;
2571
 
case 426:
2572
 
  case_426();
2573
 
  break;
2574
 
case 427:
2575
 
  case_427();
2576
 
  break;
2577
 
case 428:
2578
 
  case_428();
2579
 
  break;
2580
 
case 429:
2581
 
#line 3178 "cs-parser.jay"
2582
 
  {
2583
 
                yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null,GetLocation (yyVals[0+yyTop]));
2584
 
          }
2585
 
  break;
2586
 
case 430:
2587
 
  case_430();
2588
 
  break;
2589
 
case 431:
2590
 
#line 3186 "cs-parser.jay"
2591
 
  {
2592
 
                yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null, lexer.Location);
2593
 
          }
2594
 
  break;
2595
 
case 432:
2596
 
  case_432();
2597
 
  break;
2598
 
case 433:
2599
 
  case_433();
2600
 
  break;
2601
 
case 434:
2602
 
#line 3202 "cs-parser.jay"
2603
 
  { yyVal = null; }
2604
 
  break;
2605
 
case 436:
2606
 
  case_436();
2607
 
  break;
2608
 
case 437:
2609
 
  case_437();
2610
 
  break;
2611
 
case 438:
2612
 
#line 3225 "cs-parser.jay"
2613
 
  { yyVal = null; }
2614
 
  break;
2615
 
case 439:
2616
 
#line 3229 "cs-parser.jay"
2617
 
  {
2618
 
                yyVal = yyVals[0+yyTop];
2619
 
        }
2620
 
  break;
2621
 
case 440:
2622
 
  case_440();
2623
 
  break;
2624
 
case 441:
2625
 
  case_441();
2626
 
  break;
2627
 
case 442:
2628
 
  case_442();
2629
 
  break;
2630
 
case 443:
2631
 
  case_443();
2632
 
  break;
2633
 
case 444:
2634
 
#line 3262 "cs-parser.jay"
2635
 
  {
2636
 
                yyVal = new CompletionElementInitializer (null, GetLocation (yyVals[0+yyTop]));
2637
 
          }
2638
 
  break;
2639
 
case 445:
2640
 
  case_445();
2641
 
  break;
2642
 
case 446:
2643
 
  case_446();
2644
 
  break;
2645
 
case 447:
2646
 
  case_447();
2647
 
  break;
2648
 
case 450:
2649
 
#line 3293 "cs-parser.jay"
2650
 
  { yyVal = null; }
2651
 
  break;
2652
 
case 452:
2653
 
  case_452();
2654
 
  break;
2655
 
case 453:
2656
 
  case_453();
2657
 
  break;
2658
 
case 454:
2659
 
  case_454();
2660
 
  break;
2661
 
case 455:
2662
 
  case_455();
2663
 
  break;
2664
 
case 456:
2665
 
  case_456();
2666
 
  break;
2667
 
case 457:
2668
 
#line 3346 "cs-parser.jay"
2669
 
  {
2670
 
                yyVal = new Argument ((Expression) yyVals[0+yyTop]);
2671
 
          }
2672
 
  break;
2673
 
case 461:
2674
 
  case_461();
2675
 
  break;
2676
 
case 462:
2677
 
  case_462();
2678
 
  break;
2679
 
case 463:
2680
 
  case_463();
2681
 
  break;
2682
 
case 464:
2683
 
  case_464();
2684
 
  break;
2685
 
case 466:
2686
 
  case_466();
2687
 
  break;
2688
 
case 467:
2689
 
  case_467();
2690
 
  break;
2691
 
case 468:
2692
 
  case_468();
2693
 
  break;
2694
 
case 469:
2695
 
  case_469();
2696
 
  break;
2697
 
case 470:
2698
 
  case_470();
2699
 
  break;
2700
 
case 471:
2701
 
  case_471();
2702
 
  break;
2703
 
case 472:
2704
 
  case_472();
2705
 
  break;
2706
 
case 473:
2707
 
  case_473();
2708
 
  break;
2709
 
case 474:
2710
 
#line 3443 "cs-parser.jay"
2711
 
  {
2712
 
                yyVal = new Argument ((Expression) yyVals[0+yyTop]);
2713
 
          }
2714
 
  break;
2715
 
case 476:
2716
 
#line 3451 "cs-parser.jay"
2717
 
  {
2718
 
                yyVal = new This (GetLocation (yyVals[0+yyTop]));
2719
 
          }
2720
 
  break;
2721
 
case 477:
2722
 
  case_477();
2723
 
  break;
2724
 
case 478:
2725
 
  case_478();
2726
 
  break;
2727
 
case 479:
2728
 
#line 3471 "cs-parser.jay"
2729
 
  {
2730
 
                yyVal = new UnaryMutator (UnaryMutator.Mode.PostIncrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
2731
 
          }
2732
 
  break;
2733
 
case 480:
2734
 
#line 3478 "cs-parser.jay"
2735
 
  {
2736
 
                yyVal = new UnaryMutator (UnaryMutator.Mode.PostDecrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
2737
 
          }
2738
 
  break;
2739
 
case 481:
2740
 
  case_481();
2741
 
  break;
2742
 
case 482:
2743
 
  case_482();
2744
 
  break;
2745
 
case 483:
2746
 
  case_483();
2747
 
  break;
2748
 
case 484:
2749
 
  case_484();
2750
 
  break;
2751
 
case 485:
2752
 
  case_485();
2753
 
  break;
2754
 
case 486:
2755
 
  case_486();
2756
 
  break;
2757
 
case 487:
2758
 
  case_487();
2759
 
  break;
2760
 
case 488:
2761
 
#line 3545 "cs-parser.jay"
2762
 
  {
2763
 
                ++lexer.parsing_type;
2764
 
          }
2765
 
  break;
2766
 
case 489:
2767
 
  case_489();
2768
 
  break;
2769
 
case 490:
2770
 
  case_490();
2771
 
  break;
2772
 
case 493:
2773
 
#line 3572 "cs-parser.jay"
2774
 
  { yyVal = null; }
2775
 
  break;
2776
 
case 495:
2777
 
  case_495();
2778
 
  break;
2779
 
case 496:
2780
 
  case_496();
2781
 
  break;
2782
 
case 497:
2783
 
  case_497();
2784
 
  break;
2785
 
case 498:
2786
 
  case_498();
2787
 
  break;
2788
 
case 499:
2789
 
  case_499();
2790
 
  break;
2791
 
case 500:
2792
 
  case_500();
2793
 
  break;
2794
 
case 504:
2795
 
  case_504();
2796
 
  break;
2797
 
case 505:
2798
 
  case_505();
2799
 
  break;
2800
 
case 506:
2801
 
  case_506();
2802
 
  break;
2803
 
case 507:
2804
 
#line 3650 "cs-parser.jay"
2805
 
  {
2806
 
                yyVal = 2;
2807
 
          }
2808
 
  break;
2809
 
case 508:
2810
 
#line 3654 "cs-parser.jay"
2811
 
  {
2812
 
                yyVal = ((int) yyVals[-1+yyTop]) + 1;
2813
 
          }
2814
 
  break;
2815
 
case 509:
2816
 
#line 3661 "cs-parser.jay"
2817
 
  {
2818
 
                yyVal = null;
2819
 
          }
2820
 
  break;
2821
 
case 510:
2822
 
#line 3665 "cs-parser.jay"
2823
 
  {
2824
 
                yyVal = yyVals[0+yyTop];
2825
 
          }
2826
 
  break;
2827
 
case 511:
2828
 
  case_511();
2829
 
  break;
2830
 
case 512:
2831
 
  case_512();
2832
 
  break;
2833
 
case 513:
2834
 
  case_513();
2835
 
  break;
2836
 
case 514:
2837
 
  case_514();
2838
 
  break;
2839
 
case 515:
2840
 
#line 3709 "cs-parser.jay"
2841
 
  {
2842
 
                lexer.TypeOfParsing = true;
2843
 
          }
2844
 
  break;
2845
 
case 516:
2846
 
  case_516();
2847
 
  break;
2848
 
case 519:
2849
 
  case_519();
2850
 
  break;
2851
 
case 520:
2852
 
  case_520();
2853
 
  break;
2854
 
case 521:
2855
 
  case_521();
2856
 
  break;
2857
 
case 522:
2858
 
  case_522();
2859
 
  break;
2860
 
case 523:
2861
 
  case_523();
2862
 
  break;
2863
 
case 524:
2864
 
  case_524();
2865
 
  break;
2866
 
case 525:
2867
 
  case_525();
2868
 
  break;
2869
 
case 526:
2870
 
  case_526();
2871
 
  break;
2872
 
case 527:
2873
 
  case_527();
2874
 
  break;
2875
 
case 528:
2876
 
  case_528();
2877
 
  break;
2878
 
case 529:
2879
 
  case_529();
2880
 
  break;
2881
 
case 530:
2882
 
  case_530();
2883
 
  break;
2884
 
case 531:
2885
 
#line 3829 "cs-parser.jay"
2886
 
  {
2887
 
                start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], false, GetLocation (yyVals[-1+yyTop]));
2888
 
          }
2889
 
  break;
2890
 
case 532:
2891
 
  case_532();
2892
 
  break;
2893
 
case 533:
2894
 
#line 3842 "cs-parser.jay"
2895
 
  {
2896
 
                start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], true, GetLocation (yyVals[-2+yyTop]));
2897
 
          }
2898
 
  break;
2899
 
case 534:
2900
 
  case_534();
2901
 
  break;
2902
 
case 535:
2903
 
#line 3859 "cs-parser.jay"
2904
 
  {
2905
 
                yyVal = ParametersCompiled.Undefined;
2906
 
          }
2907
 
  break;
2908
 
case 537:
2909
 
#line 3867 "cs-parser.jay"
2910
 
  {
2911
 
                valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
2912
 
          }
2913
 
  break;
2914
 
case 538:
2915
 
  case_538();
2916
 
  break;
2917
 
case 539:
2918
 
  case_539();
2919
 
  break;
2920
 
case 541:
2921
 
#line 3893 "cs-parser.jay"
2922
 
  {
2923
 
                yyVal = new Unary (Unary.Operator.LogicalNot, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2924
 
          }
2925
 
  break;
2926
 
case 542:
2927
 
#line 3897 "cs-parser.jay"
2928
 
  {
2929
 
                yyVal = new Unary (Unary.Operator.OnesComplement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2930
 
          }
2931
 
  break;
2932
 
case 543:
2933
 
  case_543();
2934
 
  break;
2935
 
case 544:
2936
 
  case_544();
2937
 
  break;
2938
 
case 546:
2939
 
#line 3933 "cs-parser.jay"
2940
 
  { 
2941
 
                yyVal = new Unary (Unary.Operator.UnaryPlus, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2942
 
          }
2943
 
  break;
2944
 
case 547:
2945
 
#line 3937 "cs-parser.jay"
2946
 
  { 
2947
 
                yyVal = new Unary (Unary.Operator.UnaryNegation, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2948
 
          }
2949
 
  break;
2950
 
case 548:
2951
 
#line 3941 "cs-parser.jay"
2952
 
  {
2953
 
                yyVal = new UnaryMutator (UnaryMutator.Mode.PreIncrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2954
 
          }
2955
 
  break;
2956
 
case 549:
2957
 
#line 3945 "cs-parser.jay"
2958
 
  {
2959
 
                yyVal = new UnaryMutator (UnaryMutator.Mode.PreDecrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2960
 
          }
2961
 
  break;
2962
 
case 550:
2963
 
#line 3949 "cs-parser.jay"
2964
 
  {
2965
 
                yyVal = new Indirection ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2966
 
          }
2967
 
  break;
2968
 
case 551:
2969
 
#line 3953 "cs-parser.jay"
2970
 
  {
2971
 
                yyVal = new Unary (Unary.Operator.AddressOf, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2972
 
          }
2973
 
  break;
2974
 
case 553:
2975
 
  case_553();
2976
 
  break;
2977
 
case 554:
2978
 
  case_554();
2979
 
  break;
2980
 
case 555:
2981
 
  case_555();
2982
 
  break;
2983
 
case 557:
2984
 
  case_557();
2985
 
  break;
2986
 
case 558:
2987
 
#line 3985 "cs-parser.jay"
2988
 
  {
2989
 
                yyVal = new Binary (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2990
 
          }
2991
 
  break;
2992
 
case 559:
2993
 
  case_559();
2994
 
  break;
2995
 
case 560:
2996
 
#line 3994 "cs-parser.jay"
2997
 
  {
2998
 
                yyVal = new As ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
2999
 
          }
3000
 
  break;
3001
 
case 561:
3002
 
#line 3998 "cs-parser.jay"
3003
 
  {
3004
 
                yyVal = new Is ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3005
 
          }
3006
 
  break;
3007
 
case 563:
3008
 
  case_563();
3009
 
  break;
3010
 
case 564:
3011
 
  case_564();
3012
 
  break;
3013
 
case 566:
3014
 
  case_566();
3015
 
  break;
3016
 
case 567:
3017
 
  case_567();
3018
 
  break;
3019
 
case 568:
3020
 
  case_568();
3021
 
  break;
3022
 
case 569:
3023
 
  case_569();
3024
 
  break;
3025
 
case 571:
3026
 
  case_571();
3027
 
  break;
3028
 
case 572:
3029
 
  case_572();
3030
 
  break;
3031
 
case 574:
3032
 
  case_574();
3033
 
  break;
3034
 
case 576:
3035
 
  case_576();
3036
 
  break;
3037
 
case 578:
3038
 
  case_578();
3039
 
  break;
3040
 
case 580:
3041
 
  case_580();
3042
 
  break;
3043
 
case 582:
3044
 
  case_582();
3045
 
  break;
3046
 
case 584:
3047
 
  case_584();
3048
 
  break;
3049
 
case 586:
3050
 
  case_586();
3051
 
  break;
3052
 
case 587:
3053
 
  case_587();
3054
 
  break;
3055
 
case 588:
3056
 
#line 4127 "cs-parser.jay"
3057
 
  {
3058
 
                yyVal = new SimpleAssign ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3059
 
          }
3060
 
  break;
3061
 
case 589:
3062
 
  case_589();
3063
 
  break;
3064
 
case 590:
3065
 
  case_590();
3066
 
  break;
3067
 
case 591:
3068
 
  case_591();
3069
 
  break;
3070
 
case 592:
3071
 
  case_592();
3072
 
  break;
3073
 
case 593:
3074
 
  case_593();
3075
 
  break;
3076
 
case 594:
3077
 
  case_594();
3078
 
  break;
3079
 
case 595:
3080
 
  case_595();
3081
 
  break;
3082
 
case 596:
3083
 
  case_596();
3084
 
  break;
3085
 
case 597:
3086
 
  case_597();
3087
 
  break;
3088
 
case 598:
3089
 
  case_598();
3090
 
  break;
3091
 
case 599:
3092
 
  case_599();
3093
 
  break;
3094
 
case 600:
3095
 
  case_600();
3096
 
  break;
3097
 
case 601:
3098
 
  case_601();
3099
 
  break;
3100
 
case 602:
3101
 
  case_602();
3102
 
  break;
3103
 
case 603:
3104
 
  case_603();
3105
 
  break;
3106
 
case 604:
3107
 
#line 4224 "cs-parser.jay"
3108
 
  { yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
3109
 
  break;
3110
 
case 605:
3111
 
  case_605();
3112
 
  break;
3113
 
case 608:
3114
 
#line 4240 "cs-parser.jay"
3115
 
  {
3116
 
                start_block (Location.Null);
3117
 
          }
3118
 
  break;
3119
 
case 609:
3120
 
  case_609();
3121
 
  break;
3122
 
case 611:
3123
 
  case_611();
3124
 
  break;
3125
 
case 612:
3126
 
  case_612();
3127
 
  break;
3128
 
case 613:
3129
 
  case_613();
3130
 
  break;
3131
 
case 614:
3132
 
  case_614();
3133
 
  break;
3134
 
case 615:
3135
 
  case_615();
3136
 
  break;
3137
 
case 616:
3138
 
#line 4285 "cs-parser.jay"
3139
 
  {
3140
 
                valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
3141
 
          }
3142
 
  break;
3143
 
case 617:
3144
 
  case_617();
3145
 
  break;
3146
 
case 618:
3147
 
  case_618();
3148
 
  break;
3149
 
case 619:
3150
 
#line 4299 "cs-parser.jay"
3151
 
  {
3152
 
                valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;          
3153
 
          }
3154
 
  break;
3155
 
case 620:
3156
 
  case_620();
3157
 
  break;
3158
 
case 621:
3159
 
  case_621();
3160
 
  break;
3161
 
case 627:
3162
 
#line 4324 "cs-parser.jay"
3163
 
  {
3164
 
                yyVal = new ArglistAccess (GetLocation (yyVals[0+yyTop]));
3165
 
          }
3166
 
  break;
3167
 
case 628:
3168
 
  case_628();
3169
 
  break;
3170
 
case 629:
3171
 
  case_629();
3172
 
  break;
3173
 
case 630:
3174
 
  case_630();
3175
 
  break;
3176
 
case 632:
3177
 
#line 4353 "cs-parser.jay"
3178
 
  {
3179
 
                yyVal = new BooleanExpression ((Expression) yyVals[0+yyTop]);
3180
 
          }
3181
 
  break;
3182
 
case 633:
3183
 
#line 4366 "cs-parser.jay"
3184
 
  {
3185
 
                lexer.ConstraintsParsing = true;
3186
 
          }
3187
 
  break;
3188
 
case 634:
3189
 
  case_634();
3190
 
  break;
3191
 
case 635:
3192
 
  case_635();
3193
 
  break;
3194
 
case 636:
3195
 
  case_636();
3196
 
  break;
3197
 
case 637:
3198
 
  case_637();
3199
 
  break;
3200
 
case 638:
3201
 
#line 4411 "cs-parser.jay"
3202
 
  { yyVal = null; }
3203
 
  break;
3204
 
case 639:
3205
 
#line 4413 "cs-parser.jay"
3206
 
  { yyVal = yyVals[0+yyTop]; StoreModifierLocation (Modifiers.PARTIAL, GetLocation (yyVals[0+yyTop])); }
3207
 
  break;
3208
 
case 640:
3209
 
  case_640();
3210
 
  break;
3211
 
case 641:
3212
 
#line 4426 "cs-parser.jay"
3213
 
  {
3214
 
                lexer.parsing_modifiers = false;                
3215
 
          }
3216
 
  break;
3217
 
case 643:
3218
 
  case_643();
3219
 
  break;
3220
 
case 644:
3221
 
  case_644();
3222
 
  break;
3223
 
case 645:
3224
 
  case_645();
3225
 
  break;
3226
 
case 646:
3227
 
  case_646();
3228
 
  break;
3229
 
case 647:
3230
 
  case_647();
3231
 
  break;
3232
 
case 648:
3233
 
  case_648();
3234
 
  break;
3235
 
case 649:
3236
 
  case_649();
3237
 
  break;
3238
 
case 650:
3239
 
  case_650();
3240
 
  break;
3241
 
case 651:
3242
 
  case_651();
3243
 
  break;
3244
 
case 652:
3245
 
  case_652();
3246
 
  break;
3247
 
case 653:
3248
 
  case_653();
3249
 
  break;
3250
 
case 654:
3251
 
  case_654();
3252
 
  break;
3253
 
case 655:
3254
 
  case_655();
3255
 
  break;
3256
 
case 656:
3257
 
  case_656();
3258
 
  break;
3259
 
case 657:
3260
 
  case_657();
3261
 
  break;
3262
 
case 658:
3263
 
  case_658();
3264
 
  break;
3265
 
case 660:
3266
 
  case_660();
3267
 
  break;
3268
 
case 661:
3269
 
  case_661();
3270
 
  break;
3271
 
case 663:
3272
 
#line 4552 "cs-parser.jay"
3273
 
  {
3274
 
                yyVal = yyVals[0+yyTop];
3275
 
          }
3276
 
  break;
3277
 
case 664:
3278
 
  case_664();
3279
 
  break;
3280
 
case 665:
3281
 
  case_665();
3282
 
  break;
3283
 
case 666:
3284
 
  case_666();
3285
 
  break;
3286
 
case 667:
3287
 
  case_667();
3288
 
  break;
3289
 
case 668:
3290
 
  case_668();
3291
 
  break;
3292
 
case 669:
3293
 
  case_669();
3294
 
  break;
3295
 
case 670:
3296
 
  case_670();
3297
 
  break;
3298
 
case 671:
3299
 
  case_671();
3300
 
  break;
3301
 
case 672:
3302
 
#line 4645 "cs-parser.jay"
3303
 
  {
3304
 
                yyVal = new SpecialContraintExpr (SpecialConstraint.Class, GetLocation (yyVals[0+yyTop]));
3305
 
          }
3306
 
  break;
3307
 
case 673:
3308
 
#line 4649 "cs-parser.jay"
3309
 
  {
3310
 
                yyVal = new SpecialContraintExpr (SpecialConstraint.Struct, GetLocation (yyVals[0+yyTop]));
3311
 
          }
3312
 
  break;
3313
 
case 674:
3314
 
#line 4656 "cs-parser.jay"
3315
 
  {
3316
 
                yyVal = Variance.None;
3317
 
          }
3318
 
  break;
3319
 
case 675:
3320
 
  case_675();
3321
 
  break;
3322
 
case 676:
3323
 
  case_676();
3324
 
  break;
3325
 
case 677:
3326
 
  case_677();
3327
 
  break;
3328
 
case 678:
3329
 
  case_678();
3330
 
  break;
3331
 
case 679:
3332
 
#line 4701 "cs-parser.jay"
3333
 
  {
3334
 
                yyVal = yyVals[0+yyTop];
3335
 
          }
3336
 
  break;
3337
 
case 680:
3338
 
  case_680();
3339
 
  break;
3340
 
case 681:
3341
 
  case_681();
3342
 
  break;
3343
 
case 682:
3344
 
  case_682();
3345
 
  break;
3346
 
case 683:
3347
 
  case_683();
3348
 
  break;
3349
 
case 684:
3350
 
  case_684();
3351
 
  break;
3352
 
case 689:
3353
 
#line 4750 "cs-parser.jay"
3354
 
  {
3355
 
                current_block.AddStatement ((Statement) yyVals[0+yyTop]);
3356
 
          }
3357
 
  break;
3358
 
case 690:
3359
 
#line 4754 "cs-parser.jay"
3360
 
  {
3361
 
                current_block.AddStatement ((Statement) yyVals[0+yyTop]);
3362
 
          }
3363
 
  break;
3364
 
case 692:
3365
 
  case_692();
3366
 
  break;
3367
 
case 693:
3368
 
  case_693();
3369
 
  break;
3370
 
case 696:
3371
 
#line 4788 "cs-parser.jay"
3372
 
  {
3373
 
                current_block.AddStatement ((Statement) yyVals[0+yyTop]);
3374
 
          }
3375
 
  break;
3376
 
case 697:
3377
 
#line 4792 "cs-parser.jay"
3378
 
  {
3379
 
                current_block.AddStatement ((Statement) yyVals[0+yyTop]);
3380
 
          }
3381
 
  break;
3382
 
case 726:
3383
 
  case_726();
3384
 
  break;
3385
 
case 727:
3386
 
  case_727();
3387
 
  break;
3388
 
case 728:
3389
 
  case_728();
3390
 
  break;
3391
 
case 729:
3392
 
  case_729();
3393
 
  break;
3394
 
case 730:
3395
 
  case_730();
3396
 
  break;
3397
 
case 733:
3398
 
  case_733();
3399
 
  break;
3400
 
case 734:
3401
 
  case_734();
3402
 
  break;
3403
 
case 735:
3404
 
  case_735();
3405
 
  break;
3406
 
case 736:
3407
 
  case_736();
3408
 
  break;
3409
 
case 737:
3410
 
#line 4936 "cs-parser.jay"
3411
 
  {
3412
 
                yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
3413
 
          }
3414
 
  break;
3415
 
case 738:
3416
 
#line 4940 "cs-parser.jay"
3417
 
  {
3418
 
                yyVal = new ComposedCast (new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-1+yyTop])), (ComposedTypeSpecifier) yyVals[0+yyTop]);
3419
 
          }
3420
 
  break;
3421
 
case 739:
3422
 
  case_739();
3423
 
  break;
3424
 
case 741:
3425
 
  case_741();
3426
 
  break;
3427
 
case 742:
3428
 
#line 4961 "cs-parser.jay"
3429
 
  {
3430
 
                yyVal = ComposedTypeSpecifier.CreatePointer (GetLocation (yyVals[0+yyTop]));
3431
 
          }
3432
 
  break;
3433
 
case 744:
3434
 
  case_744();
3435
 
  break;
3436
 
case 745:
3437
 
  case_745();
3438
 
  break;
3439
 
case 746:
3440
 
  case_746();
3441
 
  break;
3442
 
case 747:
3443
 
  case_747();
3444
 
  break;
3445
 
case 748:
3446
 
  case_748();
3447
 
  break;
3448
 
case 750:
3449
 
  case_750();
3450
 
  break;
3451
 
case 752:
3452
 
  case_752();
3453
 
  break;
3454
 
case 753:
3455
 
  case_753();
3456
 
  break;
3457
 
case 754:
3458
 
  case_754();
3459
 
  break;
3460
 
case 758:
3461
 
  case_758();
3462
 
  break;
3463
 
case 761:
3464
 
  case_761();
3465
 
  break;
3466
 
case 762:
3467
 
  case_762();
3468
 
  break;
3469
 
case 763:
3470
 
#line 5096 "cs-parser.jay"
3471
 
  {
3472
 
                report.Error (145, lexer.Location, "A const field requires a value to be provided");
3473
 
          }
3474
 
  break;
3475
 
case 764:
3476
 
  case_764();
3477
 
  break;
3478
 
case 769:
3479
 
  case_769();
3480
 
  break;
3481
 
case 771:
3482
 
  case_771();
3483
 
  break;
3484
 
case 772:
3485
 
  case_772();
3486
 
  break;
3487
 
case 773:
3488
 
  case_773();
3489
 
  break;
3490
 
case 774:
3491
 
#line 5146 "cs-parser.jay"
3492
 
  { yyVal = yyVals[-1+yyTop]; }
3493
 
  break;
3494
 
case 775:
3495
 
  case_775();
3496
 
  break;
3497
 
case 776:
3498
 
#line 5156 "cs-parser.jay"
3499
 
  { yyVal = yyVals[-1+yyTop]; }
3500
 
  break;
3501
 
case 777:
3502
 
#line 5157 "cs-parser.jay"
3503
 
  { yyVal = yyVals[-1+yyTop]; }
3504
 
  break;
3505
 
case 778:
3506
 
  case_778();
3507
 
  break;
3508
 
case 779:
3509
 
  case_779();
3510
 
  break;
3511
 
case 780:
3512
 
  case_780();
3513
 
  break;
3514
 
case 783:
3515
 
  case_783();
3516
 
  break;
3517
 
case 784:
3518
 
  case_784();
3519
 
  break;
3520
 
case 785:
3521
 
  case_785();
3522
 
  break;
3523
 
case 786:
3524
 
#line 5232 "cs-parser.jay"
3525
 
  {
3526
 
                start_block (GetLocation (yyVals[0+yyTop]));
3527
 
          }
3528
 
  break;
3529
 
case 787:
3530
 
  case_787();
3531
 
  break;
3532
 
case 788:
3533
 
  case_788();
3534
 
  break;
3535
 
case 789:
3536
 
  case_789();
3537
 
  break;
3538
 
case 791:
3539
 
  case_791();
3540
 
  break;
3541
 
case 792:
3542
 
  case_792();
3543
 
  break;
3544
 
case 793:
3545
 
  case_793();
3546
 
  break;
3547
 
case 794:
3548
 
#line 5283 "cs-parser.jay"
3549
 
  {
3550
 
                current_block = current_block.CreateSwitchBlock (lexer.Location);
3551
 
          }
3552
 
  break;
3553
 
case 795:
3554
 
#line 5287 "cs-parser.jay"
3555
 
  {
3556
 
                yyVal = new SwitchSection ((List<SwitchLabel>) yyVals[-2+yyTop], current_block);
3557
 
          }
3558
 
  break;
3559
 
case 796:
3560
 
  case_796();
3561
 
  break;
3562
 
case 797:
3563
 
  case_797();
3564
 
  break;
3565
 
case 798:
3566
 
  case_798();
3567
 
  break;
3568
 
case 799:
3569
 
  case_799();
3570
 
  break;
3571
 
case 800:
3572
 
#line 5321 "cs-parser.jay"
3573
 
  {
3574
 
                yyVal = new SwitchLabel (null, GetLocation (yyVals[0+yyTop]));
3575
 
          }
3576
 
  break;
3577
 
case 805:
3578
 
  case_805();
3579
 
  break;
3580
 
case 806:
3581
 
  case_806();
3582
 
  break;
3583
 
case 807:
3584
 
  case_807();
3585
 
  break;
3586
 
case 808:
3587
 
  case_808();
3588
 
  break;
3589
 
case 809:
3590
 
  case_809();
3591
 
  break;
3592
 
case 810:
3593
 
  case_810();
3594
 
  break;
3595
 
case 811:
3596
 
#line 5382 "cs-parser.jay"
3597
 
  {
3598
 
                yyVal = yyVals[0+yyTop];
3599
 
          }
3600
 
  break;
3601
 
case 812:
3602
 
  case_812();
3603
 
  break;
3604
 
case 813:
3605
 
#line 5397 "cs-parser.jay"
3606
 
  {
3607
 
                yyVal = yyVals[0+yyTop];
3608
 
          }
3609
 
  break;
3610
 
case 814:
3611
 
  case_814();
3612
 
  break;
3613
 
case 815:
3614
 
  case_815();
3615
 
  break;
3616
 
case 816:
3617
 
#line 5418 "cs-parser.jay"
3618
 
  {
3619
 
                yyVal = yyVals[0+yyTop];
3620
 
          }
3621
 
  break;
3622
 
case 817:
3623
 
  case_817();
3624
 
  break;
3625
 
case 818:
3626
 
  case_818();
3627
 
  break;
3628
 
case 819:
3629
 
  case_819();
3630
 
  break;
3631
 
case 820:
3632
 
#line 5452 "cs-parser.jay"
3633
 
  { yyVal = new EmptyStatement (lexer.Location); }
3634
 
  break;
3635
 
case 822:
3636
 
  case_822();
3637
 
  break;
3638
 
case 823:
3639
 
  case_823();
3640
 
  break;
3641
 
case 825:
3642
 
#line 5473 "cs-parser.jay"
3643
 
  { yyVal = null; }
3644
 
  break;
3645
 
case 827:
3646
 
#line 5478 "cs-parser.jay"
3647
 
  { yyVal = new EmptyStatement (lexer.Location); }
3648
 
  break;
3649
 
case 831:
3650
 
  case_831();
3651
 
  break;
3652
 
case 832:
3653
 
  case_832();
3654
 
  break;
3655
 
case 833:
3656
 
  case_833();
3657
 
  break;
3658
 
case 834:
3659
 
  case_834();
3660
 
  break;
3661
 
case 835:
3662
 
  case_835();
3663
 
  break;
3664
 
case 836:
3665
 
  case_836();
3666
 
  break;
3667
 
case 837:
3668
 
  case_837();
3669
 
  break;
3670
 
case 844:
3671
 
  case_844();
3672
 
  break;
3673
 
case 845:
3674
 
  case_845();
3675
 
  break;
3676
 
case 846:
3677
 
  case_846();
3678
 
  break;
3679
 
case 847:
3680
 
  case_847();
3681
 
  break;
3682
 
case 848:
3683
 
  case_848();
3684
 
  break;
3685
 
case 849:
3686
 
  case_849();
3687
 
  break;
3688
 
case 850:
3689
 
  case_850();
3690
 
  break;
3691
 
case 851:
3692
 
  case_851();
3693
 
  break;
3694
 
case 852:
3695
 
  case_852();
3696
 
  break;
3697
 
case 853:
3698
 
  case_853();
3699
 
  break;
3700
 
case 854:
3701
 
  case_854();
3702
 
  break;
3703
 
case 855:
3704
 
  case_855();
3705
 
  break;
3706
 
case 858:
3707
 
#line 5695 "cs-parser.jay"
3708
 
  {
3709
 
                yyVal = new TryCatch ((Block) yyVals[-1+yyTop], (List<Catch>) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]), false);
3710
 
          }
3711
 
  break;
3712
 
case 859:
3713
 
  case_859();
3714
 
  break;
3715
 
case 860:
3716
 
  case_860();
3717
 
  break;
3718
 
case 861:
3719
 
  case_861();
3720
 
  break;
3721
 
case 862:
3722
 
  case_862();
3723
 
  break;
3724
 
case 863:
3725
 
  case_863();
3726
 
  break;
3727
 
case 866:
3728
 
#line 5745 "cs-parser.jay"
3729
 
  {
3730
 
                yyVal = new Catch ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3731
 
          }
3732
 
  break;
3733
 
case 867:
3734
 
  case_867();
3735
 
  break;
3736
 
case 868:
3737
 
#line 5764 "cs-parser.jay"
3738
 
  {
3739
 
                yyVal = yyVals[-1+yyTop];
3740
 
          }
3741
 
  break;
3742
 
case 869:
3743
 
  case_869();
3744
 
  break;
3745
 
case 870:
3746
 
#line 5782 "cs-parser.jay"
3747
 
  {
3748
 
                yyVal = new Checked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3749
 
          }
3750
 
  break;
3751
 
case 871:
3752
 
#line 5789 "cs-parser.jay"
3753
 
  {
3754
 
                yyVal = new Unchecked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3755
 
          }
3756
 
  break;
3757
 
case 872:
3758
 
  case_872();
3759
 
  break;
3760
 
case 873:
3761
 
#line 5799 "cs-parser.jay"
3762
 
  {
3763
 
                yyVal = new Unsafe ((Block) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
3764
 
          }
3765
 
  break;
3766
 
case 874:
3767
 
  case_874();
3768
 
  break;
3769
 
case 875:
3770
 
  case_875();
3771
 
  break;
3772
 
case 876:
3773
 
  case_876();
3774
 
  break;
3775
 
case 877:
3776
 
  case_877();
3777
 
  break;
3778
 
case 878:
3779
 
  case_878();
3780
 
  break;
3781
 
case 879:
3782
 
  case_879();
3783
 
  break;
3784
 
case 880:
3785
 
  case_880();
3786
 
  break;
3787
 
case 881:
3788
 
  case_881();
3789
 
  break;
3790
 
case 882:
3791
 
  case_882();
3792
 
  break;
3793
 
case 883:
3794
 
  case_883();
3795
 
  break;
3796
 
case 885:
3797
 
  case_885();
3798
 
  break;
3799
 
case 886:
3800
 
#line 5904 "cs-parser.jay"
3801
 
  {
3802
 
                Error_MissingInitializer (lexer.Location);
3803
 
          }
3804
 
  break;
3805
 
case 887:
3806
 
  case_887();
3807
 
  break;
3808
 
case 888:
3809
 
  case_888();
3810
 
  break;
3811
 
case 889:
3812
 
  case_889();
3813
 
  break;
3814
 
case 890:
3815
 
  case_890();
3816
 
  break;
3817
 
case 891:
3818
 
  case_891();
3819
 
  break;
3820
 
case 892:
3821
 
  case_892();
3822
 
  break;
3823
 
case 893:
3824
 
  case_893();
3825
 
  break;
3826
 
case 894:
3827
 
  case_894();
3828
 
  break;
3829
 
case 895:
3830
 
  case_895();
3831
 
  break;
3832
 
case 896:
3833
 
#line 6009 "cs-parser.jay"
3834
 
  {
3835
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
3836
 
          }
3837
 
  break;
3838
 
case 897:
3839
 
  case_897();
3840
 
  break;
3841
 
case 898:
3842
 
#line 6025 "cs-parser.jay"
3843
 
  {
3844
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
3845
 
          }
3846
 
  break;
3847
 
case 899:
3848
 
  case_899();
3849
 
  break;
3850
 
case 900:
3851
 
  case_900();
3852
 
  break;
3853
 
case 901:
3854
 
  case_901();
3855
 
  break;
3856
 
case 903:
3857
 
  case_903();
3858
 
  break;
3859
 
case 904:
3860
 
  case_904();
3861
 
  break;
3862
 
case 905:
3863
 
#line 6089 "cs-parser.jay"
3864
 
  {
3865
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
3866
 
          }
3867
 
  break;
3868
 
case 906:
3869
 
  case_906();
3870
 
  break;
3871
 
case 907:
3872
 
  case_907();
3873
 
  break;
3874
 
case 908:
3875
 
  case_908();
3876
 
  break;
3877
 
case 909:
3878
 
  case_909();
3879
 
  break;
3880
 
case 911:
3881
 
  case_911();
3882
 
  break;
3883
 
case 917:
3884
 
#line 6143 "cs-parser.jay"
3885
 
  {
3886
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
3887
 
          }
3888
 
  break;
3889
 
case 918:
3890
 
  case_918();
3891
 
  break;
3892
 
case 919:
3893
 
#line 6162 "cs-parser.jay"
3894
 
  {
3895
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
3896
 
          }
3897
 
  break;
3898
 
case 920:
3899
 
  case_920();
3900
 
  break;
3901
 
case 921:
3902
 
  case_921();
3903
 
  break;
3904
 
case 922:
3905
 
  case_922();
3906
 
  break;
3907
 
case 923:
3908
 
  case_923();
3909
 
  break;
3910
 
case 924:
3911
 
  case_924();
3912
 
  break;
3913
 
case 925:
3914
 
  case_925();
3915
 
  break;
3916
 
case 926:
3917
 
  case_926();
3918
 
  break;
3919
 
case 927:
3920
 
  case_927();
3921
 
  break;
3922
 
case 928:
3923
 
  case_928();
3924
 
  break;
3925
 
case 930:
3926
 
  case_930();
3927
 
  break;
3928
 
case 931:
3929
 
#line 6316 "cs-parser.jay"
3930
 
  {
3931
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
3932
 
          }
3933
 
  break;
3934
 
case 932:
3935
 
  case_932();
3936
 
  break;
3937
 
case 934:
3938
 
  case_934();
3939
 
  break;
3940
 
case 935:
3941
 
  case_935();
3942
 
  break;
3943
 
case 937:
3944
 
  case_937();
3945
 
  break;
3946
 
case 938:
3947
 
  case_938();
3948
 
  break;
3949
 
case 939:
3950
 
#line 6362 "cs-parser.jay"
3951
 
  {
3952
 
                yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);       
3953
 
          }
3954
 
  break;
3955
 
case 940:
3956
 
  case_940();
3957
 
  break;
3958
 
case 941:
3959
 
  case_941();
3960
 
  break;
3961
 
case 942:
3962
 
#line 6379 "cs-parser.jay"
3963
 
  {
3964
 
                yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);        
3965
 
          }
3966
 
  break;
3967
 
case 943:
3968
 
  case_943();
3969
 
  break;
3970
 
case 944:
3971
 
  case_944();
3972
 
  break;
3973
 
case 946:
3974
 
  case_946();
3975
 
  break;
3976
 
case 947:
3977
 
  case_947();
3978
 
  break;
3979
 
case 950:
3980
 
  case_950();
3981
 
  break;
3982
 
case 951:
3983
 
  case_951();
3984
 
  break;
3985
 
case 959:
3986
 
#line 6501 "cs-parser.jay"
3987
 
  {
3988
 
                module.DocumentationBuilder.ParsedName = (MemberName) yyVals[0+yyTop];
3989
 
          }
3990
 
  break;
3991
 
case 960:
3992
 
#line 6508 "cs-parser.jay"
3993
 
  {
3994
 
                module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
3995
 
          }
3996
 
  break;
3997
 
case 961:
3998
 
  case_961();
3999
 
  break;
4000
 
case 962:
4001
 
  case_962();
4002
 
  break;
4003
 
case 963:
4004
 
#line 6525 "cs-parser.jay"
4005
 
  {
4006
 
                yyVal = new MemberName ((MemberName) yyVals[-2+yyTop], MemberCache.IndexerNameAlias, Location.Null);
4007
 
          }
4008
 
  break;
4009
 
case 964:
4010
 
#line 6529 "cs-parser.jay"
4011
 
  {
4012
 
                valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
4013
 
          }
4014
 
  break;
4015
 
case 965:
4016
 
  case_965();
4017
 
  break;
4018
 
case 966:
4019
 
  case_966();
4020
 
  break;
4021
 
case 967:
4022
 
  case_967();
4023
 
  break;
4024
 
case 968:
4025
 
  case_968();
4026
 
  break;
4027
 
case 970:
4028
 
#line 6565 "cs-parser.jay"
4029
 
  {
4030
 
                yyVal = new MemberName (((MemberName) yyVals[-2+yyTop]), (MemberName) yyVals[0+yyTop]);
4031
 
          }
4032
 
  break;
4033
 
case 972:
4034
 
#line 6573 "cs-parser.jay"
4035
 
  {
4036
 
                valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
4037
 
          }
4038
 
  break;
4039
 
case 973:
4040
 
#line 6577 "cs-parser.jay"
4041
 
  {
4042
 
                yyVal = yyVals[-1+yyTop];
4043
 
          }
4044
 
  break;
4045
 
case 974:
4046
 
#line 6584 "cs-parser.jay"
4047
 
  {
4048
 
                yyVal = new List<DocumentationParameter> (0);
4049
 
          }
4050
 
  break;
4051
 
case 976:
4052
 
  case_976();
4053
 
  break;
4054
 
case 977:
4055
 
  case_977();
4056
 
  break;
4057
 
case 978:
4058
 
  case_978();
4059
 
  break;
4060
 
#line default
4061
 
        }
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);
4067
 
          yyState = yyFinal;
4068
 
          if (yyToken < 0) {
4069
 
            yyToken = yyLex.advance() ? yyLex.token() : 0;
4070
 
//t            if (debug != null)
4071
 
//t               debug.lex(yyState, yyToken,yyname(yyToken), yyLex.value());
4072
 
          }
4073
 
          if (yyToken == 0) {
4074
 
//t            if (debug != null) debug.accept(yyVal);
4075
 
            return yyVal;
4076
 
          }
4077
 
          goto continue_yyLoop;
4078
 
        }
4079
 
        if (((yyN = yyGindex[yyM]) != 0) && ((yyN += yyState) >= 0)
4080
 
            && (yyN < yyTable.Length) && (yyCheck[yyN] == yyState))
4081
 
          yyState = yyTable[yyN];
4082
 
        else
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'
4087
 
      }
4088
 
    continue_yyLoop: ;          // implements the named-loop continue: 'continue yyLoop'
4089
 
    }
4090
 
  }
4091
 
 
4092
 
/*
4093
 
 All more than 3 lines long rules are wrapped into a method
4094
 
*/
4095
 
void case_6()
4096
 
#line 398 "cs-parser.jay"
4097
 
{
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");
4102
 
 
4103
 
                        current_namespace.UnattachedAttributes = attrs;
4104
 
                }
4105
 
          }
4106
 
 
4107
 
void case_8()
4108
 
#line 412 "cs-parser.jay"
4109
 
{
4110
 
                if (yyToken == Token.EXTERN_ALIAS)
4111
 
                        report.Error (439, lexer.Location, "An extern alias declaration must precede all other elements");
4112
 
                else
4113
 
                        Error_SyntaxError (yyToken);
4114
 
          }
4115
 
 
4116
 
void case_13()
4117
 
#line 432 "cs-parser.jay"
4118
 
{
4119
 
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
4120
 
                string s = lt.Value;
4121
 
                if (s != "alias") {
4122
 
                        syntax_error (lt.Location, "`alias' expected");
4123
 
                } else {
4124
 
                        if (lang_version == LanguageVersion.ISO_1)
4125
 
                                FeatureIsNotAvailable (lt.Location, "external alias");
4126
 
 
4127
 
                        lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
4128
 
                        if (lt.Value == QualifiedAliasMember.GlobalAlias) {
4129
 
                                RootNamespace.Error_GlobalNamespaceRedefined (report, lt.Location);
4130
 
                        }
4131
 
                        
4132
 
                        var na = new UsingExternAlias (new SimpleMemberName (lt.Value, lt.Location), GetLocation (yyVals[-3+yyTop]));
4133
 
                        current_namespace.AddUsing (na);
4134
 
                        
4135
 
                        lbag.AddLocation (na, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
4136
 
                }
4137
 
          }
4138
 
 
4139
 
void case_17()
4140
 
#line 465 "cs-parser.jay"
4141
 
{
4142
 
                if (doc_support)
4143
 
                        Lexer.doc_state = XmlCommentState.Allowed;
4144
 
          }
4145
 
 
4146
 
void case_18()
4147
 
#line 473 "cs-parser.jay"
4148
 
{
4149
 
                var un = new UsingNamespace ((ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
4150
 
                current_namespace.AddUsing (un);
4151
 
                
4152
 
                lbag.AddLocation (un, GetLocation (yyVals[0+yyTop]));
4153
 
          }
4154
 
 
4155
 
void case_19()
4156
 
#line 480 "cs-parser.jay"
4157
 
{
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");
4162
 
                }
4163
 
 
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]));
4167
 
          }
4168
 
 
4169
 
void case_20()
4170
 
#line 492 "cs-parser.jay"
4171
 
{
4172
 
                Error_SyntaxError (yyToken);
4173
 
                yyVal = null;
4174
 
         }
4175
 
 
4176
 
void case_21()
4177
 
#line 505 "cs-parser.jay"
4178
 
{
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;
4185
 
                        } else {
4186
 
                                foreach (var a in attrs.Attrs) {
4187
 
                                        if (a.ExplicitTarget == "assembly" || a.ExplicitTarget == "module")
4188
 
                                                continue;
4189
 
                                                
4190
 
                                        valid_global_attrs = false;
4191
 
                                        break;
4192
 
                                }
4193
 
                        }
4194
 
                        
4195
 
                        if (!valid_global_attrs)
4196
 
                                report.Error (1671, name.Location, "A namespace declaration cannot have modifiers or attributes");
4197
 
                }
4198
 
        
4199
 
                module.AddAttributes (attrs, current_namespace);
4200
 
                
4201
 
                var ns = new NamespaceContainer (name, current_namespace);
4202
 
                current_namespace.AddTypeContainer (ns);
4203
 
                current_container = current_namespace = ns;
4204
 
          }
4205
 
 
4206
 
void case_22()
4207
 
#line 533 "cs-parser.jay"
4208
 
{
4209
 
                if (doc_support)
4210
 
                        Lexer.doc_state = XmlCommentState.Allowed;
4211
 
          }
4212
 
 
4213
 
void case_23()
4214
 
#line 538 "cs-parser.jay"
4215
 
{
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]));
4218
 
                else
4219
 
                        lbag.AddLocation (current_container, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-1+yyTop]));
4220
 
          
4221
 
                current_container = current_namespace = current_namespace.Parent;
4222
 
          }
4223
 
 
4224
 
void case_24()
4225
 
#line 550 "cs-parser.jay"
4226
 
{
4227
 
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4228
 
                yyVal = new MemberName (lt.Value, lt.Location);
4229
 
          }
4230
 
 
4231
 
void case_25()
4232
 
#line 555 "cs-parser.jay"
4233
 
{
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])
4237
 
                };
4238
 
          }
4239
 
 
4240
 
void case_26()
4241
 
#line 562 "cs-parser.jay"
4242
 
{
4243
 
                Error_SyntaxError (yyToken);
4244
 
                yyVal = new MemberName ("<invalid>", lexer.Location);
4245
 
          }
4246
 
 
4247
 
void case_39()
4248
 
#line 600 "cs-parser.jay"
4249
 
{
4250
 
                if (yyVals[0+yyTop] != null) {
4251
 
                        TypeContainer ds = (TypeContainer)yyVals[0+yyTop];
4252
 
 
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");
4256
 
                        }
4257
 
 
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);
4263
 
                        }
4264
 
                }
4265
 
                current_namespace.DeclarationFound = true;
4266
 
          }
4267
 
 
4268
 
void case_41()
4269
 
#line 622 "cs-parser.jay"
4270
 
{
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 ('}');
4274
 
          }
4275
 
 
4276
 
void case_49()
4277
 
#line 655 "cs-parser.jay"
4278
 
{
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 ();
4286
 
                }
4287
 
          }
4288
 
 
4289
 
void case_50()
4290
 
#line 666 "cs-parser.jay"
4291
 
{
4292
 
                Attributes attrs = yyVals[-1+yyTop] as Attributes;
4293
 
                var sect = (List<Attribute>) yyVals[0+yyTop];
4294
 
                
4295
 
                if (locationListStack.Count > 0)
4296
 
                        lbag.AddLocation (sect, locationListStack.Pop ());
4297
 
                if (attrs == null)
4298
 
                        attrs = new Attributes (sect);
4299
 
                else
4300
 
                        attrs.AddAttributes (sect);
4301
 
                yyVal = attrs;
4302
 
          }
4303
 
 
4304
 
void case_51()
4305
 
#line 682 "cs-parser.jay"
4306
 
{
4307
 
                lexer.parsing_attribute_section = true;
4308
 
                savedOpenLocation = GetLocation (yyVals[0+yyTop]);
4309
 
          }
4310
 
 
4311
 
void case_52()
4312
 
#line 687 "cs-parser.jay"
4313
 
{
4314
 
                lexer.parsing_attribute_section = false;
4315
 
                yyVal = yyVals[0+yyTop];
4316
 
          }
4317
 
 
4318
 
void case_53()
4319
 
#line 695 "cs-parser.jay"
4320
 
{
4321
 
                current_attr_target = (string) yyVals[-1+yyTop];
4322
 
                if (current_attr_target == "assembly" || current_attr_target == "module") {
4323
 
                        Lexer.check_incorrect_doc_comment ();
4324
 
                }
4325
 
          }
4326
 
 
4327
 
void case_54()
4328
 
#line 702 "cs-parser.jay"
4329
 
{
4330
 
                /* when attribute target is invalid*/
4331
 
                if (current_attr_target == string.Empty)
4332
 
                        yyVal = new List<Attribute> (0);
4333
 
                else
4334
 
                        yyVal = yyVals[-2+yyTop];
4335
 
          
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]) }));
4340
 
                } else {
4341
 
                        locationListStack.Push (new List<Location>(new [] { savedOpenLocation, savedCloseLocation, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[0+yyTop]) }));
4342
 
                }
4343
 
          }
4344
 
 
4345
 
void case_55()
4346
 
#line 718 "cs-parser.jay"
4347
 
{
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]) }));
4351
 
                } else {
4352
 
                        locationListStack.Push (new List<Location>(new [] { savedOpenLocation, GetLocation (yyVals[0+yyTop]) }));
4353
 
                }
4354
 
          }
4355
 
 
4356
 
void case_56()
4357
 
#line 730 "cs-parser.jay"
4358
 
{
4359
 
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4360
 
                yyVal = CheckAttributeTarget (lt.Value, lt.Location);
4361
 
                savedCloseLocation = GetLocation (yyVals[0+yyTop]);
4362
 
          }
4363
 
 
4364
 
void case_59()
4365
 
#line 738 "cs-parser.jay"
4366
 
{
4367
 
                if (yyToken == Token.IDENTIFIER) {
4368
 
                        Error_SyntaxError (yyToken);
4369
 
                        yyVal = null;
4370
 
                } else {
4371
 
                        string name = GetTokenName (yyToken);
4372
 
                        yyVal = CheckAttributeTarget (name, GetLocation (yyVals[0+yyTop]));
4373
 
                }
4374
 
          }
4375
 
 
4376
 
void case_61()
4377
 
#line 755 "cs-parser.jay"
4378
 
{
4379
 
                var attrs = (List<Attribute>) yyVals[-2+yyTop];
4380
 
                attrs.Add ((Attribute) yyVals[0+yyTop]);
4381
 
                attributeCommas.Add (GetLocation (yyVals[-1+yyTop]));
4382
 
 
4383
 
                yyVal = attrs;
4384
 
          }
4385
 
 
4386
 
void case_63()
4387
 
#line 770 "cs-parser.jay"
4388
 
{
4389
 
                --lexer.parsing_block;
4390
 
                
4391
 
                var tne = (ATypeNameExpression) yyVals[-2+yyTop];
4392
 
                if (tne.HasTypeArguments) {
4393
 
                        report.Error (404, tne.Location, "Attributes cannot be generic");
4394
 
                }
4395
 
                Arguments [] arguments = (Arguments []) yyVals[0+yyTop];
4396
 
 
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);
4405
 
                }
4406
 
          }
4407
 
 
4408
 
void case_66()
4409
 
#line 798 "cs-parser.jay"
4410
 
{
4411
 
                savedAttrParenOpenLocation = GetLocation (yyVals[-2+yyTop]);
4412
 
                savedAttrParenCloseLocation = GetLocation (yyVals[0+yyTop]);
4413
 
                yyVal = yyVals[-1+yyTop];
4414
 
                HadAttributeParens = true;
4415
 
          }
4416
 
 
4417
 
void case_68()
4418
 
#line 810 "cs-parser.jay"
4419
 
{
4420
 
                Arguments a = new Arguments (4);
4421
 
                a.Add ((Argument) yyVals[0+yyTop]);
4422
 
                yyVal = new Arguments [] { a, null };
4423
 
          }
4424
 
 
4425
 
void case_69()
4426
 
#line 816 "cs-parser.jay"
4427
 
{
4428
 
                Arguments a = new Arguments (4);
4429
 
                a.Add ((Argument) yyVals[0+yyTop]);  
4430
 
                yyVal = new Arguments [] { null, a };
4431
 
          }
4432
 
 
4433
 
void case_70()
4434
 
#line 822 "cs-parser.jay"
4435
 
{
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);
4440
 
                }
4441
 
                
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]);
4445
 
                
4446
 
                args.Add ((Argument) yyVals[0+yyTop]);
4447
 
                attributeArgumentCommas.Add (GetLocation (yyVals[-1+yyTop]));
4448
 
          }
4449
 
 
4450
 
void case_71()
4451
 
#line 837 "cs-parser.jay"
4452
 
{
4453
 
                Arguments[] o = (Arguments[]) yyVals[-2+yyTop];
4454
 
                if (o [1] == null) {
4455
 
                        o [1] = new Arguments (4);
4456
 
                }
4457
 
 
4458
 
                ((Arguments) o [1]).Add ((Argument) yyVals[0+yyTop]);
4459
 
                attributeArgumentCommas.Add (GetLocation (yyVals[-1+yyTop]));
4460
 
          }
4461
 
 
4462
 
void case_75()
4463
 
#line 862 "cs-parser.jay"
4464
 
{
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]));
4469
 
          }
4470
 
 
4471
 
void case_76()
4472
 
#line 872 "cs-parser.jay"
4473
 
{
4474
 
                if (lang_version <= LanguageVersion.V_3)
4475
 
                        FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "named argument");
4476
 
                        
4477
 
                /* Avoid boxing in common case (no modifier)*/
4478
 
                var arg_mod = yyVals[-1+yyTop] == null ? Argument.AType.None : (Argument.AType) yyVals[-1+yyTop];
4479
 
                        
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]));
4483
 
          }
4484
 
 
4485
 
void case_95()
4486
 
#line 926 "cs-parser.jay"
4487
 
{
4488
 
                report.Error (1519, lexer.Location, "Unexpected symbol `{0}' in class, struct, or interface member declaration",
4489
 
                        GetSymbolName (yyToken));
4490
 
                yyVal = null;
4491
 
                lexer.parsing_generic_declaration = false;
4492
 
          }
4493
 
 
4494
 
void case_97()
4495
 
#line 943 "cs-parser.jay"
4496
 
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]));
4499
 
          }
4500
 
 
4501
 
void case_98()
4502
 
#line 949 "cs-parser.jay"
4503
 
{
4504
 
                lexer.ConstraintsParsing = false;
4505
 
 
4506
 
                if (yyVals[0+yyTop] != null)
4507
 
                        current_container.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
4508
 
 
4509
 
                if (doc_support)
4510
 
                        current_container.PartialContainer.DocComment = Lexer.consume_doc_comment ();
4511
 
 
4512
 
                
4513
 
                lexer.parsing_modifiers = true;
4514
 
          }
4515
 
 
4516
 
void case_99()
4517
 
#line 962 "cs-parser.jay"
4518
 
{
4519
 
                if (doc_support)
4520
 
                        Lexer.doc_state = XmlCommentState.Allowed;
4521
 
          }
4522
 
 
4523
 
void case_100()
4524
 
#line 967 "cs-parser.jay"
4525
 
{
4526
 
                --lexer.parsing_declaration;
4527
 
                if (doc_support)
4528
 
                        Lexer.doc_state = XmlCommentState.Allowed;
4529
 
          }
4530
 
 
4531
 
void case_101()
4532
 
#line 973 "cs-parser.jay"
4533
 
{
4534
 
                if (yyVals[0+yyTop] == null) {
4535
 
                        lbag.AppendToMember (current_container, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]));
4536
 
                } else {
4537
 
                        lbag.AppendToMember (current_container, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
4538
 
                }
4539
 
                yyVal = pop_current_class ();
4540
 
          }
4541
 
 
4542
 
void case_103()
4543
 
#line 991 "cs-parser.jay"
4544
 
{
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);
4549
 
                
4550
 
                if ((mod & Modifiers.STATIC) != 0) {
4551
 
                        report.Error (504, current_field.Location, "The constant `{0}' cannot be marked static", current_field.GetSignatureForError ());
4552
 
                }
4553
 
                
4554
 
                yyVal = current_field;
4555
 
          }
4556
 
 
4557
 
void case_104()
4558
 
#line 1004 "cs-parser.jay"
4559
 
{
4560
 
                if (doc_support) {
4561
 
                        current_field.DocComment = Lexer.consume_doc_comment ();
4562
 
                        Lexer.doc_state = XmlCommentState.Allowed;
4563
 
                }
4564
 
                
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;
4568
 
          }
4569
 
 
4570
 
void case_109()
4571
 
#line 1034 "cs-parser.jay"
4572
 
{
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]));
4576
 
          }
4577
 
 
4578
 
void case_111()
4579
 
#line 1047 "cs-parser.jay"
4580
 
{
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]));
4584
 
          }
4585
 
 
4586
 
void case_112()
4587
 
#line 1053 "cs-parser.jay"
4588
 
{
4589
 
                report.Error (145, lexer.Location, "A const field requires a value to be provided");
4590
 
                yyVal = null;
4591
 
          }
4592
 
 
4593
 
void case_115()
4594
 
#line 1068 "cs-parser.jay"
4595
 
{
4596
 
                lexer.parsing_generic_declaration = false;
4597
 
 
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");
4601
 
                        
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;
4606
 
          }
4607
 
 
4608
 
void case_116()
4609
 
#line 1083 "cs-parser.jay"
4610
 
4611
 
                if (doc_support) {
4612
 
                        current_field.DocComment = Lexer.consume_doc_comment ();
4613
 
                        Lexer.doc_state = XmlCommentState.Allowed;
4614
 
                }
4615
 
                        
4616
 
                lbag.AddMember (current_field, GetModifierLocations (), GetLocation (yyVals[0+yyTop]));
4617
 
                yyVal = current_field;
4618
 
                current_field = null;
4619
 
          }
4620
 
 
4621
 
void case_117()
4622
 
#line 1096 "cs-parser.jay"
4623
 
4624
 
                if (lang_version < LanguageVersion.ISO_2)
4625
 
                        FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "fixed size buffers");
4626
 
 
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]);
4630
 
                        
4631
 
                current_type.AddField (current_field);
4632
 
          }
4633
 
 
4634
 
void case_118()
4635
 
#line 1107 "cs-parser.jay"
4636
 
{
4637
 
                if (doc_support) {
4638
 
                        current_field.DocComment = Lexer.consume_doc_comment ();
4639
 
                        Lexer.doc_state = XmlCommentState.Allowed;
4640
 
            }
4641
 
 
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;
4646
 
          }
4647
 
 
4648
 
void case_121()
4649
 
#line 1130 "cs-parser.jay"
4650
 
{
4651
 
                ++lexer.parsing_block;
4652
 
                current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
4653
 
                start_block (GetLocation (yyVals[0+yyTop]));
4654
 
          }
4655
 
 
4656
 
void case_122()
4657
 
#line 1136 "cs-parser.jay"
4658
 
{
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;
4664
 
          }
4665
 
 
4666
 
void case_127()
4667
 
#line 1163 "cs-parser.jay"
4668
 
{
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]));
4672
 
          }
4673
 
 
4674
 
void case_129()
4675
 
#line 1173 "cs-parser.jay"
4676
 
{
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]));
4681
 
          }
4682
 
 
4683
 
void case_134()
4684
 
#line 1199 "cs-parser.jay"
4685
 
{
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]));
4689
 
          }
4690
 
 
4691
 
void case_136()
4692
 
#line 1212 "cs-parser.jay"
4693
 
{
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]));
4697
 
          }
4698
 
 
4699
 
void case_137()
4700
 
#line 1218 "cs-parser.jay"
4701
 
{
4702
 
                report.Error (443, lexer.Location, "Value or constant expected");
4703
 
                yyVal = null;
4704
 
          }
4705
 
 
4706
 
void case_140()
4707
 
#line 1228 "cs-parser.jay"
4708
 
{
4709
 
                /* It has to be here for the parent to safely restore artificial block*/
4710
 
                Error_SyntaxError (yyToken);
4711
 
                yyVal = null;
4712
 
          }
4713
 
 
4714
 
void case_141()
4715
 
#line 1237 "cs-parser.jay"
4716
 
{
4717
 
                if (doc_support)
4718
 
                        Lexer.doc_state = XmlCommentState.NotAllowed;
4719
 
 
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);
4724
 
          }
4725
 
 
4726
 
void case_142()
4727
 
#line 1247 "cs-parser.jay"
4728
 
{
4729
 
                Method method = (Method) yyVals[-2+yyTop];
4730
 
                method.Block = (ToplevelBlock) yyVals[0+yyTop];
4731
 
                async_block = false;
4732
 
                
4733
 
                if (method.Block == null) {
4734
 
                        lbag.AppendToMember (method, savedLocation); /* semicolon*/
4735
 
                        method.ParameterInfo.CheckParameters (method);
4736
 
 
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 ());
4740
 
                        }
4741
 
                } else {
4742
 
                        if (current_container.Kind == MemberKind.Interface) {
4743
 
                                report.Error (531, method.Location, "`{0}': interface members cannot have a definition",
4744
 
                                        method.GetSignatureForError ());
4745
 
                        }
4746
 
                }
4747
 
 
4748
 
                current_local_parameters = null;
4749
 
 
4750
 
                if (doc_support)
4751
 
                        Lexer.doc_state = XmlCommentState.Allowed;
4752
 
          }
4753
 
 
4754
 
void case_145()
4755
 
#line 1287 "cs-parser.jay"
4756
 
{
4757
 
                lexer.ConstraintsParsing = false;
4758
 
                valid_param_mod = 0;
4759
 
                MemberName name = (MemberName) yyVals[-6+yyTop];
4760
 
                current_local_parameters = (ParametersCompiled) yyVals[-3+yyTop];
4761
 
 
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);
4764
 
 
4765
 
                if (yyVals[0+yyTop] != null)
4766
 
                        method.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
4767
 
                                     
4768
 
                if (doc_support)
4769
 
                        method.DocComment = Lexer.consume_doc_comment ();
4770
 
 
4771
 
                lbag.AddMember (method, GetModifierLocations (), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]));
4772
 
                yyVal = method;
4773
 
          }
4774
 
 
4775
 
void case_147()
4776
 
#line 1314 "cs-parser.jay"
4777
 
{
4778
 
                lexer.parsing_generic_declaration = false;
4779
 
                valid_param_mod = ParameterModifierType.All;
4780
 
          }
4781
 
 
4782
 
void case_149()
4783
 
#line 1323 "cs-parser.jay"
4784
 
{
4785
 
                lexer.ConstraintsParsing = false;
4786
 
                valid_param_mod = 0;
4787
 
 
4788
 
                MemberName name = (MemberName) yyVals[-6+yyTop];
4789
 
                current_local_parameters = (ParametersCompiled) yyVals[-3+yyTop];
4790
 
 
4791
 
                var modifiers = (Modifiers) yyVals[-10+yyTop];
4792
 
                modifiers |= Modifiers.PARTIAL;
4793
 
 
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);
4796
 
 
4797
 
                if (yyVals[-1+yyTop] != null)
4798
 
                        method.SetConstraints ((List<Constraints>) yyVals[-1+yyTop]);
4799
 
 
4800
 
                if (doc_support)
4801
 
                        method.DocComment = Lexer.consume_doc_comment ();
4802
 
 
4803
 
                StoreModifierLocation (Modifiers.PARTIAL, GetLocation (yyVals[-9+yyTop]));
4804
 
                lbag.AddMember (method, GetModifierLocations (), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]));
4805
 
                yyVal = method;
4806
 
          }
4807
 
 
4808
 
void case_150()
4809
 
#line 1350 "cs-parser.jay"
4810
 
{
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]));
4814
 
 
4815
 
                var method = Method.Create (current_type, (FullNamedExpression) yyVals[-5+yyTop],
4816
 
                                            0, name, (ParametersCompiled) yyVals[-1+yyTop], (Attributes) yyVals[-7+yyTop], false);
4817
 
 
4818
 
                current_local_parameters = (ParametersCompiled) yyVals[-1+yyTop];
4819
 
 
4820
 
                if (doc_support)
4821
 
                        method.DocComment = Lexer.consume_doc_comment ();
4822
 
 
4823
 
                yyVal = method;
4824
 
          }
4825
 
 
4826
 
void case_151()
4827
 
#line 1369 "cs-parser.jay"
4828
 
{
4829
 
                Error_SyntaxError (yyToken);
4830
 
                current_local_parameters = ParametersCompiled.Undefined;
4831
 
 
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);
4835
 
 
4836
 
                if (doc_support)
4837
 
                        method.DocComment = Lexer.consume_doc_comment ();
4838
 
 
4839
 
                yyVal = method;
4840
 
          }
4841
 
 
4842
 
void case_156()
4843
 
#line 1396 "cs-parser.jay"
4844
 
{
4845
 
                var pars_list = (List<Parameter>) yyVals[0+yyTop];
4846
 
                yyVal = new ParametersCompiled (pars_list.ToArray ());
4847
 
                lbag.AddLocation (yyVal, parameterListCommas);
4848
 
          }
4849
 
 
4850
 
void case_157()
4851
 
#line 1402 "cs-parser.jay"
4852
 
{
4853
 
                var pars_list = (List<Parameter>) yyVals[-2+yyTop];
4854
 
                pars_list.Add ((Parameter) yyVals[0+yyTop]);
4855
 
                parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
4856
 
                
4857
 
                yyVal = new ParametersCompiled (pars_list.ToArray ()); 
4858
 
                lbag.AddLocation (yyVal, parameterListCommas);
4859
 
          }
4860
 
 
4861
 
void case_158()
4862
 
#line 1411 "cs-parser.jay"
4863
 
{
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]));
4867
 
                
4868
 
                yyVal = new ParametersCompiled (pars_list.ToArray (), true);
4869
 
                lbag.AddLocation (yyVal, parameterListCommas);
4870
 
          }
4871
 
 
4872
 
void case_159()
4873
 
#line 1420 "cs-parser.jay"
4874
 
{
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");
4877
 
 
4878
 
                yyVal = new ParametersCompiled (new Parameter[] { (Parameter) yyVals[-2+yyTop] } );                     
4879
 
                lbag.AddLocation (yyVal, parameterListCommas);
4880
 
          }
4881
 
 
4882
 
void case_160()
4883
 
#line 1428 "cs-parser.jay"
4884
 
{
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");
4887
 
 
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]));
4892
 
                
4893
 
                yyVal = new ParametersCompiled (pars_list.ToArray (), true);
4894
 
                lbag.AddLocation (yyVal, parameterListCommas);
4895
 
          }
4896
 
 
4897
 
void case_161()
4898
 
#line 1441 "cs-parser.jay"
4899
 
{
4900
 
                report.Error (257, GetLocation (yyVals[-2+yyTop]), "An __arglist parameter must be the last parameter in a formal parameter list");
4901
 
 
4902
 
                yyVal = new ParametersCompiled (new Parameter [] { new ArglistParameter (GetLocation (yyVals[-2+yyTop])) }, true);
4903
 
                lbag.AddLocation (yyVal, parameterListCommas);
4904
 
          }
4905
 
 
4906
 
void case_162()
4907
 
#line 1448 "cs-parser.jay"
4908
 
{
4909
 
                report.Error (257, GetLocation (yyVals[-2+yyTop]), "An __arglist parameter must be the last parameter in a formal parameter list");
4910
 
 
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]));
4915
 
 
4916
 
                yyVal = new ParametersCompiled (pars_list.ToArray (), true);
4917
 
                lbag.AddLocation (yyVal, parameterListCommas);
4918
 
          }
4919
 
 
4920
 
void case_165()
4921
 
#line 1468 "cs-parser.jay"
4922
 
{
4923
 
                Error_SyntaxError (yyToken);
4924
 
                yyVal = ParametersCompiled.EmptyReadOnlyParameters;
4925
 
          }
4926
 
 
4927
 
void case_166()
4928
 
#line 1476 "cs-parser.jay"
4929
 
{
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;
4936
 
          }
4937
 
 
4938
 
void case_167()
4939
 
#line 1485 "cs-parser.jay"
4940
 
{
4941
 
                var pars = (List<Parameter>) yyVals[-2+yyTop];
4942
 
                Parameter p = (Parameter) yyVals[0+yyTop];
4943
 
                if (p != null) {
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");
4948
 
 
4949
 
                        default_parameter_used |= p.HasDefaultValue;
4950
 
                        pars.Add (p);
4951
 
                        
4952
 
                        parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
4953
 
                }
4954
 
                
4955
 
                yyVal = yyVals[-2+yyTop];
4956
 
          }
4957
 
 
4958
 
void case_168()
4959
 
#line 1509 "cs-parser.jay"
4960
 
{
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);
4964
 
          }
4965
 
 
4966
 
void case_169()
4967
 
#line 1518 "cs-parser.jay"
4968
 
{
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);
4973
 
          }
4974
 
 
4975
 
void case_170()
4976
 
#line 1525 "cs-parser.jay"
4977
 
{
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);
4981
 
          }
4982
 
 
4983
 
void case_171()
4984
 
#line 1534 "cs-parser.jay"
4985
 
{
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);
4990
 
          }
4991
 
 
4992
 
void case_173()
4993
 
#line 1549 "cs-parser.jay"
4994
 
{
4995
 
                --lexer.parsing_block;
4996
 
                if (lang_version <= LanguageVersion.V_3) {
4997
 
                        FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "optional parameter");
4998
 
                }
4999
 
                
5000
 
                Parameter.Modifier mod = (Parameter.Modifier) yyVals[-5+yyTop];
5001
 
                if (mod != Parameter.Modifier.NONE) {
5002
 
                        switch (mod) {
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));
5007
 
                                break;
5008
 
                                
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));
5012
 
                                break;
5013
 
                        default:
5014
 
                                throw new NotImplementedException (mod.ToString ());
5015
 
                        }
5016
 
                                
5017
 
                        mod = Parameter.Modifier.NONE;
5018
 
                }
5019
 
                
5020
 
                if ((valid_param_mod & ParameterModifierType.DefaultValue) == 0)
5021
 
                        report.Error (1065, GetLocation (yyVals[-2+yyTop]), "Optional parameter is not valid in this context");
5022
 
                
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*/
5026
 
                
5027
 
                if (yyVals[0+yyTop] != null)
5028
 
                        ((Parameter) yyVal).DefaultValue = new DefaultParameterValueExpression ((Expression) yyVals[0+yyTop]);
5029
 
          }
5030
 
 
5031
 
void case_177()
5032
 
#line 1598 "cs-parser.jay"
5033
 
{
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);
5038
 
                } else {
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");
5042
 
                                        break;
5043
 
                                case Parameter.Modifier.OUT:
5044
 
                                        report.Error (1102, lexer.Location, "The parameter modifiers `this' and `out' cannot be used altogether");
5045
 
                                        break;
5046
 
                                default:
5047
 
                                        report.Error (1108, lexer.Location, "A parameter cannot have specified more than one modifier");
5048
 
                                        break;
5049
 
                        }
5050
 
                }
5051
 
                yyVal = mod;
5052
 
          }
5053
 
 
5054
 
void case_178()
5055
 
#line 1622 "cs-parser.jay"
5056
 
{
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;
5061
 
          }
5062
 
 
5063
 
void case_179()
5064
 
#line 1629 "cs-parser.jay"
5065
 
{
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;
5070
 
          }
5071
 
 
5072
 
void case_180()
5073
 
#line 1636 "cs-parser.jay"
5074
 
{
5075
 
                if ((valid_param_mod & ParameterModifierType.This) == 0)
5076
 
                        Error_ParameterModifierNotValid ("this", GetLocation (yyVals[0+yyTop]));
5077
 
 
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;
5082
 
          }
5083
 
 
5084
 
void case_181()
5085
 
#line 1649 "cs-parser.jay"
5086
 
{
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);
5090
 
          }
5091
 
 
5092
 
void case_182()
5093
 
#line 1655 "cs-parser.jay"
5094
 
{
5095
 
                report.Error (1751, GetLocation (yyVals[-4+yyTop]), "Cannot specify a default value for a parameter array");
5096
 
                
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);
5100
 
          }
5101
 
 
5102
 
void case_183()
5103
 
#line 1663 "cs-parser.jay"
5104
 
{
5105
 
                Error_SyntaxError (yyToken);
5106
 
                yyVal = null;
5107
 
          }
5108
 
 
5109
 
void case_184()
5110
 
#line 1671 "cs-parser.jay"
5111
 
{
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]);
5115
 
          }
5116
 
 
5117
 
void case_185()
5118
 
#line 1677 "cs-parser.jay"
5119
 
{
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");
5123
 
                } else {
5124
 
                        report.Error (1611, GetLocation (yyVals[-1+yyTop]), "The params parameter cannot be declared as ref or out");
5125
 
                }         
5126
 
                savedLocation = GetLocation (yyVals[-1+yyTop]);
5127
 
          }
5128
 
 
5129
 
void case_187()
5130
 
#line 1694 "cs-parser.jay"
5131
 
{
5132
 
                if ((valid_param_mod & ParameterModifierType.Arglist) == 0)
5133
 
                        report.Error (1669, GetLocation (yyVals[0+yyTop]), "__arglist is not valid in this context");
5134
 
          }
5135
 
 
5136
 
void case_188()
5137
 
#line 1705 "cs-parser.jay"
5138
 
{
5139
 
                if (doc_support)
5140
 
                        tmpComment = Lexer.consume_doc_comment ();
5141
 
          }
5142
 
 
5143
 
void case_189()
5144
 
#line 1710 "cs-parser.jay"
5145
 
{
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]);
5149
 
                        
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 ());                                       
5152
 
                        
5153
 
                current_type.AddMember (current_property);
5154
 
                lbag.AddMember (current_property, GetModifierLocations (), GetLocation (yyVals[0+yyTop]));
5155
 
                
5156
 
                lexer.PropertyParsing = true;
5157
 
          }
5158
 
 
5159
 
void case_190()
5160
 
#line 1724 "cs-parser.jay"
5161
 
{
5162
 
                lexer.PropertyParsing = false;
5163
 
                
5164
 
                if (doc_support)
5165
 
                        current_property.DocComment = ConsumeStoredComment ();                          
5166
 
          }
5167
 
 
5168
 
void case_191()
5169
 
#line 1731 "cs-parser.jay"
5170
 
{
5171
 
                lbag.AppendToMember (current_property, GetLocation (yyVals[0+yyTop]));
5172
 
                current_property = null;
5173
 
          }
5174
 
 
5175
 
void case_193()
5176
 
#line 1745 "cs-parser.jay"
5177
 
{
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]);
5181
 
                        
5182
 
                current_property = indexer;
5183
 
 
5184
 
                current_type.AddIndexer (indexer);
5185
 
                lbag.AddMember (current_property, GetModifierLocations (), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
5186
 
                
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 ());             
5189
 
 
5190
 
                if (indexer.ParameterInfo.IsEmpty) {
5191
 
                        report.Error (1551, GetLocation (yyVals[-4+yyTop]), "Indexers must have at least one parameter");
5192
 
                }
5193
 
 
5194
 
                if (doc_support) {
5195
 
                        tmpComment = Lexer.consume_doc_comment ();
5196
 
                        Lexer.doc_state = XmlCommentState.Allowed;
5197
 
                }
5198
 
 
5199
 
                lexer.PropertyParsing = true;
5200
 
          }
5201
 
 
5202
 
void case_195()
5203
 
#line 1774 "cs-parser.jay"
5204
 
{
5205
 
                if (current_property.AccessorFirst != null && current_property.AccessorFirst.Block == null)
5206
 
                        ((Indexer) current_property).ParameterInfo.CheckParameters (current_property);
5207
 
          
5208
 
                if (doc_support)
5209
 
                        current_property.DocComment = ConsumeStoredComment ();
5210
 
                        
5211
 
                lbag.AppendToMember (current_property, GetLocation (yyVals[-1+yyTop]));
5212
 
                current_property = null;                
5213
 
          }
5214
 
 
5215
 
void case_200()
5216
 
#line 1793 "cs-parser.jay"
5217
 
{
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 ());
5220
 
                } else {
5221
 
                        if (yyToken == Token.SEMICOLON)
5222
 
                                report.Error (1597, lexer.Location, "Semicolon after method or accessor block is not valid");
5223
 
                        else
5224
 
                                report.Error (1014, GetLocation (yyVals[0+yyTop]), "A get or set accessor expected");
5225
 
                }
5226
 
          }
5227
 
 
5228
 
void case_201()
5229
 
#line 1807 "cs-parser.jay"
5230
 
{
5231
 
                if (yyVals[-1+yyTop] != ModifierNone && lang_version == LanguageVersion.ISO_1) {
5232
 
                        FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "access modifiers on properties");
5233
 
                }
5234
 
          
5235
 
                if (current_property.Get != null) {
5236
 
                        report.Error (1007, GetLocation (yyVals[0+yyTop]), "Property accessor already defined");
5237
 
                }
5238
 
                
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]));
5242
 
                } else {
5243
 
                        current_property.Get = new Property.GetMethod (current_property,
5244
 
                                (Modifiers) yyVals[-1+yyTop], (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
5245
 
                }       
5246
 
          
5247
 
                current_local_parameters = current_property.Get.ParameterInfo;    
5248
 
                lexer.PropertyParsing = false;
5249
 
          }
5250
 
 
5251
 
void case_202()
5252
 
#line 1828 "cs-parser.jay"
5253
 
{
5254
 
                if (yyVals[0+yyTop] != null) {
5255
 
                        current_property.Get.Block = (ToplevelBlock) yyVals[0+yyTop];                   
5256
 
                
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 ());
5260
 
                        }
5261
 
                        lbag.AddMember (current_property.Get, GetModifierLocations ());
5262
 
                } else {
5263
 
                        lbag.AddMember (current_property.Get, GetModifierLocations (), savedLocation);
5264
 
                }
5265
 
          
5266
 
                current_local_parameters = null;
5267
 
                lexer.PropertyParsing = true;
5268
 
 
5269
 
                if (doc_support)
5270
 
                        if (Lexer.doc_state == XmlCommentState.Error)
5271
 
                                Lexer.doc_state = XmlCommentState.NotAllowed;
5272
 
          }
5273
 
 
5274
 
void case_203()
5275
 
#line 1852 "cs-parser.jay"
5276
 
{
5277
 
                if (yyVals[-1+yyTop] != ModifierNone && lang_version == LanguageVersion.ISO_1) {
5278
 
                        FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "access modifiers on properties");
5279
 
                }
5280
 
                
5281
 
                if (current_property.Set != null) {
5282
 
                        report.Error (1007, GetLocation (yyVals[0+yyTop]), "Property accessor already defined");
5283
 
                }
5284
 
          
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])),
5290
 
                                        null),
5291
 
                                (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
5292
 
                } else {
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]));
5296
 
                }
5297
 
                
5298
 
                current_local_parameters = current_property.Set.ParameterInfo;  
5299
 
                lexer.PropertyParsing = false;
5300
 
          }
5301
 
 
5302
 
void case_204()
5303
 
#line 1878 "cs-parser.jay"
5304
 
{
5305
 
                if (yyVals[0+yyTop] != null) {          
5306
 
                        current_property.Set.Block = (ToplevelBlock) yyVals[0+yyTop];
5307
 
                
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 ());
5311
 
                        }
5312
 
                        lbag.AddMember (current_property.Set, GetModifierLocations ());
5313
 
                } else {
5314
 
                        lbag.AddMember (current_property.Set, GetModifierLocations (), savedLocation);
5315
 
                }
5316
 
                
5317
 
                current_local_parameters = null;
5318
 
                lexer.PropertyParsing = true;
5319
 
 
5320
 
                if (doc_support
5321
 
                        && Lexer.doc_state == XmlCommentState.Error)
5322
 
                        Lexer.doc_state = XmlCommentState.NotAllowed;
5323
 
          }
5324
 
 
5325
 
void case_206()
5326
 
#line 1903 "cs-parser.jay"
5327
 
{
5328
 
                savedLocation = GetLocation (yyVals[0+yyTop]);
5329
 
                yyVal = null;
5330
 
          }
5331
 
 
5332
 
void case_207()
5333
 
#line 1908 "cs-parser.jay"
5334
 
{
5335
 
                Error_SyntaxError (1043, yyToken, "Invalid accessor body");
5336
 
                yyVal = null;
5337
 
          }
5338
 
 
5339
 
void case_209()
5340
 
#line 1923 "cs-parser.jay"
5341
 
{
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]));            
5344
 
          }
5345
 
 
5346
 
void case_210()
5347
 
#line 1929 "cs-parser.jay"
5348
 
{
5349
 
                lexer.ConstraintsParsing = false;
5350
 
 
5351
 
                if (yyVals[0+yyTop] != null)
5352
 
                        current_container.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
5353
 
 
5354
 
                if (doc_support) {
5355
 
                        current_container.PartialContainer.DocComment = Lexer.consume_doc_comment ();
5356
 
                        Lexer.doc_state = XmlCommentState.Allowed;
5357
 
                }
5358
 
                
5359
 
                lexer.parsing_modifiers = true;
5360
 
          }
5361
 
 
5362
 
void case_211()
5363
 
#line 1943 "cs-parser.jay"
5364
 
{
5365
 
                --lexer.parsing_declaration;      
5366
 
                if (doc_support)
5367
 
                        Lexer.doc_state = XmlCommentState.Allowed;
5368
 
          }
5369
 
 
5370
 
void case_212()
5371
 
#line 1949 "cs-parser.jay"
5372
 
{
5373
 
                if (yyVals[0+yyTop] == null) {
5374
 
                        lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
5375
 
                } else {
5376
 
                        lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
5377
 
                }
5378
 
                yyVal = pop_current_class ();
5379
 
          }
5380
 
 
5381
 
void case_228()
5382
 
#line 2011 "cs-parser.jay"
5383
 
{
5384
 
                OperatorDeclaration decl = (OperatorDeclaration) yyVals[-2+yyTop];
5385
 
                if (decl != null) {
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);
5390
 
                                
5391
 
                        if (op.Block == null)
5392
 
                                op.ParameterInfo.CheckParameters (op);
5393
 
 
5394
 
                        if (doc_support) {
5395
 
                                op.DocComment = tmpComment;
5396
 
                                Lexer.doc_state = XmlCommentState.Allowed;
5397
 
                        }
5398
 
 
5399
 
                        /* Note again, checking is done in semantic analysis*/
5400
 
                        current_type.AddOperator (op);
5401
 
 
5402
 
                        lbag.AddMember (op, GetModifierLocations (), lbag.GetLocations (decl));
5403
 
                        if (yyVals[0+yyTop] == null) { /* Semicolon*/
5404
 
                                lbag.AppendTo (op, savedLocation); 
5405
 
                        }
5406
 
                }
5407
 
                
5408
 
                current_local_parameters = null;
5409
 
          }
5410
 
 
5411
 
void case_232()
5412
 
#line 2048 "cs-parser.jay"
5413
 
{
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]));
5416
 
          }
5417
 
 
5418
 
void case_234()
5419
 
#line 2060 "cs-parser.jay"
5420
 
{
5421
 
                valid_param_mod = 0;
5422
 
 
5423
 
                Location loc = GetLocation (yyVals[-5+yyTop]);
5424
 
                Operator.OpType op = (Operator.OpType) yyVals[-4+yyTop];
5425
 
                current_local_parameters = (ParametersCompiled)yyVals[-1+yyTop];
5426
 
                
5427
 
                int p_count = current_local_parameters.Count;
5428
 
                if (p_count == 1) {
5429
 
                        if (op == Operator.OpType.Addition)
5430
 
                                op = Operator.OpType.UnaryPlus;
5431
 
                        else if (op == Operator.OpType.Subtraction)
5432
 
                                op = Operator.OpType.UnaryNegation;
5433
 
                }
5434
 
                
5435
 
                if (IsUnaryOperator (op)) {
5436
 
                        if (p_count == 2) {
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));
5441
 
                        }
5442
 
                } else {
5443
 
                        if (p_count > 2) {
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");
5448
 
                        }
5449
 
                }
5450
 
                
5451
 
                if (doc_support) {
5452
 
                        tmpComment = Lexer.consume_doc_comment ();
5453
 
                        Lexer.doc_state = XmlCommentState.NotAllowed;
5454
 
                }
5455
 
 
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]));
5458
 
          }
5459
 
 
5460
 
void case_259()
5461
 
#line 2136 "cs-parser.jay"
5462
 
{
5463
 
                valid_param_mod = 0;
5464
 
 
5465
 
                Location loc = GetLocation (yyVals[-5+yyTop]);
5466
 
                current_local_parameters = (ParametersCompiled)yyVals[-1+yyTop];  
5467
 
                  
5468
 
                if (doc_support) {
5469
 
                        tmpComment = Lexer.consume_doc_comment ();
5470
 
                        Lexer.doc_state = XmlCommentState.NotAllowed;
5471
 
                }
5472
 
 
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]));
5475
 
          }
5476
 
 
5477
 
void case_261()
5478
 
#line 2155 "cs-parser.jay"
5479
 
{
5480
 
                valid_param_mod = 0;
5481
 
                
5482
 
                Location loc = GetLocation (yyVals[-5+yyTop]);
5483
 
                current_local_parameters = (ParametersCompiled)yyVals[-1+yyTop];  
5484
 
                  
5485
 
                if (doc_support) {
5486
 
                        tmpComment = Lexer.consume_doc_comment ();
5487
 
                        Lexer.doc_state = XmlCommentState.NotAllowed;
5488
 
                }
5489
 
 
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]));
5492
 
          }
5493
 
 
5494
 
void case_262()
5495
 
#line 2170 "cs-parser.jay"
5496
 
{
5497
 
                Error_SyntaxError (yyToken);
5498
 
                current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
5499
 
                yyVal = new OperatorDeclaration (Operator.OpType.Implicit, null, GetLocation (yyVals[-1+yyTop]));
5500
 
          }
5501
 
 
5502
 
void case_263()
5503
 
#line 2176 "cs-parser.jay"
5504
 
{
5505
 
                Error_SyntaxError (yyToken);
5506
 
                current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
5507
 
                yyVal = new OperatorDeclaration (Operator.OpType.Explicit, null, GetLocation (yyVals[-1+yyTop]));
5508
 
          }
5509
 
 
5510
 
void case_264()
5511
 
#line 2186 "cs-parser.jay"
5512
 
5513
 
                Constructor c = (Constructor) yyVals[-1+yyTop];
5514
 
                c.Block = (ToplevelBlock) yyVals[0+yyTop];
5515
 
                
5516
 
                if (doc_support)
5517
 
                        c.DocComment = ConsumeStoredComment ();
5518
 
 
5519
 
                current_local_parameters = null;
5520
 
                if (doc_support)
5521
 
                        Lexer.doc_state = XmlCommentState.Allowed;
5522
 
          }
5523
 
 
5524
 
void case_265()
5525
 
#line 2203 "cs-parser.jay"
5526
 
{
5527
 
                if (doc_support) {
5528
 
                        tmpComment = Lexer.consume_doc_comment ();
5529
 
                        Lexer.doc_state = XmlCommentState.Allowed;
5530
 
                }
5531
 
                
5532
 
                valid_param_mod = ParameterModifierType.All;
5533
 
          }
5534
 
 
5535
 
void case_266()
5536
 
#line 2212 "cs-parser.jay"
5537
 
{
5538
 
                valid_param_mod = 0;
5539
 
                current_local_parameters = (ParametersCompiled) yyVals[-1+yyTop];
5540
 
                
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);
5544
 
 
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 ());
5552
 
                        }
5553
 
                }
5554
 
 
5555
 
                current_type.AddConstructor (c);
5556
 
                lbag.AddMember (c, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
5557
 
                yyVal = c;
5558
 
 
5559
 
                /**/
5560
 
                /* start block here, so possible anonymous methods inside*/
5561
 
                /* constructor initializer can get correct parent block*/
5562
 
                /**/
5563
 
                start_block (lexer.Location);
5564
 
          }
5565
 
 
5566
 
void case_267()
5567
 
#line 2241 "cs-parser.jay"
5568
 
{
5569
 
                if (yyVals[0+yyTop] != null) {
5570
 
                        var c = (Constructor) yyVals[-1+yyTop];
5571
 
                        c.Initializer = (ConstructorInitializer) yyVals[0+yyTop];
5572
 
                        
5573
 
                        if (c.IsStatic) {
5574
 
                                report.Error (514, c.Location,
5575
 
                                        "`{0}': static constructor cannot have an explicit `this' or `base' constructor call",
5576
 
                                        c.GetSignatureForError ());
5577
 
                        }
5578
 
                }
5579
 
 
5580
 
                yyVal = yyVals[-1+yyTop];
5581
 
          }
5582
 
 
5583
 
void case_273()
5584
 
#line 2273 "cs-parser.jay"
5585
 
{
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]));
5589
 
          }
5590
 
 
5591
 
void case_275()
5592
 
#line 2283 "cs-parser.jay"
5593
 
{
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]));
5597
 
          }
5598
 
 
5599
 
void case_276()
5600
 
#line 2289 "cs-parser.jay"
5601
 
{
5602
 
                Error_SyntaxError (yyToken);      
5603
 
                yyVal = new ConstructorThisInitializer (null, GetLocation (yyVals[0+yyTop]));
5604
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
5605
 
          }
5606
 
 
5607
 
void case_277()
5608
 
#line 2295 "cs-parser.jay"
5609
 
{
5610
 
                Error_SyntaxError (yyToken);
5611
 
                yyVal = null;
5612
 
          }
5613
 
 
5614
 
void case_278()
5615
 
#line 2303 "cs-parser.jay"
5616
 
{
5617
 
                if (doc_support) {
5618
 
                        tmpComment = Lexer.consume_doc_comment ();
5619
 
                        Lexer.doc_state = XmlCommentState.NotAllowed;
5620
 
                }
5621
 
                
5622
 
                current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
5623
 
          }
5624
 
 
5625
 
void case_279()
5626
 
#line 2312 "cs-parser.jay"
5627
 
{
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");
5633
 
                }
5634
 
                
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;
5638
 
                if (doc_support)
5639
 
                        d.DocComment = ConsumeStoredComment ();
5640
 
                  
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]));
5644
 
 
5645
 
                current_local_parameters = null;
5646
 
          }
5647
 
 
5648
 
void case_280()
5649
 
#line 2338 "cs-parser.jay"
5650
 
{
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);
5653
 
                
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 ());
5657
 
                }
5658
 
                
5659
 
                yyVal = current_event_field;
5660
 
          }
5661
 
 
5662
 
void case_281()
5663
 
#line 2352 "cs-parser.jay"
5664
 
{
5665
 
                if (doc_support) {
5666
 
                        current_event_field.DocComment = Lexer.consume_doc_comment ();
5667
 
                        Lexer.doc_state = XmlCommentState.Allowed;
5668
 
                }
5669
 
                
5670
 
                lbag.AddMember (current_event_field, GetModifierLocations (), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
5671
 
                current_event_field = null;
5672
 
          }
5673
 
 
5674
 
void case_282()
5675
 
#line 2365 "cs-parser.jay"
5676
 
{
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]));
5680
 
                
5681
 
                lexer.EventParsing = true;
5682
 
          }
5683
 
 
5684
 
void case_283()
5685
 
#line 2373 "cs-parser.jay"
5686
 
{
5687
 
                if (current_container.Kind == MemberKind.Interface)
5688
 
                        report.Error (69, GetLocation (yyVals[-2+yyTop]), "Event in interface cannot have add or remove accessors");
5689
 
          
5690
 
                lexer.EventParsing = false;
5691
 
          }
5692
 
 
5693
 
void case_284()
5694
 
#line 2380 "cs-parser.jay"
5695
 
{
5696
 
                if (doc_support) {
5697
 
                        current_event.DocComment = Lexer.consume_doc_comment ();
5698
 
                        Lexer.doc_state = XmlCommentState.Allowed;
5699
 
                }
5700
 
                
5701
 
                lbag.AppendToMember (current_event, GetLocation (yyVals[-1+yyTop]));
5702
 
                current_event = null;   
5703
 
                current_local_parameters = null;
5704
 
          }
5705
 
 
5706
 
void case_287()
5707
 
#line 2399 "cs-parser.jay"
5708
 
{
5709
 
                --lexer.parsing_block;
5710
 
                current_event_field.Initializer = (Expression) yyVals[0+yyTop];
5711
 
          }
5712
 
 
5713
 
void case_292()
5714
 
#line 2423 "cs-parser.jay"
5715
 
{
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]));
5719
 
          }
5720
 
 
5721
 
void case_294()
5722
 
#line 2433 "cs-parser.jay"
5723
 
{
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]));
5728
 
          }
5729
 
 
5730
 
void case_295()
5731
 
#line 2442 "cs-parser.jay"
5732
 
{
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 ());
5736
 
                }
5737
 
                
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 ());
5741
 
                }               
5742
 
          }
5743
 
 
5744
 
void case_299()
5745
 
#line 2463 "cs-parser.jay"
5746
 
{
5747
 
                report.Error (65, lexer.Location, "`{0}': event property must have both add and remove accessors",
5748
 
                        current_event.GetSignatureForError ());
5749
 
          }
5750
 
 
5751
 
void case_300()
5752
 
#line 2468 "cs-parser.jay"
5753
 
{
5754
 
                report.Error (65, lexer.Location, "`{0}': event property must have both add and remove accessors",
5755
 
                        current_event.GetSignatureForError ());
5756
 
          }
5757
 
 
5758
 
void case_301()
5759
 
#line 2473 "cs-parser.jay"
5760
 
5761
 
                report.Error (1055, GetLocation (yyVals[0+yyTop]), "An add or remove accessor expected");
5762
 
                yyVal = null;
5763
 
          }
5764
 
 
5765
 
void case_302()
5766
 
#line 2481 "cs-parser.jay"
5767
 
{
5768
 
                if (yyVals[-1+yyTop] != ModifierNone) {
5769
 
                        report.Error (1609, GetLocation (yyVals[-1+yyTop]), "Modifiers cannot be placed on event accessor declarations");
5770
 
                }
5771
 
                
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;
5774
 
                
5775
 
                lbag.AddMember (current_event.Add, GetModifierLocations ());
5776
 
                lexer.EventParsing = false;             
5777
 
          }
5778
 
 
5779
 
void case_303()
5780
 
#line 2493 "cs-parser.jay"
5781
 
{
5782
 
                lexer.EventParsing = true;
5783
 
          
5784
 
                current_event.Add.Block = (ToplevelBlock) yyVals[0+yyTop];
5785
 
                
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 ());
5789
 
                }
5790
 
                
5791
 
                current_local_parameters = null;
5792
 
          }
5793
 
 
5794
 
void case_304()
5795
 
#line 2509 "cs-parser.jay"
5796
 
{
5797
 
                if (yyVals[-1+yyTop] != ModifierNone) {
5798
 
                        report.Error (1609, GetLocation (yyVals[-1+yyTop]), "Modifiers cannot be placed on event accessor declarations");
5799
 
                }
5800
 
                
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;
5803
 
 
5804
 
                lbag.AddMember (current_event.Remove, GetModifierLocations ());
5805
 
                lexer.EventParsing = false;             
5806
 
          }
5807
 
 
5808
 
void case_305()
5809
 
#line 2521 "cs-parser.jay"
5810
 
{
5811
 
                lexer.EventParsing = true;
5812
 
          
5813
 
                current_event.Remove.Block = (ToplevelBlock) yyVals[0+yyTop];
5814
 
                
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 ());
5818
 
                }
5819
 
                
5820
 
                current_local_parameters = null;
5821
 
          }
5822
 
 
5823
 
void case_306()
5824
 
#line 2537 "cs-parser.jay"
5825
 
{
5826
 
                report.Error (73, lexer.Location, "An add or remove accessor must have a body");
5827
 
                yyVal = null;
5828
 
          }
5829
 
 
5830
 
void case_308()
5831
 
#line 2546 "cs-parser.jay"
5832
 
{
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 ('}');
5836
 
          }
5837
 
 
5838
 
void case_309()
5839
 
#line 2559 "cs-parser.jay"
5840
 
{
5841
 
                if (doc_support)
5842
 
                        enumTypeComment = Lexer.consume_doc_comment ();
5843
 
          }
5844
 
 
5845
 
void case_310()
5846
 
#line 2564 "cs-parser.jay"
5847
 
{
5848
 
                if (doc_support)
5849
 
                        Lexer.doc_state = XmlCommentState.Allowed;
5850
 
 
5851
 
                MemberName name = (MemberName) yyVals[-3+yyTop];
5852
 
                if (name.IsGeneric) {
5853
 
                        report.Error (1675, name.Location, "Enums cannot have type parameters");
5854
 
                }
5855
 
                
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]));
5859
 
                } else {
5860
 
                        lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[0+yyTop]));
5861
 
                }
5862
 
          }
5863
 
 
5864
 
void case_311()
5865
 
#line 2581 "cs-parser.jay"
5866
 
{
5867
 
                /* here will be evaluated after CLOSE_BLACE is consumed.*/
5868
 
                if (doc_support)
5869
 
                        Lexer.doc_state = XmlCommentState.Allowed;
5870
 
          }
5871
 
 
5872
 
void case_312()
5873
 
#line 2587 "cs-parser.jay"
5874
 
{
5875
 
                lbag.AppendToMember (current_container, GetLocation (yyVals[-1+yyTop]));
5876
 
                if (yyVals[0+yyTop] != null) {
5877
 
                        lbag.AppendToMember (current_container, GetLocation (yyVals[0+yyTop]));
5878
 
                }
5879
 
                if (doc_support)
5880
 
                        current_container.DocComment = enumTypeComment;
5881
 
                        
5882
 
                --lexer.parsing_declaration;
5883
 
 
5884
 
/*                      if (doc_support)*/
5885
 
/*                              em.DocComment = ev.DocComment;*/
5886
 
 
5887
 
                yyVal = pop_current_class ();
5888
 
          }
5889
 
 
5890
 
void case_314()
5891
 
#line 2607 "cs-parser.jay"
5892
 
{
5893
 
                savedLocation = GetLocation (yyVals[-1+yyTop]);
5894
 
                yyVal = yyVals[0+yyTop];
5895
 
         }
5896
 
 
5897
 
void case_315()
5898
 
#line 2612 "cs-parser.jay"
5899
 
{
5900
 
                Error_TypeExpected (GetLocation (yyVals[-1+yyTop]));
5901
 
                yyVal = null;
5902
 
         }
5903
 
 
5904
 
void case_320()
5905
 
#line 2630 "cs-parser.jay"
5906
 
{
5907
 
                lbag.AppendToMember (current_container, GetLocation (yyVals[-1+yyTop]));
5908
 
                yyVal = yyVals[0+yyTop];
5909
 
          }
5910
 
 
5911
 
void case_321()
5912
 
#line 2638 "cs-parser.jay"
5913
 
{
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);
5917
 
 
5918
 
                if (doc_support) {
5919
 
                        em.DocComment = Lexer.consume_doc_comment ();
5920
 
                        Lexer.doc_state = XmlCommentState.Allowed;
5921
 
                }
5922
 
 
5923
 
                yyVal = em;
5924
 
          }
5925
 
 
5926
 
void case_322()
5927
 
#line 2651 "cs-parser.jay"
5928
 
{
5929
 
                ++lexer.parsing_block;
5930
 
                if (doc_support) {
5931
 
                        tmpComment = Lexer.consume_doc_comment ();
5932
 
                        Lexer.doc_state = XmlCommentState.NotAllowed;
5933
 
                }
5934
 
          }
5935
 
 
5936
 
void case_323()
5937
 
#line 2659 "cs-parser.jay"
5938
 
5939
 
                --lexer.parsing_block;
5940
 
                
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);
5945
 
                
5946
 
                if (doc_support)
5947
 
                        em.DocComment = ConsumeStoredComment ();
5948
 
 
5949
 
                yyVal = em;
5950
 
          }
5951
 
 
5952
 
void case_325()
5953
 
#line 2684 "cs-parser.jay"
5954
 
{
5955
 
                valid_param_mod = 0;
5956
 
 
5957
 
                ParametersCompiled p = (ParametersCompiled) yyVals[-1+yyTop];
5958
 
 
5959
 
                Delegate del = new Delegate (current_container, (FullNamedExpression) yyVals[-5+yyTop], (Modifiers) yyVals[-7+yyTop], (MemberName) yyVals[-4+yyTop], p, (Attributes) yyVals[-8+yyTop]);
5960
 
 
5961
 
                p.CheckParameters (del);
5962
 
 
5963
 
                current_container.AddTypeContainer (del);
5964
 
 
5965
 
                current_delegate = del;
5966
 
                lexer.ConstraintsParsing = true;
5967
 
          }
5968
 
 
5969
 
void case_327()
5970
 
#line 2703 "cs-parser.jay"
5971
 
{
5972
 
                if (doc_support) {
5973
 
                        current_delegate.DocComment = Lexer.consume_doc_comment ();
5974
 
                        Lexer.doc_state = XmlCommentState.Allowed;
5975
 
                }
5976
 
          
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]));
5980
 
 
5981
 
                yyVal = current_delegate;
5982
 
 
5983
 
                current_delegate = null;
5984
 
          }
5985
 
 
5986
 
void case_329()
5987
 
#line 2722 "cs-parser.jay"
5988
 
{
5989
 
                if (lang_version < LanguageVersion.ISO_2)
5990
 
                        FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "nullable types");
5991
 
          
5992
 
                yyVal = ComposedTypeSpecifier.CreateNullable (GetLocation (yyVals[0+yyTop]));
5993
 
          }
5994
 
 
5995
 
void case_331()
5996
 
#line 2733 "cs-parser.jay"
5997
 
{
5998
 
                var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
5999
 
                var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6000
 
                
6001
 
                yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (TypeArguments) yyVals[0+yyTop], lt1.Location);
6002
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6003
 
          }
6004
 
 
6005
 
void case_333()
6006
 
#line 2745 "cs-parser.jay"
6007
 
{
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]));
6011
 
          }
6012
 
 
6013
 
void case_334()
6014
 
#line 2754 "cs-parser.jay"
6015
 
{
6016
 
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6017
 
                yyVal = new SimpleName (lt.Value, (TypeArguments)yyVals[0+yyTop], lt.Location);
6018
 
          }
6019
 
 
6020
 
void case_336()
6021
 
#line 2766 "cs-parser.jay"
6022
 
{
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);
6029
 
        
6030
 
                yyVal = yyVals[-1+yyTop];;
6031
 
          }
6032
 
 
6033
 
void case_337()
6034
 
#line 2777 "cs-parser.jay"
6035
 
{
6036
 
                Error_TypeExpected (lexer.Location);
6037
 
                yyVal = new TypeArguments ();
6038
 
          }
6039
 
 
6040
 
void case_338()
6041
 
#line 2785 "cs-parser.jay"
6042
 
{
6043
 
                TypeArguments type_args = new TypeArguments ();
6044
 
                type_args.Add ((FullNamedExpression) yyVals[0+yyTop]);
6045
 
                yyVal = type_args;
6046
 
                locationListStack.Push (new List<Location> ());
6047
 
          }
6048
 
 
6049
 
void case_339()
6050
 
#line 2792 "cs-parser.jay"
6051
 
{
6052
 
                TypeArguments type_args = (TypeArguments) yyVals[-2+yyTop];
6053
 
                type_args.Add ((FullNamedExpression) yyVals[0+yyTop]);
6054
 
                yyVal = type_args;
6055
 
                locationListStack.Peek ().Add (GetLocation (yyVals[-1+yyTop]));
6056
 
          }
6057
 
 
6058
 
void case_341()
6059
 
#line 2809 "cs-parser.jay"
6060
 
{
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);
6064
 
          }
6065
 
 
6066
 
void case_342()
6067
 
#line 2818 "cs-parser.jay"
6068
 
{
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 ()));
6073
 
          }
6074
 
 
6075
 
void case_344()
6076
 
#line 2829 "cs-parser.jay"
6077
 
{
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);
6081
 
          }
6082
 
 
6083
 
void case_345()
6084
 
#line 2838 "cs-parser.jay"
6085
 
{
6086
 
                lexer.parsing_generic_declaration = false;        
6087
 
                yyVal = new MemberName (TypeDefinition.DefaultIndexerName, GetLocation (yyVals[0+yyTop]));
6088
 
          }
6089
 
 
6090
 
void case_346()
6091
 
#line 2843 "cs-parser.jay"
6092
 
{
6093
 
                lexer.parsing_generic_declaration = false;
6094
 
                yyVal = new MemberName (TypeDefinition.DefaultIndexerName, null, (ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
6095
 
          }
6096
 
 
6097
 
void case_347()
6098
 
#line 2851 "cs-parser.jay"
6099
 
{
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]));
6103
 
          }
6104
 
 
6105
 
void case_348()
6106
 
#line 2857 "cs-parser.jay"
6107
 
{
6108
 
                var lt1 = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
6109
 
                var lt2 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6110
 
 
6111
 
                yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (TypeArguments) yyVals[-1+yyTop], lt1.Location);
6112
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6113
 
          }
6114
 
 
6115
 
void case_349()
6116
 
#line 2865 "cs-parser.jay"
6117
 
{
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]));
6121
 
          }
6122
 
 
6123
 
void case_351()
6124
 
#line 2875 "cs-parser.jay"
6125
 
{
6126
 
                if (lang_version < LanguageVersion.ISO_2)
6127
 
                        FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "generics");
6128
 
          
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);
6134
 
          }
6135
 
 
6136
 
void case_352()
6137
 
#line 2889 "cs-parser.jay"
6138
 
{
6139
 
                var tparams = new TypeParameters ();
6140
 
                tparams.Add ((TypeParameter)yyVals[0+yyTop]);
6141
 
                yyVal = tparams;
6142
 
                locationListStack.Push (new List<Location> ());
6143
 
          }
6144
 
 
6145
 
void case_353()
6146
 
#line 2896 "cs-parser.jay"
6147
 
{
6148
 
                var tparams = (TypeParameters) yyVals[-2+yyTop];
6149
 
                tparams.Add ((TypeParameter)yyVals[0+yyTop]);
6150
 
                yyVal = tparams;
6151
 
                locationListStack.Peek ().Add (GetLocation (yyVals[-1+yyTop]));
6152
 
          }
6153
 
 
6154
 
void case_354()
6155
 
#line 2906 "cs-parser.jay"
6156
 
{
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]);
6159
 
          }
6160
 
 
6161
 
void case_355()
6162
 
#line 2911 "cs-parser.jay"
6163
 
{
6164
 
                if (GetTokenName (yyToken) == "type")
6165
 
                        report.Error (81, GetLocation (yyVals[0+yyTop]), "Type parameter declaration must be an identifier not a type");
6166
 
                else
6167
 
                        Error_SyntaxError (yyToken);
6168
 
                        
6169
 
                yyVal = new TypeParameter (MemberName.Null, null, Variance.None);
6170
 
          }
6171
 
 
6172
 
void case_360()
6173
 
#line 2945 "cs-parser.jay"
6174
 
{
6175
 
                Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report);
6176
 
                yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
6177
 
          }
6178
 
 
6179
 
void case_362()
6180
 
#line 2954 "cs-parser.jay"
6181
 
{
6182
 
                Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report);
6183
 
                yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
6184
 
          }
6185
 
 
6186
 
void case_364()
6187
 
#line 2963 "cs-parser.jay"
6188
 
{
6189
 
                report.Error (1536, GetLocation (yyVals[0+yyTop]), "Invalid parameter type `void'");
6190
 
                yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
6191
 
          }
6192
 
 
6193
 
void case_367()
6194
 
#line 2979 "cs-parser.jay"
6195
 
{
6196
 
                if (yyVals[0+yyTop] != null) {
6197
 
                        yyVal = new ComposedCast ((ATypeNameExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
6198
 
                } else {
6199
 
                        var sn = yyVals[-1+yyTop] as SimpleName;
6200
 
                        if (sn != null && sn.Name == "var")
6201
 
                                yyVal = new VarExpr (sn.Location);
6202
 
                        else
6203
 
                                yyVal = yyVals[-1+yyTop];
6204
 
                }
6205
 
          }
6206
 
 
6207
 
void case_369()
6208
 
#line 2995 "cs-parser.jay"
6209
 
{
6210
 
                if (yyVals[0+yyTop] != null)
6211
 
                        yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
6212
 
          }
6213
 
 
6214
 
void case_372()
6215
 
#line 3011 "cs-parser.jay"
6216
 
{
6217
 
                var types = new List<FullNamedExpression> (2);
6218
 
                types.Add ((FullNamedExpression) yyVals[0+yyTop]);
6219
 
                yyVal = types;
6220
 
          }
6221
 
 
6222
 
void case_373()
6223
 
#line 3017 "cs-parser.jay"
6224
 
{
6225
 
                var types = (List<FullNamedExpression>) yyVals[-2+yyTop];
6226
 
                types.Add ((FullNamedExpression) yyVals[0+yyTop]);
6227
 
                lbag.AppendTo (types, GetLocation (yyVals[-1+yyTop]));
6228
 
                yyVal = types;
6229
 
          }
6230
 
 
6231
 
void case_374()
6232
 
#line 3027 "cs-parser.jay"
6233
 
{
6234
 
                if (yyVals[0+yyTop] is ComposedCast) {
6235
 
                        report.Error (1521, GetLocation (yyVals[0+yyTop]), "Invalid base type `{0}'", ((ComposedCast)yyVals[0+yyTop]).GetSignatureForError ());
6236
 
                }
6237
 
                yyVal = yyVals[0+yyTop];
6238
 
          }
6239
 
 
6240
 
void case_411()
6241
 
#line 3091 "cs-parser.jay"
6242
 
{
6243
 
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6244
 
                yyVal = new SimpleName (lt.Value, (TypeArguments)yyVals[0+yyTop], lt.Location);   
6245
 
          }
6246
 
 
6247
 
void case_412()
6248
 
#line 3095 "cs-parser.jay"
6249
 
{
6250
 
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6251
 
               yyVal = new CompletionSimpleName (MemberName.MakeName (lt.Value, null), lt.Location);
6252
 
          }
6253
 
 
6254
 
void case_423()
6255
 
#line 3136 "cs-parser.jay"
6256
 
{
6257
 
                yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop]);
6258
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6259
 
          }
6260
 
 
6261
 
void case_425()
6262
 
#line 3148 "cs-parser.jay"
6263
 
{
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])
6267
 
                };
6268
 
          }
6269
 
 
6270
 
void case_426()
6271
 
#line 3155 "cs-parser.jay"
6272
 
{
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])
6276
 
                };
6277
 
          }
6278
 
 
6279
 
void case_427()
6280
 
#line 3162 "cs-parser.jay"
6281
 
{
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])
6285
 
                };
6286
 
          }
6287
 
 
6288
 
void case_428()
6289
 
#line 3169 "cs-parser.jay"
6290
 
{
6291
 
                var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6292
 
                var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6293
 
 
6294
 
                yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (TypeArguments) yyVals[0+yyTop], lt1.Location);
6295
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6296
 
          }
6297
 
 
6298
 
void case_430()
6299
 
#line 3179 "cs-parser.jay"
6300
 
{
6301
 
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6302
 
                yyVal = new CompletionMemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, lt.Location);
6303
 
          }
6304
 
 
6305
 
void case_432()
6306
 
#line 3187 "cs-parser.jay"
6307
 
{
6308
 
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6309
 
                yyVal = new CompletionMemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, lt.Location);
6310
 
          }
6311
 
 
6312
 
void case_433()
6313
 
#line 3195 "cs-parser.jay"
6314
 
{
6315
 
                yyVal = new Invocation ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop]);
6316
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6317
 
          }
6318
 
 
6319
 
void case_436()
6320
 
#line 3208 "cs-parser.jay"
6321
 
{
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]));
6325
 
                } else {
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]));
6328
 
                }
6329
 
          }
6330
 
 
6331
 
void case_437()
6332
 
#line 3218 "cs-parser.jay"
6333
 
{
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]));
6336
 
          }
6337
 
 
6338
 
void case_440()
6339
 
#line 3234 "cs-parser.jay"
6340
 
{
6341
 
                var a = new List<Expression> ();
6342
 
                a.Add ((Expression) yyVals[0+yyTop]);
6343
 
                yyVal = a;
6344
 
          }
6345
 
 
6346
 
void case_441()
6347
 
#line 3240 "cs-parser.jay"
6348
 
{
6349
 
                var a = (List<Expression>)yyVals[-2+yyTop];
6350
 
                a.Add ((Expression) yyVals[0+yyTop]);
6351
 
                lbag.AppendTo (a, GetLocation (yyVals[-1+yyTop]));
6352
 
                yyVal = a;
6353
 
          }
6354
 
 
6355
 
void case_442()
6356
 
#line 3246 "cs-parser.jay"
6357
 
{
6358
 
                Error_SyntaxError (yyToken);
6359
 
                yyVal = yyVals[-1+yyTop];
6360
 
          }
6361
 
 
6362
 
void case_443()
6363
 
#line 3254 "cs-parser.jay"
6364
 
{
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]));
6368
 
          }
6369
 
 
6370
 
void case_445()
6371
 
#line 3263 "cs-parser.jay"
6372
 
{
6373
 
                CompletionSimpleName csn = yyVals[-1+yyTop] as CompletionSimpleName;
6374
 
                if (csn == null)
6375
 
                        yyVal = new CollectionElementInitializer ((Expression)yyVals[-1+yyTop]);
6376
 
                else
6377
 
                        yyVal = new CompletionElementInitializer (csn.Prefix, csn.Location);
6378
 
          }
6379
 
 
6380
 
void case_446()
6381
 
#line 3271 "cs-parser.jay"
6382
 
{
6383
 
                if (yyVals[-1+yyTop] == null)
6384
 
                        yyVal = null;
6385
 
                else {
6386
 
                        yyVal = new CollectionElementInitializer ((List<Expression>)yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6387
 
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6388
 
                }
6389
 
          }
6390
 
 
6391
 
void case_447()
6392
 
#line 3280 "cs-parser.jay"
6393
 
{
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]));
6397
 
          }
6398
 
 
6399
 
void case_452()
6400
 
#line 3299 "cs-parser.jay"
6401
 
6402
 
                Arguments list = new Arguments (4);
6403
 
                list.Add ((Argument) yyVals[0+yyTop]);
6404
 
                yyVal = list;
6405
 
          }
6406
 
 
6407
 
void case_453()
6408
 
#line 3305 "cs-parser.jay"
6409
 
{
6410
 
                Arguments list = (Arguments) yyVals[-2+yyTop];
6411
 
                if (list [list.Count - 1] is NamedArgument)
6412
 
                        Error_NamedArgumentExpected ((NamedArgument) list [list.Count - 1]);
6413
 
                
6414
 
                list.Add ((Argument) yyVals[0+yyTop]);
6415
 
                lbag.AppendTo (list, GetLocation (yyVals[-1+yyTop]));
6416
 
                yyVal = list;
6417
 
          }
6418
 
 
6419
 
void case_454()
6420
 
#line 3315 "cs-parser.jay"
6421
 
{
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",
6428
 
                                        na.Name);
6429
 
                }
6430
 
                
6431
 
                list.Add (a);
6432
 
                lbag.AppendTo (list, GetLocation (yyVals[-1+yyTop]));
6433
 
                yyVal = list;
6434
 
          }
6435
 
 
6436
 
void case_455()
6437
 
#line 3330 "cs-parser.jay"
6438
 
{
6439
 
                lexer.putback (')'); /* TODO: Wrong but what can I do*/
6440
 
                Error_SyntaxError (yyToken);
6441
 
                yyVal = yyVals[-2+yyTop];
6442
 
          }
6443
 
 
6444
 
void case_456()
6445
 
#line 3336 "cs-parser.jay"
6446
 
{
6447
 
                report.Error (839, GetLocation (yyVals[-1+yyTop]), "An argument is missing");
6448
 
                yyVal = null;
6449
 
          }
6450
 
 
6451
 
void case_461()
6452
 
#line 3357 "cs-parser.jay"
6453
 
6454
 
                yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Ref);
6455
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6456
 
          }
6457
 
 
6458
 
void case_462()
6459
 
#line 3362 "cs-parser.jay"
6460
 
6461
 
                yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Out);
6462
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6463
 
          }
6464
 
 
6465
 
void case_463()
6466
 
#line 3367 "cs-parser.jay"
6467
 
{
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]));
6470
 
          }
6471
 
 
6472
 
void case_464()
6473
 
#line 3372 "cs-parser.jay"
6474
 
{
6475
 
                yyVal = new Argument (new Arglist (GetLocation (yyVals[-2+yyTop])));
6476
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
6477
 
          }
6478
 
 
6479
 
void case_466()
6480
 
#line 3384 "cs-parser.jay"
6481
 
{
6482
 
                yyVal = new ElementAccess ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6483
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6484
 
          }
6485
 
 
6486
 
void case_467()
6487
 
#line 3389 "cs-parser.jay"
6488
 
{
6489
 
                Error_SyntaxError (yyToken);
6490
 
                yyVal = new ElementAccess ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6491
 
          }
6492
 
 
6493
 
void case_468()
6494
 
#line 3394 "cs-parser.jay"
6495
 
{
6496
 
                Error_SyntaxError (yyToken);
6497
 
                yyVal = new ElementAccess ((Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-1+yyTop]));
6498
 
          }
6499
 
 
6500
 
void case_469()
6501
 
#line 3402 "cs-parser.jay"
6502
 
{
6503
 
                var list = new List<Expression> (4);
6504
 
                list.Add ((Expression) yyVals[0+yyTop]);
6505
 
                yyVal = list;
6506
 
          }
6507
 
 
6508
 
void case_470()
6509
 
#line 3408 "cs-parser.jay"
6510
 
{
6511
 
                var list = (List<Expression>) yyVals[-2+yyTop];
6512
 
                list.Add ((Expression) yyVals[0+yyTop]);
6513
 
                lbag.AppendTo (list, GetLocation (yyVals[-1+yyTop]));
6514
 
                yyVal = list;
6515
 
          }
6516
 
 
6517
 
void case_471()
6518
 
#line 3414 "cs-parser.jay"
6519
 
{
6520
 
                Error_SyntaxError (yyToken);
6521
 
                yyVal = yyVals[-1+yyTop];
6522
 
          }
6523
 
 
6524
 
void case_472()
6525
 
#line 3422 "cs-parser.jay"
6526
 
{
6527
 
                Arguments args = new Arguments (4);
6528
 
                args.Add ((Argument) yyVals[0+yyTop]);
6529
 
                yyVal = args;
6530
 
          }
6531
 
 
6532
 
void case_473()
6533
 
#line 3428 "cs-parser.jay"
6534
 
{
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]);
6538
 
          
6539
 
                args.Add ((Argument) yyVals[0+yyTop]);
6540
 
                lbag.AppendTo (args, GetLocation (yyVals[-1+yyTop]));
6541
 
                yyVal = args;     
6542
 
          }
6543
 
 
6544
 
void case_477()
6545
 
#line 3456 "cs-parser.jay"
6546
 
{
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]));
6549
 
          }
6550
 
 
6551
 
void case_478()
6552
 
#line 3461 "cs-parser.jay"
6553
 
{
6554
 
                Error_SyntaxError (yyToken);
6555
 
                yyVal = new ElementAccess (null, null, GetLocation (yyVals[-1+yyTop]));
6556
 
          }
6557
 
 
6558
 
void case_481()
6559
 
#line 3483 "cs-parser.jay"
6560
 
{
6561
 
                if (yyVals[0+yyTop] != null) {
6562
 
                        if (lang_version <= LanguageVersion.ISO_2)
6563
 
                                FeatureIsNotAvailable (GetLocation (yyVals[-5+yyTop]), "object initializers");
6564
 
                                
6565
 
                        yyVal = new NewInitialize ((FullNamedExpression) yyVals[-4+yyTop], (Arguments) yyVals[-2+yyTop], (CollectionOrObjectInitializers) yyVals[0+yyTop], GetLocation (yyVals[-5+yyTop]));
6566
 
                } else {
6567
 
                        yyVal = new New ((FullNamedExpression) yyVals[-4+yyTop], (Arguments) yyVals[-2+yyTop], GetLocation (yyVals[-5+yyTop]));
6568
 
                }
6569
 
                
6570
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
6571
 
          }
6572
 
 
6573
 
void case_482()
6574
 
#line 3496 "cs-parser.jay"
6575
 
{
6576
 
                if (lang_version <= LanguageVersion.ISO_2)
6577
 
                        FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "collection initializers");
6578
 
          
6579
 
                yyVal = new NewInitialize ((FullNamedExpression) yyVals[-1+yyTop], null, (CollectionOrObjectInitializers) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
6580
 
          }
6581
 
 
6582
 
void case_483()
6583
 
#line 3508 "cs-parser.jay"
6584
 
{
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]));
6590
 
          }
6591
 
 
6592
 
void case_484()
6593
 
#line 3516 "cs-parser.jay"
6594
 
{
6595
 
                if (yyVals[0+yyTop] == null)
6596
 
                        report.Error (1586, GetLocation (yyVals[-3+yyTop]), "Array creation must have array size or array initializer");
6597
 
 
6598
 
                yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-2+yyTop], (ComposedTypeSpecifier) yyVals[-1+yyTop], (ArrayInitializer) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
6599
 
          }
6600
 
 
6601
 
void case_485()
6602
 
#line 3523 "cs-parser.jay"
6603
 
{
6604
 
                if (lang_version <= LanguageVersion.ISO_2)
6605
 
                        FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "implicitly typed arrays");
6606
 
          
6607
 
                yyVal = new ImplicitlyTypedArrayCreation ((ComposedTypeSpecifier) yyVals[-1+yyTop], (ArrayInitializer) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
6608
 
          }
6609
 
 
6610
 
void case_486()
6611
 
#line 3530 "cs-parser.jay"
6612
 
{
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]));
6615
 
          }
6616
 
 
6617
 
void case_487()
6618
 
#line 3535 "cs-parser.jay"
6619
 
{
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]));
6623
 
          }
6624
 
 
6625
 
void case_489()
6626
 
#line 3547 "cs-parser.jay"
6627
 
{
6628
 
                --lexer.parsing_type;
6629
 
                yyVal = yyVals[0+yyTop];
6630
 
          }
6631
 
 
6632
 
void case_490()
6633
 
#line 3555 "cs-parser.jay"
6634
 
{
6635
 
                if (lang_version <= LanguageVersion.ISO_2)
6636
 
                        FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "anonymous types");
6637
 
 
6638
 
                yyVal = new NewAnonymousType ((List<AnonymousTypeParameter>) yyVals[-1+yyTop], current_container, GetLocation (yyVals[-3+yyTop]));
6639
 
                
6640
 
                /* TODO: lbag comma location*/
6641
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6642
 
          }
6643
 
 
6644
 
void case_495()
6645
 
#line 3578 "cs-parser.jay"
6646
 
{
6647
 
                var a = new List<AnonymousTypeParameter> (4);
6648
 
                a.Add ((AnonymousTypeParameter) yyVals[0+yyTop]);
6649
 
                yyVal = a;
6650
 
          }
6651
 
 
6652
 
void case_496()
6653
 
#line 3584 "cs-parser.jay"
6654
 
{
6655
 
                var a = (List<AnonymousTypeParameter>) yyVals[-2+yyTop];
6656
 
                a.Add ((AnonymousTypeParameter) yyVals[0+yyTop]);
6657
 
                lbag.AppendTo (a, GetLocation (yyVals[-1+yyTop]));
6658
 
 
6659
 
                yyVal = a;
6660
 
          }
6661
 
 
6662
 
void case_497()
6663
 
#line 3595 "cs-parser.jay"
6664
 
{
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]));
6668
 
          }
6669
 
 
6670
 
void case_498()
6671
 
#line 3601 "cs-parser.jay"
6672
 
{
6673
 
                var lt = (Tokenizer.LocatedToken)yyVals[0+yyTop];
6674
 
                yyVal = new AnonymousTypeParameter (new SimpleName (lt.Value, lt.Location),
6675
 
                        lt.Value, lt.Location);
6676
 
          }
6677
 
 
6678
 
void case_499()
6679
 
#line 3607 "cs-parser.jay"
6680
 
{
6681
 
                MemberAccess ma = (MemberAccess) yyVals[0+yyTop];
6682
 
                yyVal = new AnonymousTypeParameter (ma, ma.Name, ma.Location);
6683
 
          }
6684
 
 
6685
 
void case_500()
6686
 
#line 3612 "cs-parser.jay"
6687
 
{
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");
6690
 
                yyVal = null;
6691
 
          }
6692
 
 
6693
 
void case_504()
6694
 
#line 3627 "cs-parser.jay"
6695
 
{
6696
 
                ((ComposedTypeSpecifier) yyVals[-1+yyTop]).Next = (ComposedTypeSpecifier) yyVals[0+yyTop];
6697
 
                yyVal = yyVals[-1+yyTop];
6698
 
          }
6699
 
 
6700
 
void case_505()
6701
 
#line 3635 "cs-parser.jay"
6702
 
{
6703
 
                yyVal = ComposedTypeSpecifier.CreateArrayDimension (1, GetLocation (yyVals[-1+yyTop]));
6704
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6705
 
          }
6706
 
 
6707
 
void case_506()
6708
 
#line 3640 "cs-parser.jay"
6709
 
{
6710
 
                yyVal = ComposedTypeSpecifier.CreateArrayDimension ((int)yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6711
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6712
 
          }
6713
 
 
6714
 
void case_511()
6715
 
#line 3670 "cs-parser.jay"
6716
 
{
6717
 
                var ai = new ArrayInitializer (0, GetLocation (yyVals[-1+yyTop]));
6718
 
                ai.VariableDeclaration = current_variable;
6719
 
                lbag.AddLocation (ai, GetLocation (yyVals[0+yyTop]));
6720
 
                yyVal = ai;
6721
 
          }
6722
 
 
6723
 
void case_512()
6724
 
#line 3677 "cs-parser.jay"
6725
 
{
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]));
6730
 
                } else {
6731
 
                        lbag.AddLocation (ai, GetLocation (yyVals[0+yyTop]));
6732
 
                }
6733
 
                yyVal = ai;
6734
 
          }
6735
 
 
6736
 
void case_513()
6737
 
#line 3691 "cs-parser.jay"
6738
 
{
6739
 
                var list = new List<Expression> (4);
6740
 
                list.Add ((Expression) yyVals[0+yyTop]);
6741
 
                yyVal = list;
6742
 
          }
6743
 
 
6744
 
void case_514()
6745
 
#line 3697 "cs-parser.jay"
6746
 
{
6747
 
                var list = (List<Expression>) yyVals[-2+yyTop];
6748
 
                list.Add ((Expression) yyVals[0+yyTop]);
6749
 
                lbag.AppendTo (list, GetLocation (yyVals[-1+yyTop]));
6750
 
                yyVal = list;
6751
 
          }
6752
 
 
6753
 
void case_516()
6754
 
#line 3711 "cs-parser.jay"
6755
 
{
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]));
6759
 
          }
6760
 
 
6761
 
void case_519()
6762
 
#line 3722 "cs-parser.jay"
6763
 
{
6764
 
                Error_TypeExpected (lexer.Location);
6765
 
                yyVal = null;
6766
 
         }
6767
 
 
6768
 
void case_520()
6769
 
#line 3730 "cs-parser.jay"
6770
 
{  
6771
 
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6772
 
 
6773
 
                yyVal = new SimpleName (lt.Value, (int) yyVals[0+yyTop], lt.Location);
6774
 
          }
6775
 
 
6776
 
void case_521()
6777
 
#line 3736 "cs-parser.jay"
6778
 
{
6779
 
                var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6780
 
                var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6781
 
 
6782
 
                yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) yyVals[0+yyTop], lt1.Location);
6783
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6784
 
          }
6785
 
 
6786
 
void case_522()
6787
 
#line 3744 "cs-parser.jay"
6788
 
{
6789
 
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
6790
 
                
6791
 
                yyVal = new MemberAccess ((Expression) yyVals[-2+yyTop], lt.Value, lt.Location) {
6792
 
                        DotLocation = GetLocation (yyVals[-1+yyTop])
6793
 
                };
6794
 
          }
6795
 
 
6796
 
void case_523()
6797
 
#line 3752 "cs-parser.jay"
6798
 
{
6799
 
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6800
 
                
6801
 
                yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (int) yyVals[0+yyTop], lt.Location) {
6802
 
                        DotLocation = GetLocation (yyVals[-2+yyTop])
6803
 
                };
6804
 
          }
6805
 
 
6806
 
void case_524()
6807
 
#line 3760 "cs-parser.jay"
6808
 
{
6809
 
                var tne = (ATypeNameExpression) yyVals[-3+yyTop];
6810
 
                if (tne.HasTypeArguments)
6811
 
                        Error_TypeExpected (GetLocation (yyVals[0+yyTop]));
6812
 
 
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])
6816
 
                };              
6817
 
          }
6818
 
 
6819
 
void case_525()
6820
 
#line 3774 "cs-parser.jay"
6821
 
{
6822
 
                if (lang_version < LanguageVersion.ISO_2)
6823
 
                        FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "generics");
6824
 
 
6825
 
                yyVal = yyVals[0+yyTop];
6826
 
          }
6827
 
 
6828
 
void case_526()
6829
 
#line 3784 "cs-parser.jay"
6830
 
{
6831
 
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6832
 
                if (lang_version == LanguageVersion.ISO_1)
6833
 
                        FeatureIsNotAvailable (lt.Location, "namespace alias qualifier");
6834
 
 
6835
 
                yyVal = lt;             
6836
 
          }
6837
 
 
6838
 
void case_527()
6839
 
#line 3795 "cs-parser.jay"
6840
 
6841
 
                yyVal = new SizeOf ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
6842
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6843
 
          }
6844
 
 
6845
 
void case_528()
6846
 
#line 3803 "cs-parser.jay"
6847
 
{
6848
 
                yyVal = new CheckedExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
6849
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6850
 
          }
6851
 
 
6852
 
void case_529()
6853
 
#line 3811 "cs-parser.jay"
6854
 
{
6855
 
                yyVal = new UnCheckedExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
6856
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6857
 
          }
6858
 
 
6859
 
void case_530()
6860
 
#line 3819 "cs-parser.jay"
6861
 
{
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);
6864
 
          }
6865
 
 
6866
 
void case_532()
6867
 
#line 3831 "cs-parser.jay"
6868
 
{
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);
6872
 
                } else {
6873
 
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]));
6874
 
                }
6875
 
          }
6876
 
 
6877
 
void case_534()
6878
 
#line 3844 "cs-parser.jay"
6879
 
{
6880
 
                yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
6881
 
                
6882
 
                if ((ParametersCompiled) yyVals[-2+yyTop] != ParametersCompiled.Undefined) {
6883
 
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), savedOpenLocation, savedCloseLocation);
6884
 
                } else {
6885
 
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]));
6886
 
                }
6887
 
          }
6888
 
 
6889
 
void case_538()
6890
 
#line 3869 "cs-parser.jay"
6891
 
{
6892
 
                valid_param_mod = 0;
6893
 
                yyVal = yyVals[-1+yyTop];
6894
 
                savedOpenLocation = GetLocation (yyVals[-3+yyTop]);
6895
 
                savedCloseLocation = GetLocation (yyVals[-2+yyTop]);
6896
 
          }
6897
 
 
6898
 
void case_539()
6899
 
#line 3879 "cs-parser.jay"
6900
 
{
6901
 
                if (lang_version < LanguageVersion.ISO_2)
6902
 
                        FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "default value expression");
6903
 
 
6904
 
                yyVal = new DefaultValueExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
6905
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6906
 
          }
6907
 
 
6908
 
void case_543()
6909
 
#line 3899 "cs-parser.jay"
6910
 
{
6911
 
                yyVal = new Cast ((FullNamedExpression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
6912
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6913
 
          }
6914
 
 
6915
 
void case_544()
6916
 
#line 3904 "cs-parser.jay"
6917
 
{
6918
 
                if (!async_block) {
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");
6925
 
                        } else {
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");
6928
 
                        }
6929
 
                } else {
6930
 
                        current_block.Explicit.RegisterAsyncAwait ();
6931
 
                }
6932
 
                
6933
 
                yyVal = new Await ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6934
 
          }
6935
 
 
6936
 
void case_553()
6937
 
#line 3959 "cs-parser.jay"
6938
 
{
6939
 
                yyVal = new Binary (Binary.Operator.Multiply, 
6940
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6941
 
          }
6942
 
 
6943
 
void case_554()
6944
 
#line 3964 "cs-parser.jay"
6945
 
{
6946
 
                yyVal = new Binary (Binary.Operator.Division, 
6947
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6948
 
          }
6949
 
 
6950
 
void case_555()
6951
 
#line 3969 "cs-parser.jay"
6952
 
{
6953
 
                yyVal = new Binary (Binary.Operator.Modulus, 
6954
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6955
 
          }
6956
 
 
6957
 
void case_557()
6958
 
#line 3978 "cs-parser.jay"
6959
 
{
6960
 
                yyVal = new Binary (Binary.Operator.Addition, 
6961
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6962
 
          }
6963
 
 
6964
 
void case_559()
6965
 
#line 3987 "cs-parser.jay"
6966
 
{
6967
 
                /* Shift/Reduce conflict*/
6968
 
                yyVal = new Binary (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6969
 
          }
6970
 
 
6971
 
void case_563()
6972
 
#line 4004 "cs-parser.jay"
6973
 
{
6974
 
                yyVal = new Binary (Binary.Operator.LeftShift, 
6975
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6976
 
          }
6977
 
 
6978
 
void case_564()
6979
 
#line 4009 "cs-parser.jay"
6980
 
{
6981
 
                yyVal = new Binary (Binary.Operator.RightShift, 
6982
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6983
 
          }
6984
 
 
6985
 
void case_566()
6986
 
#line 4018 "cs-parser.jay"
6987
 
{
6988
 
                yyVal = new Binary (Binary.Operator.LessThan, 
6989
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6990
 
          }
6991
 
 
6992
 
void case_567()
6993
 
#line 4023 "cs-parser.jay"
6994
 
{
6995
 
                yyVal = new Binary (Binary.Operator.GreaterThan, 
6996
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6997
 
          }
6998
 
 
6999
 
void case_568()
7000
 
#line 4028 "cs-parser.jay"
7001
 
{
7002
 
                yyVal = new Binary (Binary.Operator.LessThanOrEqual, 
7003
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7004
 
          }
7005
 
 
7006
 
void case_569()
7007
 
#line 4033 "cs-parser.jay"
7008
 
{
7009
 
                yyVal = new Binary (Binary.Operator.GreaterThanOrEqual, 
7010
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7011
 
          }
7012
 
 
7013
 
void case_571()
7014
 
#line 4042 "cs-parser.jay"
7015
 
{
7016
 
                yyVal = new Binary (Binary.Operator.Equality, 
7017
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7018
 
          }
7019
 
 
7020
 
void case_572()
7021
 
#line 4047 "cs-parser.jay"
7022
 
{
7023
 
                yyVal = new Binary (Binary.Operator.Inequality, 
7024
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7025
 
          }
7026
 
 
7027
 
void case_574()
7028
 
#line 4056 "cs-parser.jay"
7029
 
{
7030
 
                yyVal = new Binary (Binary.Operator.BitwiseAnd, 
7031
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7032
 
          }
7033
 
 
7034
 
void case_576()
7035
 
#line 4065 "cs-parser.jay"
7036
 
{
7037
 
                yyVal = new Binary (Binary.Operator.ExclusiveOr, 
7038
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7039
 
          }
7040
 
 
7041
 
void case_578()
7042
 
#line 4074 "cs-parser.jay"
7043
 
{
7044
 
                yyVal = new Binary (Binary.Operator.BitwiseOr, 
7045
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7046
 
          }
7047
 
 
7048
 
void case_580()
7049
 
#line 4083 "cs-parser.jay"
7050
 
{
7051
 
                yyVal = new Binary (Binary.Operator.LogicalAnd, 
7052
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7053
 
          }
7054
 
 
7055
 
void case_582()
7056
 
#line 4092 "cs-parser.jay"
7057
 
{
7058
 
                yyVal = new Binary (Binary.Operator.LogicalOr, 
7059
 
                                 (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7060
 
          }
7061
 
 
7062
 
void case_584()
7063
 
#line 4101 "cs-parser.jay"
7064
 
{
7065
 
                if (lang_version < LanguageVersion.ISO_2)
7066
 
                        FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "null coalescing operator");
7067
 
                        
7068
 
                yyVal = new Nullable.NullCoalescingOperator ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7069
 
          }
7070
 
 
7071
 
void case_586()
7072
 
#line 4112 "cs-parser.jay"
7073
 
{
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]));
7076
 
          }
7077
 
 
7078
 
void case_587()
7079
 
#line 4117 "cs-parser.jay"
7080
 
{
7081
 
                Error_SyntaxError (yyToken);
7082
 
                yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-3+yyTop]), (Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]));
7083
 
          }
7084
 
 
7085
 
void case_589()
7086
 
#line 4129 "cs-parser.jay"
7087
 
{
7088
 
                yyVal = new CompoundAssign (
7089
 
                        Binary.Operator.Multiply, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7090
 
          }
7091
 
 
7092
 
void case_590()
7093
 
#line 4134 "cs-parser.jay"
7094
 
{
7095
 
                yyVal = new CompoundAssign (
7096
 
                        Binary.Operator.Division, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7097
 
          }
7098
 
 
7099
 
void case_591()
7100
 
#line 4139 "cs-parser.jay"
7101
 
{
7102
 
                yyVal = new CompoundAssign (
7103
 
                        Binary.Operator.Modulus, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7104
 
          }
7105
 
 
7106
 
void case_592()
7107
 
#line 4144 "cs-parser.jay"
7108
 
{
7109
 
                yyVal = new CompoundAssign (
7110
 
                        Binary.Operator.Addition, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7111
 
          }
7112
 
 
7113
 
void case_593()
7114
 
#line 4149 "cs-parser.jay"
7115
 
{
7116
 
                yyVal = new CompoundAssign (
7117
 
                        Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7118
 
          }
7119
 
 
7120
 
void case_594()
7121
 
#line 4154 "cs-parser.jay"
7122
 
{
7123
 
                yyVal = new CompoundAssign (
7124
 
                        Binary.Operator.LeftShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7125
 
          }
7126
 
 
7127
 
void case_595()
7128
 
#line 4159 "cs-parser.jay"
7129
 
{
7130
 
                yyVal = new CompoundAssign (
7131
 
                        Binary.Operator.RightShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7132
 
          }
7133
 
 
7134
 
void case_596()
7135
 
#line 4164 "cs-parser.jay"
7136
 
{
7137
 
                yyVal = new CompoundAssign (
7138
 
                        Binary.Operator.BitwiseAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7139
 
          }
7140
 
 
7141
 
void case_597()
7142
 
#line 4169 "cs-parser.jay"
7143
 
{
7144
 
                yyVal = new CompoundAssign (
7145
 
                        Binary.Operator.BitwiseOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7146
 
          }
7147
 
 
7148
 
void case_598()
7149
 
#line 4174 "cs-parser.jay"
7150
 
{
7151
 
                yyVal = new CompoundAssign (
7152
 
                        Binary.Operator.ExclusiveOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7153
 
          }
7154
 
 
7155
 
void case_599()
7156
 
#line 4182 "cs-parser.jay"
7157
 
{
7158
 
                var pars = new List<Parameter> (4);
7159
 
                pars.Add ((Parameter) yyVals[0+yyTop]);
7160
 
                parameterListCommas.Clear ();
7161
 
                yyVal = pars;
7162
 
          }
7163
 
 
7164
 
void case_600()
7165
 
#line 4189 "cs-parser.jay"
7166
 
{
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");
7171
 
                }
7172
 
                
7173
 
                pars.Add (p);
7174
 
                parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
7175
 
 
7176
 
                yyVal = pars;
7177
 
          }
7178
 
 
7179
 
void case_601()
7180
 
#line 4205 "cs-parser.jay"
7181
 
{
7182
 
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
7183
 
 
7184
 
                yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Parameter.Modifier) yyVals[-2+yyTop], null, lt.Location);
7185
 
          }
7186
 
 
7187
 
void case_602()
7188
 
#line 4211 "cs-parser.jay"
7189
 
{
7190
 
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
7191
 
 
7192
 
                yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, Parameter.Modifier.NONE, null, lt.Location);
7193
 
          }
7194
 
 
7195
 
void case_603()
7196
 
#line 4217 "cs-parser.jay"
7197
 
{
7198
 
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
7199
 
                yyVal = new ImplicitLambdaParameter (lt.Value, lt.Location);
7200
 
          }
7201
 
 
7202
 
void case_605()
7203
 
#line 4225 "cs-parser.jay"
7204
 
7205
 
                var pars_list = (List<Parameter>) yyVals[0+yyTop];
7206
 
                yyVal = new ParametersCompiled (pars_list.ToArray ());
7207
 
                lbag.AddLocation (yyVal, parameterListCommas);
7208
 
          }
7209
 
 
7210
 
void case_609()
7211
 
#line 4242 "cs-parser.jay"
7212
 
{
7213
 
                Block b = end_block (Location.Null);
7214
 
                b.IsCompilerGenerated = true;
7215
 
                b.AddStatement (new ContextualReturn ((Expression) yyVals[0+yyTop]));
7216
 
                yyVal = b;
7217
 
          }
7218
 
 
7219
 
void case_611()
7220
 
#line 4253 "cs-parser.jay"
7221
 
{
7222
 
                Error_SyntaxError (yyToken);    
7223
 
                yyVal = EmptyExpression.Null;
7224
 
          }
7225
 
 
7226
 
void case_612()
7227
 
#line 4261 "cs-parser.jay"
7228
 
{
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);
7232
 
          }
7233
 
 
7234
 
void case_613()
7235
 
#line 4267 "cs-parser.jay"
7236
 
{
7237
 
                yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7238
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
7239
 
          }
7240
 
 
7241
 
void case_614()
7242
 
#line 4272 "cs-parser.jay"
7243
 
{
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);
7247
 
          }
7248
 
 
7249
 
void case_615()
7250
 
#line 4278 "cs-parser.jay"
7251
 
{
7252
 
                yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7253
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
7254
 
          }
7255
 
 
7256
 
void case_617()
7257
 
#line 4287 "cs-parser.jay"
7258
 
{
7259
 
                valid_param_mod = 0;
7260
 
                start_anonymous (true, (ParametersCompiled) yyVals[-2+yyTop], false, GetLocation (yyVals[-4+yyTop]));
7261
 
          }
7262
 
 
7263
 
void case_618()
7264
 
#line 4292 "cs-parser.jay"
7265
 
{
7266
 
                yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7267
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
7268
 
          }
7269
 
 
7270
 
void case_620()
7271
 
#line 4301 "cs-parser.jay"
7272
 
{
7273
 
                valid_param_mod = 0;
7274
 
                start_anonymous (true, (ParametersCompiled) yyVals[-2+yyTop], true, GetLocation (yyVals[-5+yyTop]));
7275
 
          }
7276
 
 
7277
 
void case_621()
7278
 
#line 4306 "cs-parser.jay"
7279
 
{
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]));
7282
 
          }
7283
 
 
7284
 
void case_628()
7285
 
#line 4329 "cs-parser.jay"
7286
 
{
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]));
7289
 
          }
7290
 
 
7291
 
void case_629()
7292
 
#line 4334 "cs-parser.jay"
7293
 
{
7294
 
                yyVal = new RefTypeExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
7295
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7296
 
          }
7297
 
 
7298
 
void case_630()
7299
 
#line 4339 "cs-parser.jay"
7300
 
{
7301
 
                yyVal = new MakeRefExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
7302
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));          
7303
 
          }
7304
 
 
7305
 
void case_634()
7306
 
#line 4368 "cs-parser.jay"
7307
 
{
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");
7311
 
                }
7312
 
                        
7313
 
                push_current_container (c, yyVals[-3+yyTop]);
7314
 
                lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]));
7315
 
          }
7316
 
 
7317
 
void case_635()
7318
 
#line 4379 "cs-parser.jay"
7319
 
{
7320
 
                lexer.ConstraintsParsing = false;
7321
 
 
7322
 
                if (yyVals[0+yyTop] != null)
7323
 
                        current_container.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
7324
 
 
7325
 
                if (doc_support) {
7326
 
                        current_container.PartialContainer.DocComment = Lexer.consume_doc_comment ();
7327
 
                        Lexer.doc_state = XmlCommentState.Allowed;
7328
 
                }
7329
 
                
7330
 
                lexer.parsing_modifiers = true;
7331
 
          }
7332
 
 
7333
 
void case_636()
7334
 
#line 4393 "cs-parser.jay"
7335
 
{
7336
 
                --lexer.parsing_declaration;
7337
 
                if (doc_support)
7338
 
                        Lexer.doc_state = XmlCommentState.Allowed;
7339
 
          }
7340
 
 
7341
 
void case_637()
7342
 
#line 4399 "cs-parser.jay"
7343
 
{
7344
 
                if (yyVals[0+yyTop] == null) {
7345
 
                        lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
7346
 
                } else {
7347
 
                        lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7348
 
                }
7349
 
                yyVal = pop_current_class ();
7350
 
          }
7351
 
 
7352
 
void case_640()
7353
 
#line 4418 "cs-parser.jay"
7354
 
{
7355
 
            mod_locations = null;
7356
 
                yyVal = ModifierNone;
7357
 
                lexer.parsing_modifiers = false;
7358
 
          }
7359
 
 
7360
 
void case_643()
7361
 
#line 4432 "cs-parser.jay"
7362
 
7363
 
                var m1 = (Modifiers) yyVals[-1+yyTop];
7364
 
                var m2 = (Modifiers) yyVals[0+yyTop];
7365
 
 
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");
7373
 
                }
7374
 
                
7375
 
                yyVal = m1 | m2;
7376
 
          }
7377
 
 
7378
 
void case_644()
7379
 
#line 4451 "cs-parser.jay"
7380
 
{
7381
 
                yyVal = Modifiers.NEW;
7382
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7383
 
                
7384
 
                if (current_container.Kind == MemberKind.Namespace)
7385
 
                        report.Error (1530, GetLocation (yyVals[0+yyTop]), "Keyword `new' is not allowed on namespace elements");
7386
 
          }
7387
 
 
7388
 
void case_645()
7389
 
#line 4459 "cs-parser.jay"
7390
 
{
7391
 
                yyVal = Modifiers.PUBLIC;
7392
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7393
 
          }
7394
 
 
7395
 
void case_646()
7396
 
#line 4464 "cs-parser.jay"
7397
 
{
7398
 
                yyVal = Modifiers.PROTECTED;
7399
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7400
 
          }
7401
 
 
7402
 
void case_647()
7403
 
#line 4469 "cs-parser.jay"
7404
 
{
7405
 
                yyVal = Modifiers.INTERNAL;
7406
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7407
 
          }
7408
 
 
7409
 
void case_648()
7410
 
#line 4474 "cs-parser.jay"
7411
 
{
7412
 
                yyVal = Modifiers.PRIVATE;
7413
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7414
 
          }
7415
 
 
7416
 
void case_649()
7417
 
#line 4479 "cs-parser.jay"
7418
 
{
7419
 
                yyVal = Modifiers.ABSTRACT;
7420
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7421
 
          }
7422
 
 
7423
 
void case_650()
7424
 
#line 4484 "cs-parser.jay"
7425
 
{
7426
 
                yyVal = Modifiers.SEALED;
7427
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7428
 
          }
7429
 
 
7430
 
void case_651()
7431
 
#line 4489 "cs-parser.jay"
7432
 
{
7433
 
                yyVal = Modifiers.STATIC;
7434
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7435
 
          }
7436
 
 
7437
 
void case_652()
7438
 
#line 4494 "cs-parser.jay"
7439
 
{
7440
 
                yyVal = Modifiers.READONLY;
7441
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7442
 
          }
7443
 
 
7444
 
void case_653()
7445
 
#line 4499 "cs-parser.jay"
7446
 
{
7447
 
                yyVal = Modifiers.VIRTUAL;
7448
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7449
 
          }
7450
 
 
7451
 
void case_654()
7452
 
#line 4504 "cs-parser.jay"
7453
 
{
7454
 
                yyVal = Modifiers.OVERRIDE;
7455
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7456
 
          }
7457
 
 
7458
 
void case_655()
7459
 
#line 4509 "cs-parser.jay"
7460
 
{
7461
 
                yyVal = Modifiers.EXTERN;
7462
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7463
 
          }
7464
 
 
7465
 
void case_656()
7466
 
#line 4514 "cs-parser.jay"
7467
 
{
7468
 
                yyVal = Modifiers.VOLATILE;
7469
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7470
 
          }
7471
 
 
7472
 
void case_657()
7473
 
#line 4519 "cs-parser.jay"
7474
 
{
7475
 
                yyVal = Modifiers.UNSAFE;
7476
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7477
 
                if (!settings.Unsafe)
7478
 
                        Error_UnsafeCodeNotAllowed (GetLocation (yyVals[0+yyTop]));
7479
 
          }
7480
 
 
7481
 
void case_658()
7482
 
#line 4526 "cs-parser.jay"
7483
 
{
7484
 
                yyVal = Modifiers.ASYNC;
7485
 
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7486
 
          }
7487
 
 
7488
 
void case_660()
7489
 
#line 4535 "cs-parser.jay"
7490
 
{
7491
 
                current_type.AddBasesForPart ((List<FullNamedExpression>) yyVals[0+yyTop]);
7492
 
                lbag.AppendToMember (current_type, GetLocation (yyVals[-1+yyTop]));
7493
 
         }
7494
 
 
7495
 
void case_661()
7496
 
#line 4540 "cs-parser.jay"
7497
 
{
7498
 
                Error_SyntaxError (yyToken);
7499
 
 
7500
 
                current_type.AddBasesForPart ((List<FullNamedExpression>) yyVals[-1+yyTop]);
7501
 
          }
7502
 
 
7503
 
void case_664()
7504
 
#line 4557 "cs-parser.jay"
7505
 
{
7506
 
                var constraints = new List<Constraints> (1);
7507
 
                constraints.Add ((Constraints) yyVals[0+yyTop]);
7508
 
                yyVal = constraints;
7509
 
          }
7510
 
 
7511
 
void case_665()
7512
 
#line 4563 "cs-parser.jay"
7513
 
{
7514
 
                var constraints = (List<Constraints>) yyVals[-1+yyTop];
7515
 
                Constraints new_constraint = (Constraints)yyVals[0+yyTop];
7516
 
 
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);
7522
 
                        }
7523
 
                }
7524
 
 
7525
 
                constraints.Add (new_constraint);
7526
 
                yyVal = constraints;
7527
 
          }
7528
 
 
7529
 
void case_666()
7530
 
#line 4582 "cs-parser.jay"
7531
 
{
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]));
7535
 
          }
7536
 
 
7537
 
void case_667()
7538
 
#line 4588 "cs-parser.jay"
7539
 
{
7540
 
                Error_SyntaxError (yyToken);
7541
 
          
7542
 
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
7543
 
                yyVal = new Constraints (new SimpleMemberName (lt.Value, lt.Location), null, GetLocation (yyVals[-2+yyTop]));
7544
 
          }
7545
 
 
7546
 
void case_668()
7547
 
#line 4598 "cs-parser.jay"
7548
 
{
7549
 
                var constraints = new List<FullNamedExpression> (1);
7550
 
                constraints.Add ((FullNamedExpression) yyVals[0+yyTop]);
7551
 
                yyVal = constraints;
7552
 
          }
7553
 
 
7554
 
void case_669()
7555
 
#line 4604 "cs-parser.jay"
7556
 
{
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");
7561
 
                }
7562
 
                
7563
 
                prev = yyVals[0+yyTop] as SpecialContraintExpr;
7564
 
                if (prev != null) {
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");                 
7567
 
                        } else {
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");
7571
 
                                }
7572
 
                        }
7573
 
                }
7574
 
 
7575
 
                constraints.Add ((FullNamedExpression) yyVals[0+yyTop]);
7576
 
                lbag.AppendTo (constraints, GetLocation (yyVals[-1+yyTop]));
7577
 
                yyVal = constraints;
7578
 
          }
7579
 
 
7580
 
void case_670()
7581
 
#line 4631 "cs-parser.jay"
7582
 
{
7583
 
                if (yyVals[0+yyTop] is ComposedCast)
7584
 
                        report.Error (706, GetLocation (yyVals[0+yyTop]), "Invalid constraint type `{0}'", ((ComposedCast)yyVals[0+yyTop]).GetSignatureForError ());
7585
 
          
7586
 
                yyVal = yyVals[0+yyTop];
7587
 
          }
7588
 
 
7589
 
void case_671()
7590
 
#line 4638 "cs-parser.jay"
7591
 
{
7592
 
                yyVal = new SpecialContraintExpr (SpecialConstraint.Constructor, GetLocation (yyVals[-2+yyTop]));
7593
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
7594
 
          }
7595
 
 
7596
 
void case_675()
7597
 
#line 4658 "cs-parser.jay"
7598
 
{
7599
 
                if (lang_version <= LanguageVersion.V_3)
7600
 
                        FeatureIsNotAvailable (lexer.Location, "generic type variance");
7601
 
                
7602
 
                yyVal = yyVals[0+yyTop];
7603
 
          }
7604
 
 
7605
 
void case_676()
7606
 
#line 4668 "cs-parser.jay"
7607
 
{
7608
 
                yyVal = Variance.Covariant;
7609
 
                savedLocation = GetLocation (yyVals[0+yyTop]);
7610
 
          }
7611
 
 
7612
 
void case_677()
7613
 
#line 4673 "cs-parser.jay"
7614
 
{
7615
 
                yyVal = Variance.Contravariant;
7616
 
                savedLocation = GetLocation (yyVals[0+yyTop]);
7617
 
          }
7618
 
 
7619
 
void case_678()
7620
 
#line 4694 "cs-parser.jay"
7621
 
{
7622
 
                ++lexer.parsing_block;
7623
 
                start_block (GetLocation (yyVals[0+yyTop]));
7624
 
          }
7625
 
 
7626
 
void case_680()
7627
 
#line 4706 "cs-parser.jay"
7628
 
{
7629
 
                --lexer.parsing_block;
7630
 
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
7631
 
          }
7632
 
 
7633
 
void case_681()
7634
 
#line 4711 "cs-parser.jay"
7635
 
{
7636
 
                --lexer.parsing_block;
7637
 
                yyVal = end_block (lexer.Location);
7638
 
          }
7639
 
 
7640
 
void case_682()
7641
 
#line 4720 "cs-parser.jay"
7642
 
{
7643
 
                ++lexer.parsing_block;
7644
 
                current_block.StartLocation = GetLocation (yyVals[0+yyTop]);
7645
 
          }
7646
 
 
7647
 
void case_683()
7648
 
#line 4725 "cs-parser.jay"
7649
 
{
7650
 
                --lexer.parsing_block;
7651
 
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
7652
 
          }
7653
 
 
7654
 
void case_684()
7655
 
#line 4729 "cs-parser.jay"
7656
 
{
7657
 
                report.Error (1525, GetLocation (yyVals[0+yyTop]), "Unexpected symbol '}', expected '{'");
7658
 
                lexer.putback ('}');
7659
 
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
7660
 
          }
7661
 
 
7662
 
void case_692()
7663
 
#line 4758 "cs-parser.jay"
7664
 
{
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));
7669
 
                yyVal = null;
7670
 
        }
7671
 
 
7672
 
void case_693()
7673
 
#line 4767 "cs-parser.jay"
7674
 
{
7675
 
                Error_SyntaxError (yyToken);
7676
 
                yyVal = null;
7677
 
          }
7678
 
 
7679
 
void case_726()
7680
 
#line 4831 "cs-parser.jay"
7681
 
{
7682
 
                  report.Error (1023, GetLocation (yyVals[0+yyTop]), "An embedded statement may not be a declaration or labeled statement");
7683
 
                  yyVal = null;
7684
 
          }
7685
 
 
7686
 
void case_727()
7687
 
#line 4836 "cs-parser.jay"
7688
 
{
7689
 
                  report.Error (1023, GetLocation (yyVals[0+yyTop]), "An embedded statement may not be a declaration or labeled statement");
7690
 
                  yyVal = null;
7691
 
          }
7692
 
 
7693
 
void case_728()
7694
 
#line 4841 "cs-parser.jay"
7695
 
{
7696
 
                Error_SyntaxError (yyToken);
7697
 
                yyVal = new EmptyStatement (GetLocation (yyVals[0+yyTop]));
7698
 
          }
7699
 
 
7700
 
void case_729()
7701
 
#line 4849 "cs-parser.jay"
7702
 
{
7703
 
                /* Uses lexer.Location because semicolon location is not kept in quick mode*/
7704
 
                yyVal = new EmptyStatement (lexer.Location);
7705
 
          }
7706
 
 
7707
 
void case_730()
7708
 
#line 4857 "cs-parser.jay"
7709
 
{
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);
7715
 
          }
7716
 
 
7717
 
void case_733()
7718
 
#line 4870 "cs-parser.jay"
7719
 
{
7720
 
                if (yyVals[-1+yyTop] is VarExpr)
7721
 
                        yyVals[-1+yyTop] = new SimpleName ("var", ((VarExpr) yyVals[-1+yyTop]).Location);
7722
 
          
7723
 
                yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
7724
 
          }
7725
 
 
7726
 
void case_734()
7727
 
#line 4886 "cs-parser.jay"
7728
 
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.*/
7734
 
                /* */
7735
 
 
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*/
7741
 
                /* Blah i;*/
7742
 
                
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);
7748
 
                        else
7749
 
                                yyVal = yyVals[-1+yyTop];
7750
 
                } else if (expr is ATypeNameExpression) {
7751
 
                        yyVal = new ComposedCast ((ATypeNameExpression)expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
7752
 
                } else {
7753
 
                        Error_ExpectingTypeName (expr);
7754
 
                        yyVal = null;
7755
 
                }
7756
 
          }
7757
 
 
7758
 
void case_735()
7759
 
#line 4916 "cs-parser.jay"
7760
 
{
7761
 
                ATypeNameExpression expr = yyVals[-1+yyTop] as ATypeNameExpression;
7762
 
 
7763
 
                if (expr != null) {
7764
 
                        yyVal = new ComposedCast (expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
7765
 
                } else {
7766
 
                        Error_ExpectingTypeName ((Expression)yyVals[-1+yyTop]);
7767
 
                        yyVal = expr;
7768
 
                }
7769
 
          }
7770
 
 
7771
 
void case_736()
7772
 
#line 4927 "cs-parser.jay"
7773
 
{
7774
 
                if (yyVals[0+yyTop] == null)
7775
 
                        yyVal = yyVals[-1+yyTop];
7776
 
                else
7777
 
                        yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
7778
 
          }
7779
 
 
7780
 
void case_739()
7781
 
#line 4942 "cs-parser.jay"
7782
 
{
7783
 
                Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report);
7784
 
                yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
7785
 
          }
7786
 
 
7787
 
void case_741()
7788
 
#line 4951 "cs-parser.jay"
7789
 
{
7790
 
                ((ComposedTypeSpecifier) yyVals[-1+yyTop]).Next = (ComposedTypeSpecifier) yyVals[0+yyTop];
7791
 
                yyVal = yyVals[-1+yyTop];
7792
 
          }
7793
 
 
7794
 
void case_744()
7795
 
#line 4967 "cs-parser.jay"
7796
 
{
7797
 
                if (async_block) {
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]));
7800
 
                }
7801
 
          }
7802
 
 
7803
 
void case_745()
7804
 
#line 4977 "cs-parser.jay"
7805
 
{
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);
7810
 
          }
7811
 
 
7812
 
void case_746()
7813
 
#line 4984 "cs-parser.jay"
7814
 
{
7815
 
                yyVal = current_variable;
7816
 
                current_variable = null;
7817
 
                lbag.AppendTo (yyVal, GetLocation (yyVals[0+yyTop]));
7818
 
          }
7819
 
 
7820
 
void case_747()
7821
 
#line 4990 "cs-parser.jay"
7822
 
{
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);
7827
 
          }
7828
 
 
7829
 
void case_748()
7830
 
#line 4997 "cs-parser.jay"
7831
 
{
7832
 
                if (current_variable.Initializer != null) {
7833
 
                        lbag.AddLocation (current_variable, GetLocation (yyVals[-6+yyTop]), savedLocation, GetLocation (yyVals[0+yyTop]));
7834
 
                } else {
7835
 
                        lbag.AddLocation (current_variable, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
7836
 
                }
7837
 
                yyVal = current_variable;;
7838
 
                current_variable = null;
7839
 
          }
7840
 
 
7841
 
void case_750()
7842
 
#line 5010 "cs-parser.jay"
7843
 
{
7844
 
                /* Redundant, but wont regress*/
7845
 
                report.Error (1525, lexer.Location, "Unexpected symbol }");
7846
 
                lexer.putback ('}');
7847
 
                yyVal = yyVals[0+yyTop];
7848
 
          }
7849
 
 
7850
 
void case_752()
7851
 
#line 5021 "cs-parser.jay"
7852
 
{
7853
 
                current_variable.Initializer = (Expression) yyVals[0+yyTop];
7854
 
                lbag.AppendTo (current_variable, GetLocation (yyVals[-1+yyTop]));
7855
 
          }
7856
 
 
7857
 
void case_753()
7858
 
#line 5026 "cs-parser.jay"
7859
 
{
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");
7865
 
                } else {
7866
 
                        Error_SyntaxError (yyToken);
7867
 
                        current_variable.Initializer = ErrorExpression.Create (0, lexer.Location,
7868
 
                                        "Syntax error");
7869
 
                }
7870
 
                lbag.AppendTo (current_variable, GetLocation (yyVals[-1+yyTop]));
7871
 
          }
7872
 
 
7873
 
void case_754()
7874
 
#line 5040 "cs-parser.jay"
7875
 
{
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");
7879
 
                } else {
7880
 
                        Error_SyntaxError (yyToken);
7881
 
                }
7882
 
          }
7883
 
 
7884
 
void case_758()
7885
 
#line 5058 "cs-parser.jay"
7886
 
{
7887
 
                foreach (var d in current_variable.Declarators) {
7888
 
                        if (d.Initializer == null)
7889
 
                                Error_MissingInitializer (d.Variable.Location);
7890
 
                }
7891
 
          }
7892
 
 
7893
 
void case_761()
7894
 
#line 5073 "cs-parser.jay"
7895
 
{
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]));
7902
 
          }
7903
 
 
7904
 
void case_762()
7905
 
#line 5082 "cs-parser.jay"
7906
 
{
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]));
7913
 
          }
7914
 
 
7915
 
void case_764()
7916
 
#line 5098 "cs-parser.jay"
7917
 
{
7918
 
                savedLocation = GetLocation (yyVals[-1+yyTop]);
7919
 
                current_variable.Initializer = (Expression) yyVals[0+yyTop];
7920
 
          }
7921
 
 
7922
 
void case_769()
7923
 
#line 5116 "cs-parser.jay"
7924
 
{
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]));
7931
 
          }
7932
 
 
7933
 
void case_771()
7934
 
#line 5129 "cs-parser.jay"
7935
 
{
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]));
7938
 
          }
7939
 
 
7940
 
void case_772()
7941
 
#line 5134 "cs-parser.jay"
7942
 
{
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]));            
7945
 
          }
7946
 
 
7947
 
void case_773()
7948
 
#line 5142 "cs-parser.jay"
7949
 
{
7950
 
                yyVal = yyVals[-1+yyTop];
7951
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
7952
 
          }
7953
 
 
7954
 
void case_775()
7955
 
#line 5148 "cs-parser.jay"
7956
 
{
7957
 
                yyVal = yyVals[-1+yyTop];
7958
 
                report.Error (1002, GetLocation (yyVals[0+yyTop]), "; expected");
7959
 
                lexer.putback ('}');
7960
 
          }
7961
 
 
7962
 
void case_778()
7963
 
#line 5166 "cs-parser.jay"
7964
 
{
7965
 
                ExpressionStatement s = yyVals[0+yyTop] as ExpressionStatement;
7966
 
                if (s == null) {
7967
 
                        Expression.Error_InvalidExpressionStatement (report, GetLocation (yyVals[0+yyTop]));
7968
 
                        yyVal = new StatementErrorExpression (yyVals[0+yyTop] as Expression);
7969
 
                } else {
7970
 
                        yyVal = new StatementExpression (s);
7971
 
                }
7972
 
          }
7973
 
 
7974
 
void case_779()
7975
 
#line 5179 "cs-parser.jay"
7976
 
{
7977
 
                Expression expr = (Expression) yyVals[0+yyTop];
7978
 
                ExpressionStatement s;
7979
 
 
7980
 
                s = new OptionalAssign (new SimpleName ("$retval", lexer.Location), expr, lexer.Location);
7981
 
                yyVal = new StatementExpression (s);
7982
 
          }
7983
 
 
7984
 
void case_780()
7985
 
#line 5187 "cs-parser.jay"
7986
 
{
7987
 
                Error_SyntaxError (yyToken);
7988
 
                yyVal = new EmptyStatement (GetLocation (yyVals[0+yyTop]));
7989
 
          }
7990
 
 
7991
 
void case_783()
7992
 
#line 5201 "cs-parser.jay"
7993
 
7994
 
                if (yyVals[0+yyTop] is EmptyStatement)
7995
 
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
7996
 
                
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]));
7999
 
          }
8000
 
 
8001
 
void case_784()
8002
 
#line 5210 "cs-parser.jay"
8003
 
{
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]));
8006
 
                
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]));
8011
 
          }
8012
 
 
8013
 
void case_785()
8014
 
#line 5220 "cs-parser.jay"
8015
 
{
8016
 
                Error_SyntaxError (yyToken);
8017
 
                
8018
 
                yyVal = new If ((BooleanExpression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
8019
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
8020
 
          }
8021
 
 
8022
 
void case_787()
8023
 
#line 5234 "cs-parser.jay"
8024
 
{
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]));
8028
 
          }
8029
 
 
8030
 
void case_788()
8031
 
#line 5240 "cs-parser.jay"
8032
 
{
8033
 
                Error_SyntaxError (yyToken);
8034
 
          
8035
 
                yyVal = new Switch ((Expression) yyVals[-1+yyTop], null, null, GetLocation (yyVals[-3+yyTop])); 
8036
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
8037
 
          }
8038
 
 
8039
 
void case_789()
8040
 
#line 5250 "cs-parser.jay"
8041
 
{
8042
 
                report.Warning (1522, 1, current_block.StartLocation, "Empty switch block"); 
8043
 
                yyVal = new List<SwitchSection> ();
8044
 
          }
8045
 
 
8046
 
void case_791()
8047
 
#line 5259 "cs-parser.jay"
8048
 
{
8049
 
                var sections = new List<SwitchSection> (4);
8050
 
 
8051
 
                sections.Add ((SwitchSection) yyVals[0+yyTop]);
8052
 
                yyVal = sections;
8053
 
          }
8054
 
 
8055
 
void case_792()
8056
 
#line 5266 "cs-parser.jay"
8057
 
{
8058
 
                var sections = (List<SwitchSection>) yyVals[-1+yyTop];
8059
 
 
8060
 
                sections.Add ((SwitchSection) yyVals[0+yyTop]);
8061
 
                yyVal = sections;
8062
 
          }
8063
 
 
8064
 
void case_793()
8065
 
#line 5273 "cs-parser.jay"
8066
 
{
8067
 
                Error_SyntaxError (yyToken);
8068
 
                yyVal = new List<SwitchSection> ();
8069
 
          }
8070
 
 
8071
 
void case_796()
8072
 
#line 5292 "cs-parser.jay"
8073
 
{
8074
 
                var labels = new List<SwitchLabel> (2);
8075
 
 
8076
 
                labels.Add ((SwitchLabel) yyVals[0+yyTop]);
8077
 
                yyVal = labels;
8078
 
          }
8079
 
 
8080
 
void case_797()
8081
 
#line 5299 "cs-parser.jay"
8082
 
{
8083
 
                var labels = (List<SwitchLabel>) (yyVals[-1+yyTop]);
8084
 
                labels.Add ((SwitchLabel) yyVals[0+yyTop]);
8085
 
 
8086
 
                yyVal = labels;
8087
 
          }
8088
 
 
8089
 
void case_798()
8090
 
#line 5309 "cs-parser.jay"
8091
 
{
8092
 
                yyVal = new SwitchLabel ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
8093
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8094
 
         }
8095
 
 
8096
 
void case_799()
8097
 
#line 5314 "cs-parser.jay"
8098
 
{
8099
 
                Error_SyntaxError (yyToken);
8100
 
                yyVal = new SwitchLabel ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
8101
 
          }
8102
 
 
8103
 
void case_805()
8104
 
#line 5333 "cs-parser.jay"
8105
 
{
8106
 
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8107
 
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8108
 
          
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]));
8111
 
          }
8112
 
 
8113
 
void case_806()
8114
 
#line 5341 "cs-parser.jay"
8115
 
{
8116
 
                Error_SyntaxError (yyToken);
8117
 
                
8118
 
                yyVal = new While ((BooleanExpression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
8119
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
8120
 
          }
8121
 
 
8122
 
void case_807()
8123
 
#line 5351 "cs-parser.jay"
8124
 
{
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]));
8127
 
          }
8128
 
 
8129
 
void case_808()
8130
 
#line 5356 "cs-parser.jay"
8131
 
{
8132
 
                Error_SyntaxError (yyToken);
8133
 
                yyVal = new Do ((Statement) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]));
8134
 
          }
8135
 
 
8136
 
void case_809()
8137
 
#line 5361 "cs-parser.jay"
8138
 
{
8139
 
                Error_SyntaxError (yyToken);
8140
 
          
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]));
8143
 
          }
8144
 
 
8145
 
void case_810()
8146
 
#line 5371 "cs-parser.jay"
8147
 
{
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);
8153
 
                yyVal = f;
8154
 
          }
8155
 
 
8156
 
void case_812()
8157
 
#line 5388 "cs-parser.jay"
8158
 
{
8159
 
                For f =  (For) yyVals[-2+yyTop];
8160
 
                f.Initializer = (Statement) yyVals[-1+yyTop];
8161
 
                lbag.AppendTo (f, GetLocation (yyVals[0+yyTop]));
8162
 
                yyVal = f;
8163
 
          }
8164
 
 
8165
 
void case_814()
8166
 
#line 5398 "cs-parser.jay"
8167
 
{
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]));
8173
 
        }
8174
 
 
8175
 
void case_815()
8176
 
#line 5409 "cs-parser.jay"
8177
 
{
8178
 
                For f =  (For) yyVals[-2+yyTop];
8179
 
                f.Condition = (BooleanExpression) yyVals[-1+yyTop];
8180
 
                lbag.AppendTo (f, GetLocation (yyVals[0+yyTop]));
8181
 
                yyVal = f;
8182
 
          }
8183
 
 
8184
 
void case_817()
8185
 
#line 5420 "cs-parser.jay"
8186
 
{
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]));
8192
 
        }
8193
 
 
8194
 
void case_818()
8195
 
#line 5432 "cs-parser.jay"
8196
 
{
8197
 
                For f =  (For) yyVals[-3+yyTop];
8198
 
                f.Iterator = (Statement) yyVals[-2+yyTop];
8199
 
                
8200
 
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8201
 
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8202
 
          
8203
 
                f.Statement = (Statement) yyVals[0+yyTop];
8204
 
                lbag.AppendTo (f, GetLocation (yyVals[-1+yyTop]));
8205
 
 
8206
 
                yyVal = end_block (GetLocation (yyVals[-1+yyTop]));
8207
 
          }
8208
 
 
8209
 
void case_819()
8210
 
#line 5445 "cs-parser.jay"
8211
 
{
8212
 
                Error_SyntaxError (yyToken);
8213
 
                yyVal = end_block (current_block.StartLocation);
8214
 
          }
8215
 
 
8216
 
void case_822()
8217
 
#line 5458 "cs-parser.jay"
8218
 
{
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);
8223
 
          }
8224
 
 
8225
 
void case_823()
8226
 
#line 5465 "cs-parser.jay"
8227
 
{
8228
 
                yyVal = current_variable;
8229
 
                current_variable = null;
8230
 
          }
8231
 
 
8232
 
void case_831()
8233
 
#line 5489 "cs-parser.jay"
8234
 
{
8235
 
                var sl = yyVals[-2+yyTop] as StatementList;
8236
 
                if (sl == null) {
8237
 
                        sl = new StatementList ((Statement) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop]);
8238
 
                        lbag.AddStatement (sl, GetLocation (yyVals[-1+yyTop]));
8239
 
                } else {
8240
 
                        sl.Add ((Statement) yyVals[0+yyTop]);
8241
 
                        lbag.AppendTo (sl, GetLocation (yyVals[-1+yyTop]));
8242
 
                        
8243
 
                }
8244
 
                        
8245
 
                yyVal = sl;
8246
 
          }
8247
 
 
8248
 
void case_832()
8249
 
#line 5506 "cs-parser.jay"
8250
 
{
8251
 
                report.Error (230, GetLocation (yyVals[-3+yyTop]), "Type and identifier are both required in a foreach statement");
8252
 
 
8253
 
                start_block (GetLocation (yyVals[-2+yyTop]));
8254
 
                current_block.IsCompilerGenerated = true;
8255
 
                
8256
 
                Foreach f = new Foreach ((Expression) yyVals[-1+yyTop], null, null, null, null, GetLocation (yyVals[-3+yyTop]));
8257
 
                current_block.AddStatement (f);
8258
 
                
8259
 
                lbag.AddStatement (f, GetLocation (yyVals[-2+yyTop]));
8260
 
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8261
 
          }
8262
 
 
8263
 
void case_833()
8264
 
#line 5519 "cs-parser.jay"
8265
 
{
8266
 
                Error_SyntaxError (yyToken);
8267
 
        
8268
 
                start_block (GetLocation (yyVals[-3+yyTop]));
8269
 
                current_block.IsCompilerGenerated = true;
8270
 
                
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);
8274
 
                
8275
 
                Foreach f = new Foreach ((Expression) yyVals[-2+yyTop], li, null, null, null, GetLocation (yyVals[-4+yyTop]));
8276
 
                current_block.AddStatement (f);
8277
 
                
8278
 
                lbag.AddStatement (f, GetLocation (yyVals[-3+yyTop]));
8279
 
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8280
 
          }
8281
 
 
8282
 
void case_834()
8283
 
#line 5536 "cs-parser.jay"
8284
 
{
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);
8290
 
                yyVal = li;
8291
 
          }
8292
 
 
8293
 
void case_835()
8294
 
#line 5545 "cs-parser.jay"
8295
 
{
8296
 
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8297
 
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8298
 
                
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]));
8302
 
                
8303
 
                yyVal = f;
8304
 
          }
8305
 
 
8306
 
void case_836()
8307
 
#line 5556 "cs-parser.jay"
8308
 
{
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;
8313
 
                
8314
 
                Foreach f = new Foreach ((Expression) yyVals[-2+yyTop], li, null, null, null, GetLocation (yyVals[-4+yyTop]));
8315
 
                current_block.AddStatement (f);
8316
 
                
8317
 
                lbag.AddStatement (f, GetLocation (yyVals[-3+yyTop]));
8318
 
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8319
 
          }
8320
 
 
8321
 
void case_837()
8322
 
#line 5569 "cs-parser.jay"
8323
 
{
8324
 
                Foreach f = new Foreach ((Expression) yyVals[-1+yyTop], null, null, null, null, GetLocation (yyVals[-3+yyTop]));
8325
 
                current_block.AddStatement (f);
8326
 
                
8327
 
                lbag.AddStatement (f, GetLocation (yyVals[-2+yyTop]));
8328
 
                yyVal = f;
8329
 
          }
8330
 
 
8331
 
void case_844()
8332
 
#line 5589 "cs-parser.jay"
8333
 
{
8334
 
                yyVal = new Break (GetLocation (yyVals[-1+yyTop]));
8335
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
8336
 
          }
8337
 
 
8338
 
void case_845()
8339
 
#line 5597 "cs-parser.jay"
8340
 
{
8341
 
                yyVal = new Continue (GetLocation (yyVals[-1+yyTop]));
8342
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
8343
 
          }
8344
 
 
8345
 
void case_846()
8346
 
#line 5602 "cs-parser.jay"
8347
 
{
8348
 
                Error_SyntaxError (yyToken);
8349
 
                yyVal = new Continue (GetLocation (yyVals[-1+yyTop]));
8350
 
          }
8351
 
 
8352
 
void case_847()
8353
 
#line 5610 "cs-parser.jay"
8354
 
{
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]));
8358
 
          }
8359
 
 
8360
 
void case_848()
8361
 
#line 5616 "cs-parser.jay"
8362
 
{
8363
 
                yyVal = new GotoCase ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
8364
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
8365
 
          }
8366
 
 
8367
 
void case_849()
8368
 
#line 5621 "cs-parser.jay"
8369
 
{
8370
 
                yyVal = new GotoDefault (GetLocation (yyVals[-2+yyTop]));
8371
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
8372
 
          }
8373
 
 
8374
 
void case_850()
8375
 
#line 5629 "cs-parser.jay"
8376
 
{
8377
 
                yyVal = new Return ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
8378
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
8379
 
          }
8380
 
 
8381
 
void case_851()
8382
 
#line 5634 "cs-parser.jay"
8383
 
{
8384
 
                Error_SyntaxError (yyToken);
8385
 
                yyVal = new Return (null, GetLocation (yyVals[-1+yyTop]));
8386
 
          }
8387
 
 
8388
 
void case_852()
8389
 
#line 5642 "cs-parser.jay"
8390
 
{
8391
 
                yyVal = new Throw ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
8392
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
8393
 
          }
8394
 
 
8395
 
void case_853()
8396
 
#line 5647 "cs-parser.jay"
8397
 
{
8398
 
                Error_SyntaxError (yyToken);
8399
 
                yyVal = new Throw (null, GetLocation (yyVals[-1+yyTop]));
8400
 
          }
8401
 
 
8402
 
void case_854()
8403
 
#line 5655 "cs-parser.jay"
8404
 
{
8405
 
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
8406
 
                string s = lt.Value;
8407
 
                if (s != "yield"){
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");
8413
 
                }
8414
 
                
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]));
8418
 
          }
8419
 
 
8420
 
void case_855()
8421
 
#line 5671 "cs-parser.jay"
8422
 
{
8423
 
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
8424
 
                string s = lt.Value;
8425
 
                if (s != "yield"){
8426
 
                        report.Error (1003, lt.Location, "; expected");
8427
 
                } else if (lang_version == LanguageVersion.ISO_1){
8428
 
                        FeatureIsNotAvailable (lt.Location, "iterators");
8429
 
                }
8430
 
                
8431
 
                current_block.Explicit.RegisterIteratorYield ();
8432
 
                yyVal = new YieldBreak (lt.Location);
8433
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
8434
 
          }
8435
 
 
8436
 
void case_859()
8437
 
#line 5697 "cs-parser.jay"
8438
 
{
8439
 
                yyVal = new TryFinally ((Statement) yyVals[-2+yyTop], (Block) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
8440
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]));
8441
 
          }
8442
 
 
8443
 
void case_860()
8444
 
#line 5702 "cs-parser.jay"
8445
 
{
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]));
8449
 
          }
8450
 
 
8451
 
void case_861()
8452
 
#line 5708 "cs-parser.jay"
8453
 
{
8454
 
                Error_SyntaxError (1524, yyToken);
8455
 
                yyVal = new TryCatch ((Block) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]), false);
8456
 
          }
8457
 
 
8458
 
void case_862()
8459
 
#line 5716 "cs-parser.jay"
8460
 
{
8461
 
                var l = new List<Catch> (2);
8462
 
 
8463
 
                l.Add ((Catch) yyVals[0+yyTop]);
8464
 
                yyVal = l;
8465
 
          }
8466
 
 
8467
 
void case_863()
8468
 
#line 5723 "cs-parser.jay"
8469
 
{
8470
 
                var l = (List<Catch>) yyVals[-1+yyTop];
8471
 
                
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");
8475
 
                }
8476
 
                
8477
 
                l.Add (c);
8478
 
                yyVal = l;
8479
 
          }
8480
 
 
8481
 
void case_867()
8482
 
#line 5747 "cs-parser.jay"
8483
 
{
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];
8487
 
 
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);
8492
 
                }
8493
 
 
8494
 
                lbag.AddLocation (c, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
8495
 
                yyVal = c;
8496
 
          }
8497
 
 
8498
 
void case_869()
8499
 
#line 5766 "cs-parser.jay"
8500
 
{
8501
 
                if (yyToken == Token.CLOSE_PARENS) {
8502
 
                        report.Error (1015, lexer.Location,
8503
 
                                "A type that derives from `System.Exception', `object', or `string' expected");
8504
 
                } else {
8505
 
                        Error_SyntaxError (yyToken);
8506
 
                }
8507
 
                
8508
 
                yyVal = new Catch (null, GetLocation (yyVals[-2+yyTop]));
8509
 
          }
8510
 
 
8511
 
void case_872()
8512
 
#line 5794 "cs-parser.jay"
8513
 
{
8514
 
                if (!settings.Unsafe)
8515
 
                        Error_UnsafeCodeNotAllowed (GetLocation (yyVals[0+yyTop]));
8516
 
          }
8517
 
 
8518
 
void case_874()
8519
 
#line 5804 "cs-parser.jay"
8520
 
{
8521
 
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8522
 
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8523
 
          
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]));
8526
 
          }
8527
 
 
8528
 
void case_875()
8529
 
#line 5812 "cs-parser.jay"
8530
 
{
8531
 
                Error_SyntaxError (yyToken);
8532
 
 
8533
 
                yyVal = new Lock ((Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
8534
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
8535
 
          }
8536
 
 
8537
 
void case_876()
8538
 
#line 5822 "cs-parser.jay"
8539
 
{
8540
 
            start_block (GetLocation (yyVals[-2+yyTop]));
8541
 
            
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);
8547
 
          }
8548
 
 
8549
 
void case_877()
8550
 
#line 5832 "cs-parser.jay"
8551
 
{
8552
 
                yyVal = current_variable;
8553
 
                current_variable = null;
8554
 
          }
8555
 
 
8556
 
void case_878()
8557
 
#line 5837 "cs-parser.jay"
8558
 
{
8559
 
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8560
 
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8561
 
          
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]));
8566
 
          }
8567
 
 
8568
 
void case_879()
8569
 
#line 5850 "cs-parser.jay"
8570
 
{
8571
 
            start_block (GetLocation (yyVals[-2+yyTop]));
8572
 
            
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);
8578
 
          }
8579
 
 
8580
 
void case_880()
8581
 
#line 5860 "cs-parser.jay"
8582
 
{
8583
 
                yyVal = current_variable;         
8584
 
                current_variable = null;
8585
 
          }
8586
 
 
8587
 
void case_881()
8588
 
#line 5865 "cs-parser.jay"
8589
 
{
8590
 
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8591
 
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8592
 
          
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]));
8597
 
          }
8598
 
 
8599
 
void case_882()
8600
 
#line 5875 "cs-parser.jay"
8601
 
{
8602
 
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8603
 
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8604
 
          
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]));
8607
 
          }
8608
 
 
8609
 
void case_883()
8610
 
#line 5883 "cs-parser.jay"
8611
 
{
8612
 
                Error_SyntaxError (yyToken);
8613
 
                
8614
 
                yyVal = new Using ((Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
8615
 
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
8616
 
          }
8617
 
 
8618
 
void case_885()
8619
 
#line 5894 "cs-parser.jay"
8620
 
{
8621
 
                /* It has to be here for the parent to safely restore artificial block*/
8622
 
                Error_SyntaxError (yyToken);
8623
 
          }
8624
 
 
8625
 
void case_887()
8626
 
#line 5906 "cs-parser.jay"
8627
 
{
8628
 
                current_variable.Initializer = (Expression) yyVals[0+yyTop];
8629
 
                lbag.AppendTo (current_variable, GetLocation (yyVals[-1+yyTop]));
8630
 
                yyVal = current_variable;
8631
 
          }
8632
 
 
8633
 
void case_888()
8634
 
#line 5918 "cs-parser.jay"
8635
 
{
8636
 
                lexer.query_parsing = false;
8637
 
                        
8638
 
                Linq.AQueryClause from = yyVals[-1+yyTop] as Linq.AQueryClause;
8639
 
                        
8640
 
                from.Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
8641
 
                yyVal = from;
8642
 
                
8643
 
                current_block.SetEndLocation (lexer.Location);
8644
 
                current_block = current_block.Parent;
8645
 
          }
8646
 
 
8647
 
void case_889()
8648
 
#line 5930 "cs-parser.jay"
8649
 
{
8650
 
                Linq.AQueryClause from = yyVals[-1+yyTop] as Linq.AQueryClause;
8651
 
                        
8652
 
                from.Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
8653
 
                yyVal = from;
8654
 
                
8655
 
                current_block.SetEndLocation (lexer.Location);
8656
 
                current_block = current_block.Parent;
8657
 
          }
8658
 
 
8659
 
void case_890()
8660
 
#line 5941 "cs-parser.jay"
8661
 
{
8662
 
                lexer.query_parsing = false;
8663
 
                yyVal = yyVals[-1+yyTop];
8664
 
 
8665
 
                current_block.SetEndLocation (lexer.Location);
8666
 
                current_block = current_block.Parent;
8667
 
          }
8668
 
 
8669
 
void case_891()
8670
 
#line 5948 "cs-parser.jay"
8671
 
{
8672
 
                yyVal = yyVals[-1+yyTop];
8673
 
                current_block.SetEndLocation (lexer.Location);
8674
 
                current_block = current_block.Parent;
8675
 
          }
8676
 
 
8677
 
void case_892()
8678
 
#line 5957 "cs-parser.jay"
8679
 
{
8680
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
8681
 
          
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);
8687
 
          }
8688
 
 
8689
 
void case_893()
8690
 
#line 5967 "cs-parser.jay"
8691
 
{
8692
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
8693
 
          
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]
8698
 
                };
8699
 
                lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
8700
 
                yyVal = new Linq.QueryExpression (start);
8701
 
          }
8702
 
 
8703
 
void case_894()
8704
 
#line 5982 "cs-parser.jay"
8705
 
{
8706
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
8707
 
          
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);
8713
 
          }
8714
 
 
8715
 
void case_895()
8716
 
#line 5992 "cs-parser.jay"
8717
 
{
8718
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
8719
 
          
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]
8724
 
                };
8725
 
                lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
8726
 
                yyVal = new Linq.QueryExpression (start);
8727
 
          }
8728
 
 
8729
 
void case_897()
8730
 
#line 6011 "cs-parser.jay"
8731
 
{
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]));
8735
 
                
8736
 
                current_block.SetEndLocation (lexer.Location);
8737
 
                current_block = current_block.Parent;
8738
 
                ((Linq.QueryBlock)current_block).AddRangeVariable (sn);
8739
 
 
8740
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
8741
 
          }
8742
 
 
8743
 
void case_899()
8744
 
#line 6027 "cs-parser.jay"
8745
 
{
8746
 
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
8747
 
                var sn = new Linq.RangeVariable (lt.Value, lt.Location);
8748
 
 
8749
 
                yyVal = new Linq.SelectMany ((Linq.QueryBlock)current_block, sn, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-5+yyTop])) {
8750
 
                        IdentifierType = (FullNamedExpression)yyVals[-4+yyTop]
8751
 
                };
8752
 
                
8753
 
                current_block.SetEndLocation (lexer.Location);
8754
 
                current_block = current_block.Parent;
8755
 
                
8756
 
                ((Linq.QueryBlock)current_block).AddRangeVariable (sn);
8757
 
                
8758
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
8759
 
          }
8760
 
 
8761
 
void case_900()
8762
 
#line 6046 "cs-parser.jay"
8763
 
{
8764
 
                Linq.AQueryClause head = (Linq.AQueryClause)yyVals[-1+yyTop];
8765
 
                
8766
 
                if (yyVals[0+yyTop] != null)
8767
 
                        head.Next = (Linq.AQueryClause)yyVals[0+yyTop];
8768
 
                                
8769
 
                if (yyVals[-2+yyTop] != null) {
8770
 
                        Linq.AQueryClause clause = (Linq.AQueryClause)yyVals[-2+yyTop];
8771
 
                        clause.Tail.Next = head;
8772
 
                        head = clause;
8773
 
                }
8774
 
                
8775
 
                yyVal = head;
8776
 
          }
8777
 
 
8778
 
void case_901()
8779
 
#line 6061 "cs-parser.jay"
8780
 
{
8781
 
                Linq.AQueryClause head = (Linq.AQueryClause)yyVals[0+yyTop];
8782
 
 
8783
 
                if (yyVals[-1+yyTop] != null) {
8784
 
                        Linq.AQueryClause clause = (Linq.AQueryClause)yyVals[-1+yyTop];
8785
 
                        clause.Tail.Next = head;
8786
 
                        head = clause;
8787
 
                }
8788
 
                
8789
 
                yyVal = head;
8790
 
          }
8791
 
 
8792
 
void case_903()
8793
 
#line 6074 "cs-parser.jay"
8794
 
{
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];
8797
 
          }
8798
 
 
8799
 
void case_904()
8800
 
#line 6079 "cs-parser.jay"
8801
 
{
8802
 
                Error_SyntaxError (yyToken);
8803
 
                yyVal = null;
8804
 
          }
8805
 
 
8806
 
void case_906()
8807
 
#line 6091 "cs-parser.jay"
8808
 
{
8809
 
                yyVal = new Linq.Select ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
8810
 
 
8811
 
                current_block.SetEndLocation (lexer.Location);
8812
 
                current_block = current_block.Parent;
8813
 
          }
8814
 
 
8815
 
void case_907()
8816
 
#line 6098 "cs-parser.jay"
8817
 
{
8818
 
                if (linq_clause_blocks == null)
8819
 
                        linq_clause_blocks = new Stack<Linq.QueryBlock> ();
8820
 
                        
8821
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
8822
 
                linq_clause_blocks.Push ((Linq.QueryBlock)current_block);
8823
 
          }
8824
 
 
8825
 
void case_908()
8826
 
#line 6106 "cs-parser.jay"
8827
 
{
8828
 
                current_block.SetEndLocation (lexer.Location);
8829
 
                current_block = current_block.Parent;
8830
 
          
8831
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
8832
 
          }
8833
 
 
8834
 
void case_909()
8835
 
#line 6113 "cs-parser.jay"
8836
 
{
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]));
8839
 
                
8840
 
                current_block.SetEndLocation (lexer.Location);
8841
 
                current_block = current_block.Parent;
8842
 
          }
8843
 
 
8844
 
void case_911()
8845
 
#line 6125 "cs-parser.jay"
8846
 
{
8847
 
                ((Linq.AQueryClause)yyVals[-1+yyTop]).Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
8848
 
                yyVal = yyVals[-1+yyTop];
8849
 
          }
8850
 
 
8851
 
void case_918()
8852
 
#line 6145 "cs-parser.jay"
8853
 
{
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]));
8858
 
                
8859
 
                current_block.SetEndLocation (lexer.Location);
8860
 
                current_block = current_block.Parent;
8861
 
                
8862
 
                ((Linq.QueryBlock)current_block).AddRangeVariable (sn);
8863
 
          }
8864
 
 
8865
 
void case_920()
8866
 
#line 6164 "cs-parser.jay"
8867
 
{
8868
 
                yyVal = new Linq.Where ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
8869
 
 
8870
 
                current_block.SetEndLocation (lexer.Location);
8871
 
                current_block = current_block.Parent;
8872
 
          }
8873
 
 
8874
 
void case_921()
8875
 
#line 6174 "cs-parser.jay"
8876
 
{
8877
 
                if (linq_clause_blocks == null)
8878
 
                        linq_clause_blocks = new Stack<Linq.QueryBlock> ();
8879
 
                        
8880
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
8881
 
                linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
8882
 
          }
8883
 
 
8884
 
void case_922()
8885
 
#line 6182 "cs-parser.jay"
8886
 
{
8887
 
                current_block.SetEndLocation (lexer.Location);
8888
 
                current_block = current_block.Parent;
8889
 
 
8890
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
8891
 
                linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
8892
 
          }
8893
 
 
8894
 
void case_923()
8895
 
#line 6190 "cs-parser.jay"
8896
 
{
8897
 
                current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
8898
 
                current_block.SetEndLocation (lexer.Location);
8899
 
                current_block = current_block.Parent;
8900
 
 
8901
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
8902
 
          }
8903
 
 
8904
 
void case_924()
8905
 
#line 6198 "cs-parser.jay"
8906
 
{
8907
 
                current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
8908
 
                current_block.SetEndLocation (lexer.Location);
8909
 
          
8910
 
                var outer_selector = linq_clause_blocks.Pop ();
8911
 
                var block = linq_clause_blocks.Pop ();
8912
 
 
8913
 
                var lt = (Tokenizer.LocatedToken) yyVals[-10+yyTop];    
8914
 
                var sn = new Linq.RangeVariable (lt.Value, lt.Location);
8915
 
                Linq.RangeVariable into;
8916
 
                
8917
 
                if (yyVals[0+yyTop] == null) {
8918
 
                        into = sn;
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]));
8921
 
                } else {
8922
 
                        /**/
8923
 
                        /* Set equals right side parent to beginning of linq query, it is not accessible therefore cannot cause name collisions*/
8924
 
                        /**/
8925
 
                        var parent = block.Parent;
8926
 
                        while (parent is Linq.QueryBlock) {
8927
 
                                parent = parent.Parent;
8928
 
                        }
8929
 
                        current_block.Parent = parent;
8930
 
                        
8931
 
                        ((Linq.QueryBlock)current_block).AddRangeVariable (sn);
8932
 
                
8933
 
                        lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
8934
 
                        into = new Linq.RangeVariable (lt.Value, lt.Location);
8935
 
 
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 ());
8938
 
                }
8939
 
 
8940
 
                current_block = block.Parent;
8941
 
                ((Linq.QueryBlock)current_block).AddRangeVariable (into);
8942
 
          }
8943
 
 
8944
 
void case_925()
8945
 
#line 6236 "cs-parser.jay"
8946
 
{
8947
 
                if (linq_clause_blocks == null)
8948
 
                        linq_clause_blocks = new Stack<Linq.QueryBlock> ();
8949
 
                        
8950
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
8951
 
                linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
8952
 
          }
8953
 
 
8954
 
void case_926()
8955
 
#line 6244 "cs-parser.jay"
8956
 
{
8957
 
                current_block.SetEndLocation (lexer.Location);
8958
 
                current_block = current_block.Parent;
8959
 
 
8960
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
8961
 
                linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
8962
 
          }
8963
 
 
8964
 
void case_927()
8965
 
#line 6252 "cs-parser.jay"
8966
 
{
8967
 
                current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
8968
 
                current_block.SetEndLocation (lexer.Location);
8969
 
                current_block = current_block.Parent;
8970
 
 
8971
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
8972
 
          }
8973
 
 
8974
 
void case_928()
8975
 
#line 6260 "cs-parser.jay"
8976
 
{
8977
 
                current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
8978
 
                current_block.SetEndLocation (lexer.Location);
8979
 
          
8980
 
                var outer_selector = linq_clause_blocks.Pop ();
8981
 
                var block = linq_clause_blocks.Pop ();
8982
 
                
8983
 
                var lt = (Tokenizer.LocatedToken) yyVals[-10+yyTop];
8984
 
                var sn = new Linq.RangeVariable (lt.Value, lt.Location);
8985
 
                Linq.RangeVariable into;
8986
 
                
8987
 
                if (yyVals[0+yyTop] == null) {
8988
 
                        into = sn;              
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]
8991
 
                        };
8992
 
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-10+yyTop]), GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]));
8993
 
                } else {
8994
 
                        /**/
8995
 
                        /* Set equals right side parent to beginning of linq query, it is not accessible therefore cannot cause name collisions*/
8996
 
                        /**/
8997
 
                        var parent = block.Parent;
8998
 
                        while (parent is Linq.QueryBlock) {
8999
 
                                parent = parent.Parent;
9000
 
                        }
9001
 
                        current_block.Parent = parent;
9002
 
                
9003
 
                        ((Linq.QueryBlock)current_block).AddRangeVariable (sn);
9004
 
                
9005
 
                        lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
9006
 
                        into = new Linq.RangeVariable (lt.Value, lt.Location); /* TODO:*/
9007
 
                        
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]
9010
 
                        };                      
9011
 
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-10+yyTop]), GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]), opt_intoStack.Pop ());
9012
 
                }
9013
 
                
9014
 
                current_block = block.Parent;
9015
 
                ((Linq.QueryBlock)current_block).AddRangeVariable (into);               
9016
 
          }
9017
 
 
9018
 
void case_930()
9019
 
#line 6306 "cs-parser.jay"
9020
 
{
9021
 
                opt_intoStack.Push (GetLocation (yyVals[-1+yyTop]));
9022
 
                yyVal = yyVals[0+yyTop];
9023
 
          }
9024
 
 
9025
 
void case_932()
9026
 
#line 6318 "cs-parser.jay"
9027
 
{
9028
 
                current_block.SetEndLocation (lexer.Location);
9029
 
                current_block = current_block.Parent;
9030
 
          
9031
 
                yyVal = yyVals[0+yyTop];
9032
 
          }
9033
 
 
9034
 
void case_934()
9035
 
#line 6329 "cs-parser.jay"
9036
 
{
9037
 
                current_block.SetEndLocation (lexer.Location);
9038
 
                current_block = current_block.Parent;
9039
 
          
9040
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
9041
 
          }
9042
 
 
9043
 
void case_935()
9044
 
#line 6336 "cs-parser.jay"
9045
 
{
9046
 
                ((Linq.AQueryClause)yyVals[-3+yyTop]).Next = (Linq.AQueryClause)yyVals[0+yyTop];
9047
 
                yyVal = yyVals[-3+yyTop];
9048
 
          }
9049
 
 
9050
 
void case_937()
9051
 
#line 6345 "cs-parser.jay"
9052
 
{
9053
 
                current_block.SetEndLocation (lexer.Location);
9054
 
                current_block = current_block.Parent;
9055
 
          
9056
 
                current_block = new Linq.QueryBlock ((Linq.QueryBlock) current_block, lexer.Location);   
9057
 
         }
9058
 
 
9059
 
void case_938()
9060
 
#line 6352 "cs-parser.jay"
9061
 
{
9062
 
                ((Linq.AQueryClause)yyVals[-3+yyTop]).Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
9063
 
                yyVal = yyVals[-3+yyTop];
9064
 
         }
9065
 
 
9066
 
void case_940()
9067
 
#line 6364 "cs-parser.jay"
9068
 
{
9069
 
                yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);      
9070
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
9071
 
          }
9072
 
 
9073
 
void case_941()
9074
 
#line 6369 "cs-parser.jay"
9075
 
{
9076
 
                yyVal = new Linq.OrderByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);     
9077
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
9078
 
          }
9079
 
 
9080
 
void case_943()
9081
 
#line 6381 "cs-parser.jay"
9082
 
{
9083
 
                yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);       
9084
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
9085
 
          }
9086
 
 
9087
 
void case_944()
9088
 
#line 6386 "cs-parser.jay"
9089
 
{
9090
 
                yyVal = new Linq.ThenByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);      
9091
 
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
9092
 
          }
9093
 
 
9094
 
void case_946()
9095
 
#line 6396 "cs-parser.jay"
9096
 
{
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.*/
9100
 
 
9101
 
                current_block.SetEndLocation (GetLocation (yyVals[-1+yyTop]));
9102
 
                current_block = current_block.Parent;
9103
 
        
9104
 
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
9105
 
                
9106
 
                if (linq_clause_blocks == null)
9107
 
                        linq_clause_blocks = new Stack<Linq.QueryBlock> ();
9108
 
                        
9109
 
                linq_clause_blocks.Push ((Linq.QueryBlock) current_block);              
9110
 
          }
9111
 
 
9112
 
void case_947()
9113
 
#line 6412 "cs-parser.jay"
9114
 
{
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]
9120
 
                };
9121
 
          }
9122
 
 
9123
 
void case_950()
9124
 
#line 6439 "cs-parser.jay"
9125
 
9126
 
                current_container = current_type = new Class (current_container, new MemberName ("<InteractiveExpressionClass>"), Modifiers.PUBLIC, null);
9127
 
 
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);
9131
 
 
9132
 
                ParametersCompiled pars = new ParametersCompiled (mpar);
9133
 
                var mods = Modifiers.PUBLIC | Modifiers.STATIC;
9134
 
                if (settings.Unsafe)
9135
 
                        mods |= Modifiers.UNSAFE;
9136
 
 
9137
 
                current_local_parameters = pars;
9138
 
                Method method = new Method (
9139
 
                        current_type,
9140
 
                        new TypeExpression (compiler.BuiltinTypes.Void, Location.Null),
9141
 
                        mods,
9142
 
                        new MemberName ("Host"),
9143
 
                        pars,
9144
 
                        null /* attributes */);
9145
 
                        
9146
 
                current_type.AddMember (method);                        
9147
 
 
9148
 
                oob_stack.Push (method);
9149
 
                ++lexer.parsing_block;
9150
 
                start_block (lexer.Location);
9151
 
          }
9152
 
 
9153
 
void case_951()
9154
 
#line 6467 "cs-parser.jay"
9155
 
{
9156
 
                --lexer.parsing_block;
9157
 
                Method method = (Method) oob_stack.Pop ();
9158
 
 
9159
 
                method.Block = (ToplevelBlock) end_block(lexer.Location);
9160
 
 
9161
 
                InteractiveResult = (Class) pop_current_class ();
9162
 
                current_local_parameters = null;
9163
 
          }
9164
 
 
9165
 
void case_961()
9166
 
#line 6510 "cs-parser.jay"
9167
 
{
9168
 
                module.DocumentationBuilder.ParsedBuiltinType = (TypeExpression)yyVals[-1+yyTop];
9169
 
                module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
9170
 
                yyVal = null;
9171
 
          }
9172
 
 
9173
 
void case_962()
9174
 
#line 6516 "cs-parser.jay"
9175
 
{
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);
9180
 
          }
9181
 
 
9182
 
void case_965()
9183
 
#line 6531 "cs-parser.jay"
9184
 
{
9185
 
                module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[-1+yyTop];
9186
 
                yyVal = new MemberName ((MemberName) yyVals[-6+yyTop], MemberCache.IndexerNameAlias, Location.Null);
9187
 
          }
9188
 
 
9189
 
void case_966()
9190
 
#line 6536 "cs-parser.jay"
9191
 
{
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;
9196
 
                yyVal = null;
9197
 
          }
9198
 
 
9199
 
void case_967()
9200
 
#line 6544 "cs-parser.jay"
9201
 
{
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;
9206
 
                yyVal = null;
9207
 
          }
9208
 
 
9209
 
void case_968()
9210
 
#line 6552 "cs-parser.jay"
9211
 
{
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];
9215
 
                yyVal = null;
9216
 
          }
9217
 
 
9218
 
void case_976()
9219
 
#line 6590 "cs-parser.jay"
9220
 
{
9221
 
                var parameters = new List<DocumentationParameter> ();
9222
 
                parameters.Add ((DocumentationParameter) yyVals[0+yyTop]);
9223
 
                yyVal = parameters;
9224
 
          }
9225
 
 
9226
 
void case_977()
9227
 
#line 6596 "cs-parser.jay"
9228
 
{
9229
 
                var parameters = yyVals[-2+yyTop] as List<DocumentationParameter>;
9230
 
                parameters.Add ((DocumentationParameter) yyVals[0+yyTop]);
9231
 
                yyVal = parameters;
9232
 
          }
9233
 
 
9234
 
void case_978()
9235
 
#line 6605 "cs-parser.jay"
9236
 
{
9237
 
                if (yyVals[-1+yyTop] != null)
9238
 
                        yyVal = new DocumentationParameter ((Parameter.Modifier) yyVals[-1+yyTop], (FullNamedExpression) yyVals[0+yyTop]);
9239
 
                else
9240
 
                        yyVal = new DocumentationParameter ((FullNamedExpression) yyVals[0+yyTop]);
9241
 
          }
9242
 
 
9243
 
#line default
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,
9343
 
  };
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,
9443
 
  };
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,
9598
 
  };
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,
9645
 
  };
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,
9800
 
  };
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,
9955
 
  };
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,
10002
 
  };
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,
11360
 
  };
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,
12718
 
  };
12719
 
 
12720
 
#line 6614 "cs-parser.jay"
12721
 
 
12722
 
// <summary>
12723
 
//  A class used to hold info about an operator declarator
12724
 
// </summary>
12725
 
class OperatorDeclaration {
12726
 
        public readonly Operator.OpType optype;
12727
 
        public readonly FullNamedExpression ret_type;
12728
 
        public readonly Location location;
12729
 
 
12730
 
        public OperatorDeclaration (Operator.OpType op, FullNamedExpression ret_type, Location location)
12731
 
        {
12732
 
                optype = op;
12733
 
                this.ret_type = ret_type;
12734
 
                this.location = location;
12735
 
        }
12736
 
}
12737
 
 
12738
 
void Error_ExpectingTypeName (Expression expr)
12739
 
{
12740
 
        if (expr is Invocation){
12741
 
                report.Error (1002, expr.Location, "Expecting `;'");
12742
 
        } else {
12743
 
                Expression.Error_InvalidExpressionStatement (report, expr.Location);
12744
 
        }
12745
 
}
12746
 
 
12747
 
void Error_ParameterModifierNotValid (string modifier, Location loc)
12748
 
{
12749
 
        report.Error (631, loc, "The parameter modifier `{0}' is not valid in this context",
12750
 
                                      modifier);
12751
 
}
12752
 
 
12753
 
void Error_DuplicateParameterModifier (Location loc, Parameter.Modifier mod)
12754
 
{
12755
 
        report.Error (1107, loc, "Duplicate parameter modifier `{0}'",
12756
 
                Parameter.GetModifierSignature (mod));
12757
 
}
12758
 
 
12759
 
void Error_TypeExpected (Location loc)
12760
 
{
12761
 
        report.Error (1031, loc, "Type expected");
12762
 
}
12763
 
 
12764
 
void Error_UnsafeCodeNotAllowed (Location loc)
12765
 
{
12766
 
        report.Error (227, loc, "Unsafe code requires the `unsafe' command line option to be specified");
12767
 
}
12768
 
 
12769
 
void Warning_EmptyStatement (Location loc)
12770
 
{
12771
 
        report.Warning (642, 3, loc, "Possible mistaken empty statement");
12772
 
}
12773
 
 
12774
 
void Error_NamedArgumentExpected (NamedArgument a)
12775
 
{
12776
 
        report.Error (1738, a.Location, "Named arguments must appear after the positional arguments");
12777
 
}
12778
 
 
12779
 
void Error_MissingInitializer (Location loc)
12780
 
{
12781
 
        report.Error (210, loc, "You must provide an initializer in a fixed or using statement declaration");
12782
 
}
12783
 
 
12784
 
void push_current_container (TypeDefinition tc, object partial_token)
12785
 
{
12786
 
        if (module.Evaluator != null){
12787
 
                tc.Definition.Modifiers = tc.ModFlags = (tc.ModFlags & ~Modifiers.AccessibilityMask) | Modifiers.PUBLIC;
12788
 
                if (undo == null)
12789
 
                        undo = new Undo ();
12790
 
 
12791
 
                undo.AddTypeContainer (current_container, tc);
12792
 
        }
12793
 
        
12794
 
        if (partial_token != null)
12795
 
                current_container.AddPartial (tc);
12796
 
        else
12797
 
                current_container.AddTypeContainer (tc);
12798
 
                
12799
 
        ++lexer.parsing_declaration;
12800
 
        current_container = tc;
12801
 
        current_type = tc;
12802
 
}
12803
 
 
12804
 
TypeContainer pop_current_class ()
12805
 
{
12806
 
        var retval = current_container;
12807
 
 
12808
 
        current_container = current_container.Parent;
12809
 
        current_type = current_type.Parent as TypeDefinition;
12810
 
 
12811
 
        return retval;
12812
 
}
12813
 
 
12814
 
[System.Diagnostics.Conditional ("FULL_AST")]
12815
 
void StoreModifierLocation (object token, Location loc)
12816
 
{
12817
 
        if (lbag == null)
12818
 
                return;
12819
 
 
12820
 
        if (mod_locations == null)
12821
 
                mod_locations = new List<Tuple<Modifiers, Location>> ();
12822
 
 
12823
 
        mod_locations.Add (Tuple.Create ((Modifiers) token, loc));
12824
 
}
12825
 
 
12826
 
List<Tuple<Modifiers, Location>> GetModifierLocations ()
12827
 
{
12828
 
        var result = mod_locations;
12829
 
        mod_locations = null;
12830
 
        return result;
12831
 
}
12832
 
 
12833
 
string CheckAttributeTarget (string a, Location l)
12834
 
{
12835
 
        switch (a) {
12836
 
        case "assembly" : case "module" : case "field" : case "method" : case "param" : case "property" : case "type" :
12837
 
                        return a;
12838
 
        }
12839
 
 
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;
12843
 
}
12844
 
 
12845
 
static bool IsUnaryOperator (Operator.OpType op)
12846
 
{
12847
 
        switch (op) {
12848
 
                
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:
12857
 
                return true;
12858
 
        }
12859
 
        return false;
12860
 
}
12861
 
 
12862
 
void syntax_error (Location l, string msg)
12863
 
{
12864
 
        report.Error (1003, l, "Syntax error, " + msg);
12865
 
}
12866
 
 
12867
 
Tokenizer lexer;
12868
 
 
12869
 
public Tokenizer Lexer {
12870
 
        get {
12871
 
                return lexer;
12872
 
        }
12873
 
}                  
12874
 
 
12875
 
static CSharpParser ()
12876
 
{
12877
 
        oob_stack = new Stack<object> ();
12878
 
}
12879
 
 
12880
 
public CSharpParser (SeekableStreamReader reader, CompilationSourceFile file)
12881
 
        : this (reader, file, file.Compiler.Report)
12882
 
{
12883
 
}
12884
 
 
12885
 
public CSharpParser (SeekableStreamReader reader, CompilationSourceFile file, Report report)
12886
 
{
12887
 
        this.file = file;
12888
 
        current_container = current_namespace = file;
12889
 
        
12890
 
        this.module = file.Module;
12891
 
        this.compiler = file.Compiler;
12892
 
        this.settings = compiler.Settings;
12893
 
        this.report = report;
12894
 
        
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);
12900
 
 
12901
 
#if FULL_AST
12902
 
        lbag = new LocationsBag ();
12903
 
#else
12904
 
        lbag = null;
12905
 
#endif
12906
 
        
12907
 
        use_global_stacks = true;
12908
 
}
12909
 
 
12910
 
public void parse ()
12911
 
{
12912
 
        eof_token = Token.EOF;
12913
 
        Tokenizer.LocatedToken.Initialize ();
12914
 
        
12915
 
        try {
12916
 
                if (yacc_verbose_flag > 1)
12917
 
                        yyparse (lexer, new yydebug.yyDebugSimple ());
12918
 
                else
12919
 
                        yyparse (lexer);
12920
 
                        
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;
12927
 
                        return;
12928
 
                }
12929
 
                        
12930
 
                if (e is yyParser.yyException) {
12931
 
                        report.Error (-25, lexer.Location, "Parsing error");
12932
 
                } else {
12933
 
                        // Used by compiler-tester to test internal errors
12934
 
                        if (yacc_verbose_flag > 0 || e is FatalException)
12935
 
                                throw;
12936
 
                
12937
 
                        report.Error (589, lexer.Location, "Internal compiler error during parsing" + e);
12938
 
                }
12939
 
        }
12940
 
}
12941
 
 
12942
 
void CheckToken (int error, int yyToken, string msg, Location loc)
12943
 
{
12944
 
        if (yyToken >= Token.FIRST_KEYWORD && yyToken <= Token.LAST_KEYWORD)
12945
 
                report.Error (error, loc, "{0}: `{1}' is a keyword", msg, GetTokenName (yyToken));
12946
 
        else
12947
 
                report.Error (error, loc, msg);
12948
 
}
12949
 
 
12950
 
string ConsumeStoredComment ()
12951
 
{
12952
 
        string s = tmpComment;
12953
 
        tmpComment = null;
12954
 
        Lexer.doc_state = XmlCommentState.Allowed;
12955
 
        return s;
12956
 
}
12957
 
 
12958
 
void FeatureIsNotAvailable (Location loc, string feature)
12959
 
{
12960
 
        report.FeatureIsNotAvailable (compiler, loc, feature);
12961
 
}
12962
 
 
12963
 
Location GetLocation (object obj)
12964
 
{
12965
 
        var lt = obj as Tokenizer.LocatedToken;
12966
 
        if (lt != null)
12967
 
                return lt.Location;
12968
 
                
12969
 
        var mn = obj as MemberName;
12970
 
        if (mn != null)
12971
 
                return mn.Location;
12972
 
                
12973
 
        var expr = obj as Expression;
12974
 
        if (expr != null)
12975
 
                return expr.Location;
12976
 
 
12977
 
        return lexer.Location;
12978
 
}
12979
 
 
12980
 
public LocationsBag LocationsBag {
12981
 
        get {
12982
 
                return lbag;
12983
 
        }
12984
 
}
12985
 
 
12986
 
void start_block (Location loc)
12987
 
{
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;
12994
 
        } else {
12995
 
                current_block = new ExplicitBlock (current_block, loc, Location.Null);
12996
 
        }
12997
 
}
12998
 
 
12999
 
Block
13000
 
end_block (Location loc)
13001
 
{
13002
 
        Block retval = current_block.Explicit;
13003
 
        retval.SetEndLocation (loc);
13004
 
        current_block = retval.Parent;
13005
 
        return retval;
13006
 
}
13007
 
 
13008
 
void start_anonymous (bool isLambda, ParametersCompiled parameters, bool isAsync, Location loc)
13009
 
{
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);
13014
 
 
13015
 
        current_local_parameters = parameters;
13016
 
        if (isLambda) {
13017
 
                if (lang_version <= LanguageVersion.ISO_2)
13018
 
                        FeatureIsNotAvailable (loc, "lambda expressions");
13019
 
 
13020
 
                current_anonymous_method = new LambdaExpression (loc);
13021
 
        } else {
13022
 
                if (lang_version == LanguageVersion.ISO_1)
13023
 
                        FeatureIsNotAvailable (loc, "anonymous methods");
13024
 
                        
13025
 
                current_anonymous_method = new AnonymousMethodExpression (loc);
13026
 
        }
13027
 
        current_anonymous_method.IsAsync = isAsync;
13028
 
        
13029
 
        async_block = isAsync;
13030
 
        // Force the next block to be created as a ToplevelBlock
13031
 
        parsing_anonymous_method = true;
13032
 
}
13033
 
 
13034
 
/*
13035
 
 * Completes the anonymous method processing, if lambda_expr is null, this
13036
 
 * means that we have a Statement instead of an Expression embedded 
13037
 
 */
13038
 
AnonymousMethodExpression end_anonymous (ParametersBlock anon_block)
13039
 
{
13040
 
        AnonymousMethodExpression retval;
13041
 
 
13042
 
        if (async_block)
13043
 
                anon_block.IsAsync = true;
13044
 
 
13045
 
        current_anonymous_method.Block = anon_block;
13046
 
        retval = current_anonymous_method;
13047
 
 
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 ();
13052
 
 
13053
 
        return retval;
13054
 
}
13055
 
 
13056
 
void Error_SyntaxError (int token)
13057
 
{
13058
 
        Error_SyntaxError (0, token);
13059
 
}
13060
 
 
13061
 
void Error_SyntaxError (int error_code, int token)
13062
 
{
13063
 
        Error_SyntaxError (error_code, token, "Unexpected symbol");
13064
 
}
13065
 
 
13066
 
void Error_SyntaxError (int error_code, int token, string msg)
13067
 
{
13068
 
        Lexer.CompleteOnEOF = false;
13069
 
 
13070
 
        // An error message has been reported by tokenizer
13071
 
        if (token == Token.ERROR)
13072
 
                return;
13073
 
 
13074
 
        string symbol = GetSymbolName (token);
13075
 
        string expecting = GetExpecting ();
13076
 
        var loc = lexer.Location - symbol.Length;
13077
 
        
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);
13082
 
                                return;
13083
 
                        }
13084
 
                        
13085
 
                        error_code = 1001;
13086
 
                        expecting = "identifier";
13087
 
                } else if (expecting == "`)'") {
13088
 
                        error_code = 1026;
13089
 
                } else {
13090
 
                        error_code = 1525;
13091
 
                }
13092
 
        }
13093
 
        
13094
 
        if (string.IsNullOrEmpty (expecting))
13095
 
                report.Error (error_code, loc, "{1} `{0}'", symbol, msg);
13096
 
        else
13097
 
                report.Error (error_code, loc, "{2} `{0}', expecting {1}", symbol, expecting, msg);       
13098
 
}
13099
 
 
13100
 
string GetExpecting ()
13101
 
{
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;
13109
 
                
13110
 
                string name = GetTokenName (token);
13111
 
                if (name == "<internal>")
13112
 
                        continue;
13113
 
                        
13114
 
                has_type |= name == "type";
13115
 
                if (names.Contains (name))
13116
 
                        continue;
13117
 
                
13118
 
                names.Add (name);
13119
 
        }
13120
 
 
13121
 
        //
13122
 
        // Too many tokens to enumerate
13123
 
        //
13124
 
        if (names.Count > 8)
13125
 
                return null;
13126
 
 
13127
 
        if (has_type && has_identifier)
13128
 
                names.Remove ("identifier");
13129
 
 
13130
 
        if (names.Count == 1)
13131
 
                return "`" + GetTokenName (tokens [0]) + "'";
13132
 
        
13133
 
        StringBuilder sb = new StringBuilder ();
13134
 
        names.Sort ();
13135
 
        int count = names.Count;
13136
 
        for (int i = 0; i < count; i++){
13137
 
                bool last = i + 1 == count;
13138
 
                if (last)
13139
 
                        sb.Append ("or ");
13140
 
                sb.Append ('`');
13141
 
                sb.Append (names [i]);
13142
 
                sb.Append (last ? "'" : count < 3 ? "' " : "', ");
13143
 
        }
13144
 
        return sb.ToString ();
13145
 
}
13146
 
 
13147
 
 
13148
 
string GetSymbolName (int token)
13149
 
{
13150
 
        switch (token){
13151
 
        case Token.LITERAL:
13152
 
                return ((Constant)lexer.Value).GetValue ().ToString ();
13153
 
        case Token.IDENTIFIER:
13154
 
                return ((Tokenizer.LocatedToken)lexer.Value).Value;
13155
 
 
13156
 
        case Token.BOOL:
13157
 
                return "bool";
13158
 
        case Token.BYTE:
13159
 
                return "byte";
13160
 
        case Token.CHAR:
13161
 
                return "char";
13162
 
        case Token.VOID:
13163
 
                return "void";
13164
 
        case Token.DECIMAL:
13165
 
                return "decimal";
13166
 
        case Token.DOUBLE:
13167
 
                return "double";
13168
 
        case Token.FLOAT:
13169
 
                return "float";
13170
 
        case Token.INT:
13171
 
                return "int";
13172
 
        case Token.LONG:
13173
 
                return "long";
13174
 
        case Token.SBYTE:
13175
 
                return "sbyte";
13176
 
        case Token.SHORT:
13177
 
                return "short";
13178
 
        case Token.STRING:
13179
 
                return "string";
13180
 
        case Token.UINT:
13181
 
                return "uint";
13182
 
        case Token.ULONG:
13183
 
                return "ulong";
13184
 
        case Token.USHORT:
13185
 
                return "ushort";
13186
 
        case Token.OBJECT:
13187
 
                return "object";
13188
 
                
13189
 
        case Token.PLUS:
13190
 
                return "+";
13191
 
        case Token.UMINUS:
13192
 
        case Token.MINUS:
13193
 
                return "-";
13194
 
        case Token.BANG:
13195
 
                return "!";
13196
 
        case Token.BITWISE_AND:
13197
 
                return "&";
13198
 
        case Token.BITWISE_OR:
13199
 
                return "|";
13200
 
        case Token.STAR:
13201
 
                return "*";
13202
 
        case Token.PERCENT:
13203
 
                return "%";
13204
 
        case Token.DIV:
13205
 
                return "/";
13206
 
        case Token.CARRET:
13207
 
                return "^";
13208
 
        case Token.OP_INC:
13209
 
                return "++";
13210
 
        case Token.OP_DEC:
13211
 
                return "--";
13212
 
        case Token.OP_SHIFT_LEFT:
13213
 
                return "<<";
13214
 
        case Token.OP_SHIFT_RIGHT:
13215
 
                return ">>";
13216
 
        case Token.OP_LT:
13217
 
                return "<";
13218
 
        case Token.OP_GT:
13219
 
                return ">";
13220
 
        case Token.OP_LE:
13221
 
                return "<=";
13222
 
        case Token.OP_GE:
13223
 
                return ">=";
13224
 
        case Token.OP_EQ:
13225
 
                return "==";
13226
 
        case Token.OP_NE:
13227
 
                return "!=";
13228
 
        case Token.OP_AND:
13229
 
                return "&&";
13230
 
        case Token.OP_OR:
13231
 
                return "||";
13232
 
        case Token.OP_PTR:
13233
 
                return "->";
13234
 
        case Token.OP_COALESCING:       
13235
 
                return "??";
13236
 
        case Token.OP_MULT_ASSIGN:
13237
 
                return "*=";
13238
 
        case Token.OP_DIV_ASSIGN:
13239
 
                return "/=";
13240
 
        case Token.OP_MOD_ASSIGN:
13241
 
                return "%=";
13242
 
        case Token.OP_ADD_ASSIGN:
13243
 
                return "+=";
13244
 
        case Token.OP_SUB_ASSIGN:
13245
 
                return "-=";
13246
 
        case Token.OP_SHIFT_LEFT_ASSIGN:
13247
 
                return "<<=";
13248
 
        case Token.OP_SHIFT_RIGHT_ASSIGN:
13249
 
                return ">>=";
13250
 
        case Token.OP_AND_ASSIGN:
13251
 
                return "&=";
13252
 
        case Token.OP_XOR_ASSIGN:
13253
 
                return "^=";
13254
 
        case Token.OP_OR_ASSIGN:
13255
 
                return "|=";
13256
 
        }
13257
 
 
13258
 
        return GetTokenName (token);
13259
 
}
13260
 
 
13261
 
static string GetTokenName (int token)
13262
 
{
13263
 
        switch (token){
13264
 
        case Token.ABSTRACT:
13265
 
                return "abstract";
13266
 
        case Token.AS:
13267
 
                return "as";
13268
 
        case Token.ADD:
13269
 
                return "add";
13270
 
        case Token.ASYNC:
13271
 
                return "async";
13272
 
        case Token.BASE:
13273
 
                return "base";
13274
 
        case Token.BREAK:
13275
 
                return "break";
13276
 
        case Token.CASE:
13277
 
                return "case";
13278
 
        case Token.CATCH:
13279
 
                return "catch";
13280
 
        case Token.CHECKED:
13281
 
                return "checked";
13282
 
        case Token.CLASS:
13283
 
                return "class";
13284
 
        case Token.CONST:
13285
 
                return "const";
13286
 
        case Token.CONTINUE:
13287
 
                return "continue";
13288
 
        case Token.DEFAULT:
13289
 
                return "default";
13290
 
        case Token.DELEGATE:
13291
 
                return "delegate";
13292
 
        case Token.DO:
13293
 
                return "do";
13294
 
        case Token.ELSE:
13295
 
                return "else";
13296
 
        case Token.ENUM:
13297
 
                return "enum";
13298
 
        case Token.EVENT:
13299
 
                return "event";
13300
 
        case Token.EXPLICIT:
13301
 
                return "explicit";
13302
 
        case Token.EXTERN:
13303
 
        case Token.EXTERN_ALIAS:
13304
 
                return "extern";
13305
 
        case Token.FALSE:
13306
 
                return "false";
13307
 
        case Token.FINALLY:
13308
 
                return "finally";
13309
 
        case Token.FIXED:
13310
 
                return "fixed";
13311
 
        case Token.FOR:
13312
 
                return "for";
13313
 
        case Token.FOREACH:
13314
 
                return "foreach";
13315
 
        case Token.GOTO:
13316
 
                return "goto";
13317
 
        case Token.IF:
13318
 
                return "if";
13319
 
        case Token.IMPLICIT:
13320
 
                return "implicit";
13321
 
        case Token.IN:
13322
 
                return "in";
13323
 
        case Token.INTERFACE:
13324
 
                return "interface";
13325
 
        case Token.INTERNAL:
13326
 
                return "internal";
13327
 
        case Token.IS:
13328
 
                return "is";
13329
 
        case Token.LOCK:
13330
 
                return "lock";
13331
 
        case Token.NAMESPACE:
13332
 
                return "namespace";
13333
 
        case Token.NEW:
13334
 
                return "new";
13335
 
        case Token.NULL:
13336
 
                return "null";
13337
 
        case Token.OPERATOR:
13338
 
                return "operator";
13339
 
        case Token.OUT:
13340
 
                return "out";
13341
 
        case Token.OVERRIDE:
13342
 
                return "override";
13343
 
        case Token.PARAMS:
13344
 
                return "params";
13345
 
        case Token.PRIVATE:
13346
 
                return "private";
13347
 
        case Token.PROTECTED:
13348
 
                return "protected";
13349
 
        case Token.PUBLIC:
13350
 
                return "public";
13351
 
        case Token.READONLY:
13352
 
                return "readonly";
13353
 
        case Token.REF:
13354
 
                return "ref";
13355
 
        case Token.RETURN:
13356
 
                return "return";
13357
 
        case Token.REMOVE:
13358
 
                return "remove";
13359
 
        case Token.SEALED:
13360
 
                return "sealed";
13361
 
        case Token.SIZEOF:
13362
 
                return "sizeof";
13363
 
        case Token.STACKALLOC:
13364
 
                return "stackalloc";
13365
 
        case Token.STATIC:
13366
 
                return "static";
13367
 
        case Token.STRUCT:
13368
 
                return "struct";
13369
 
        case Token.SWITCH:
13370
 
                return "switch";
13371
 
        case Token.THIS:
13372
 
                return "this";
13373
 
        case Token.THROW:
13374
 
                return "throw";
13375
 
        case Token.TRUE:
13376
 
                return "true";
13377
 
        case Token.TRY:
13378
 
                return "try";
13379
 
        case Token.TYPEOF:
13380
 
                return "typeof";
13381
 
        case Token.UNCHECKED:
13382
 
                return "unchecked";
13383
 
        case Token.UNSAFE:
13384
 
                return "unsafe";
13385
 
        case Token.USING:
13386
 
                return "using";
13387
 
        case Token.VIRTUAL:
13388
 
                return "virtual";
13389
 
        case Token.VOLATILE:
13390
 
                return "volatile";
13391
 
        case Token.WHERE:
13392
 
                return "where";
13393
 
        case Token.WHILE:
13394
 
                return "while";
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:
13404
 
                return "partial";
13405
 
        case Token.ARROW:
13406
 
                return "=>";
13407
 
        case Token.FROM:
13408
 
        case Token.FROM_FIRST:
13409
 
                return "from";
13410
 
        case Token.JOIN:
13411
 
                return "join";
13412
 
        case Token.ON:
13413
 
                return "on";
13414
 
        case Token.EQUALS:
13415
 
                return "equals";
13416
 
        case Token.SELECT:
13417
 
                return "select";
13418
 
        case Token.GROUP:
13419
 
                return "group";
13420
 
        case Token.BY:
13421
 
                return "by";
13422
 
        case Token.LET:
13423
 
                return "let";
13424
 
        case Token.ORDERBY:
13425
 
                return "orderby";
13426
 
        case Token.ASCENDING:
13427
 
                return "ascending";
13428
 
        case Token.DESCENDING:
13429
 
                return "descending";
13430
 
        case Token.INTO:
13431
 
                return "into";
13432
 
        case Token.GET:
13433
 
                return "get";
13434
 
        case Token.SET:
13435
 
                return "set";
13436
 
        case Token.OPEN_BRACE:
13437
 
                return "{";
13438
 
        case Token.CLOSE_BRACE:
13439
 
                return "}";
13440
 
        case Token.OPEN_BRACKET:
13441
 
        case Token.OPEN_BRACKET_EXPR:
13442
 
                return "[";
13443
 
        case Token.CLOSE_BRACKET:
13444
 
                return "]";
13445
 
        case Token.OPEN_PARENS_CAST:
13446
 
        case Token.OPEN_PARENS_LAMBDA:
13447
 
        case Token.OPEN_PARENS:
13448
 
                return "(";
13449
 
        case Token.CLOSE_PARENS:
13450
 
                return ")";
13451
 
        case Token.DOT:
13452
 
                return ".";
13453
 
        case Token.COMMA:
13454
 
                return ",";
13455
 
        case Token.DEFAULT_COLON:
13456
 
                return "default:";
13457
 
        case Token.COLON:
13458
 
                return ":";
13459
 
        case Token.SEMICOLON:
13460
 
                return ";";
13461
 
        case Token.TILDE:
13462
 
                return "~";
13463
 
                
13464
 
        case Token.PLUS:
13465
 
        case Token.UMINUS:
13466
 
        case Token.MINUS:
13467
 
        case Token.BANG:
13468
 
        case Token.OP_LT:
13469
 
        case Token.OP_GT:
13470
 
        case Token.BITWISE_AND:
13471
 
        case Token.BITWISE_OR:
13472
 
        case Token.STAR:
13473
 
        case Token.PERCENT:
13474
 
        case Token.DIV:
13475
 
        case Token.CARRET:
13476
 
        case Token.OP_INC:
13477
 
        case Token.OP_DEC:
13478
 
        case Token.OP_SHIFT_LEFT:
13479
 
        case Token.OP_SHIFT_RIGHT:
13480
 
        case Token.OP_LE:
13481
 
        case Token.OP_GE:
13482
 
        case Token.OP_EQ:
13483
 
        case Token.OP_NE:
13484
 
        case Token.OP_AND:
13485
 
        case Token.OP_OR:
13486
 
        case Token.OP_PTR:
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>";
13499
 
 
13500
 
        case Token.BOOL:
13501
 
        case Token.BYTE:
13502
 
        case Token.CHAR:
13503
 
        case Token.VOID:
13504
 
        case Token.DECIMAL:
13505
 
        case Token.DOUBLE:
13506
 
        case Token.FLOAT:
13507
 
        case Token.INT:
13508
 
        case Token.LONG:
13509
 
        case Token.SBYTE:
13510
 
        case Token.SHORT:
13511
 
        case Token.STRING:
13512
 
        case Token.UINT:
13513
 
        case Token.ULONG:
13514
 
        case Token.USHORT:
13515
 
        case Token.OBJECT:
13516
 
                return "type";
13517
 
        
13518
 
        case Token.ASSIGN:
13519
 
                return "=";
13520
 
        case Token.OP_GENERICS_LT:
13521
 
        case Token.GENERIC_DIMENSION:
13522
 
                return "<";
13523
 
        case Token.OP_GENERICS_GT:
13524
 
                return ">";
13525
 
        case Token.INTERR:
13526
 
        case Token.INTERR_NULLABLE:
13527
 
                return "?";
13528
 
        case Token.DOUBLE_COLON:
13529
 
                return "::";
13530
 
        case Token.LITERAL:
13531
 
                return "value";
13532
 
        case Token.IDENTIFIER:
13533
 
        case Token.AWAIT:
13534
 
                return "identifier";
13535
 
 
13536
 
        case Token.EOF:
13537
 
                return "end-of-file";
13538
 
 
13539
 
                // All of these are internal.
13540
 
        case Token.NONE:
13541
 
        case Token.ERROR:
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>";
13550
 
 
13551
 
                // A bit more robust.
13552
 
        default:
13553
 
                return yyNames [token];
13554
 
        }
13555
 
}
13556
 
 
13557
 
/* end end end */
13558
 
}
13559
 
#line default
13560
 
namespace yydebug {
13561
 
        using System;
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);
13572
 
                 void reject ();
13573
 
         }
13574
 
         
13575
 
         class yyDebugSimple : yyDebug {
13576
 
                 void println (string s){
13577
 
                         Console.Error.WriteLine (s);
13578
 
                 }
13579
 
                 
13580
 
                 public void push (int state, Object value) {
13581
 
                         println ("push\tstate "+state+"\tvalue "+value);
13582
 
                 }
13583
 
                 
13584
 
                 public void lex (int state, int token, string name, Object value) {
13585
 
                         println("lex\tstate "+state+"\treading "+name+"\tvalue "+value);
13586
 
                 }
13587
 
                 
13588
 
                 public void shift (int from, int to, int errorFlag) {
13589
 
                         switch (errorFlag) {
13590
 
                         default:                               // normally
13591
 
                                 println("shift\tfrom state "+from+" to "+to);
13592
 
                                 break;
13593
 
                         case 0: case 1: case 2:                // in error recovery
13594
 
                                 println("shift\tfrom state "+from+" to "+to
13595
 
                                             +"\t"+errorFlag+" left to recover");
13596
 
                                 break;
13597
 
                         case 3:                                // normally
13598
 
                                 println("shift\tfrom state "+from+" to "+to+"\ton error");
13599
 
                                 break;
13600
 
                         }
13601
 
                 }
13602
 
                 
13603
 
                 public void pop (int state) {
13604
 
                         println("pop\tstate "+state+"\ton error");
13605
 
                 }
13606
 
                 
13607
 
                 public void discard (int state, int token, string name, Object value) {
13608
 
                         println("discard\tstate "+state+"\ttoken "+name+"\tvalue "+value);
13609
 
                 }
13610
 
                 
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);
13614
 
                 }
13615
 
                 
13616
 
                 public void shift (int from, int to) {
13617
 
                         println("goto\tfrom state "+from+" to "+to);
13618
 
                 }
13619
 
                 
13620
 
                 public void accept (Object value) {
13621
 
                         println("accept\tvalue "+value);
13622
 
                 }
13623
 
                 
13624
 
                 public void error (string message) {
13625
 
                         println("error\t"+message);
13626
 
                 }
13627
 
                 
13628
 
                 public void reject () {
13629
 
                         println("reject");
13630
 
                 }
13631
 
                 
13632
 
         }
13633
 
}
13634
 
// %token constants
13635
 
 class Token {
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;
13811
 
 }
13812
 
 namespace yyParser {
13813
 
  using System;
13814
 
  /** thrown for irrecoverable syntax errors and stack overflow.
13815
 
    */
13816
 
  internal class yyException : System.Exception {
13817
 
    public yyException (string message) : base (message) {
13818
 
    }
13819
 
  }
13820
 
  internal class yyUnexpectedEof : yyException {
13821
 
    public yyUnexpectedEof (string message) : base (message) {
13822
 
    }
13823
 
    public yyUnexpectedEof () : base ("") {
13824
 
    }
13825
 
  }
13826
 
 
13827
 
  /** must be implemented by a scanner object to supply input to the parser.
13828
 
    */
13829
 
  internal interface yyInput {
13830
 
    /** move on to next token.
13831
 
        @return false if positioned beyond tokens.
13832
 
        @throws IOException on input error.
13833
 
      */
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.
13838
 
      */
13839
 
    int token ();
13840
 
    /** associated with current token.
13841
 
        Should not be called if advance() returned false.
13842
 
        @return value for token().
13843
 
      */
13844
 
    Object value ();
13845
 
  }
13846
 
 }
13847
 
} // close outermost namespace, that MUST HAVE BEEN opened in the prolog