[nem-pl] Patch Pawla

nazgul at lilith.ii.uni.wroc.pl nazgul at lilith.ii.uni.wroc.pl
Wed Nov 12 12:34:52 CET 2003


Przesylam patcha zmian dokonanych przez P.O.
Nie spawdzone, wysylam tak jak jest.

Kamil
-------------- next part --------------
diff -r nemerle-420/ncc/cgflat.n nemerle/ncc/cgflat.n
187a188,234
> 
>   is_raise (ex : CG_expr) : bool {
>     match (ex) {
>       | CE_raise (_) => true
>       | CE_sequence (seq) => List.exists (is_raise, seq)
>       | _ => false
>     }
>   }
> 
>   pretty_print_list (exs : list(CG_expr), acc : string) : string {
>     match (exs) {
>       | Nil => acc
>       | Cons (ex, rest) => pretty_print_list (rest, acc + pretty_print (ex))
>     }
>   }
> 
>   pretty_print (ex : CG_expr) : string {
>     match (ex) {
>       | CE_ref (decl) => "CE_ref; "
>       | CE_global_ref (decl) => "CE_global_ref; "
>       | CE_ctor_ref (klass) => "CE_ctor_ref; "
>       | CE_field_ref (obj, fld) => "CE_field_ref; "
>       | CE_method_ref (obj, meth) => "CE_method_ref; "
>       | CE_tuple_ref (obj, pos) => "CE_tuple_ref; "
>       | CE_call (func, parms) => "CE_call; "
>       | CE_assign (target, source) => 
>         pretty_print (target) + " = " + pretty_print (source) + "; "
>       | CE_let (name, body) => 
>         "let " + name.name + " = " + pretty_print (name.val) + " in " + pretty_print (body) + "; "
>       | CE_has_type (expr, ty) => "CE_has_type; "
>       | CE_raise (exn) => "CE_raise; "
>       | CE_if (ty, cond, e_then, e_else) => 
>         "if (" + pretty_print (cond) + ") " + pretty_print (e_then) + " else " + pretty_print (e_else) + "; "
>       | CE_true => "CE_true; "
>       | CE_false => "CE_false; "
>       | CE_try_with => "CE_try_with; "
>       | CE_try_finally => "CE_try_finally; "
>       | CE_literal => "CE_literal; "
>       | CE_this => "CE_this; "
>       | CE_skip => "CE_skip; "
>       | CE_cast (expr, ty) => "CE_cast; "
>       | CE_sequence (body) => "{ " + pretty_print_list (body, "") + " }; "
>       | CE_tuple_ctor (exprs) => "CE_tuple_ctor; "
>       | CE_none => "CE_none"
>     }
>   }
> 
236,239c283,294
<         
<       | CE_if (_, CE_true, e, _) => flat (e)
<       | CE_if (_, CE_false, _, e) => flat (e)
<       
---
> 
> (*        
>       | CE_if (_, CE_true, e, _) =>
>          Message.debug ("In if (true), subexpr is: " + pretty_print (e));
>          flat (e)
>       | CE_if (_, CE_false, _, e) =>
>          Message.debug ("In if (false), subexpr is: " + pretty_print (e));
>          flat (e)
> *)
> 
>       (* NOTE:pawel:08/11/2003: added code to skip unnecessary (and sometimes
>          compilation breaking) tmpname assignments after throw, see is_raise *) 
258,259c313
<                         p2 ++
<                         tmpname ++ " = " ++ e1 ++ ";\n" ++
---
>                         (if (is_raise (e1')) p2 else (p2 ++ tmpname ++ " = " ++ e1 ++ ";\n")) ++
261,262c315
<                         p3 ++
<                         tmpname ++ " = " ++ e2 ++ ";\n" ++
---
>                         (if (is_raise (e2')) p3 else (p3 ++ tmpname ++ " = " ++ e2 ++ ";\n")) ++
342c395,402
<       | CE_sequence (e) =>
---
>       | CE_sequence (body) =>
>         def cutoff_after_raise (e : list (CG_expr), acc : list (CG_expr)) : list (CG_expr) {
>           match (e) {
>             | Nil => acc
>             | Cons (CE_raise (expr), _) => List.append (acc, Cons (CE_raise (expr), Nil ()))
>             | Cons (expr, rest) => cutoff_after_raise (rest, List.append (acc, Cons (expr, Nil ())))
>           }
>         }
356a417
>             | Nil => CS_simple (ST_leaf ("null"))
360c421
<         concat (ST_leaf (""), e)
---
>         concat (ST_leaf (""), cutoff_after_raise (body, Nil ()))
392c453
<       | CE_raise => CT_unreached ()
---
>       | CE_raise (_) => CT_unreached ()
402,404c463,465
<           | L_int => CT_ref ("Nemerle.Core.int")
<           | L_string => CT_ref ("Nemerle.Core.string")
<           | L_float => CT_ref ("Nemerle.Core.float")
---
>           | L_int => CT_ref ("int")
>           | L_string => CT_ref ("string")
>           | L_float => CT_ref ("float")
diff -r nemerle-420/ncc/parser.cs nemerle/ncc/parser.cs
165c165
<   protected static  int yyFinal = 11;
---
>   protected static  int yyFinal = 10;
186c186
<     "type_decl : attrs KW_MODULE type_header '{' type_members '}'",
---
>     "type_decl : attrs KW_MODULE type_header '{' module_members '}'",
218a219,220
>     "module_members :",
>     "module_members : module_member module_members",
228d229
<     "attr : KW_STATIC",
238c239,240
<     "type_member : attrs maybe_mutable ftyparms located_id ':' ty maybe_extern",
---
>     "type_member : attrs maybe_mutable ftyparms located_id ':' ty ';'",
>     "type_member : attrs KW_STATIC maybe_mutable ftyparms located_id ':' ty maybe_extern",
239a242
>     "type_member : attrs KW_STATIC maybe_mutable fun_def",
240a244,246
>     "module_member : attrs maybe_mutable ftyparms located_id ':' ty maybe_extern",
>     "module_member : attrs maybe_mutable fun_def",
>     "module_member : type_as_type_member",
309a316,317
>     "raw_expr : KW_REQUIRE '{' expr '}'",
>     "raw_expr : KW_ENSURE '{' expr '}'",
395,396c403,404
<     "KW_MODULE","COLON_MORE","LESS_MINUS","MINUS_MORE","EQ_MORE",
<     "COLON_COLON","ERROR","UNARY",
---
>     "KW_MODULE","KW_ENSURE","KW_REQUIRE","COLON_MORE","LESS_MINUS",
>     "MINUS_MORE","EQ_MORE","COLON_COLON","ERROR","UNARY",
565c573
< #line 232 "parser.jay"
---
> #line 233 "parser.jay"
569c577
< #line 236 "parser.jay"
---
> #line 237 "parser.jay"
576c584
< #line 241 "parser.jay"
---
> #line 242 "parser.jay"
583c591
< #line 246 "parser.jay"
---
> #line 247 "parser.jay"
590c598
< #line 251 "parser.jay"
---
> #line 252 "parser.jay"
596c604
< #line 256 "parser.jay"
---
> #line 257 "parser.jay"
600c608
< #line 260 "parser.jay"
---
> #line 261 "parser.jay"
604c612
< #line 263 "parser.jay"
---
> #line 264 "parser.jay"
608c616
< #line 264 "parser.jay"
---
> #line 265 "parser.jay"
612c620
< #line 267 "parser.jay"
---
> #line 268 "parser.jay"
616c624
< #line 271 "parser.jay"
---
> #line 272 "parser.jay"
620c628
< #line 273 "parser.jay"
---
> #line 274 "parser.jay"
624c632
< #line 277 "parser.jay"
---
> #line 278 "parser.jay"
638c646
< #line 291 "parser.jay"
---
> #line 292 "parser.jay"
645c653
< #line 296 "parser.jay"
---
> #line 297 "parser.jay"
652c660
< #line 301 "parser.jay"
---
> #line 302 "parser.jay"
659c667
< #line 306 "parser.jay"
---
> #line 307 "parser.jay"
666c674
< #line 311 "parser.jay"
---
> #line 312 "parser.jay"
668c676
< 			yyVal = new Type_decl.TD_module(((list)yyVals[-1+yyTop]));
---
> 			yyVal = new Type_decl.TD_class(((list)yyVals[-1+yyTop]));
673c681
< #line 316 "parser.jay"
---
> #line 317 "parser.jay"
681c689
< #line 322 "parser.jay"
---
> #line 323 "parser.jay"
688c696
< #line 328 "parser.jay"
---
> #line 329 "parser.jay"
692c700
< #line 329 "parser.jay"
---
> #line 330 "parser.jay"
696c704
< #line 332 "parser.jay"
---
> #line 333 "parser.jay"
700c708
< #line 333 "parser.jay"
---
> #line 334 "parser.jay"
704c712
< #line 336 "parser.jay"
---
> #line 337 "parser.jay"
708c716
< #line 337 "parser.jay"
---
> #line 338 "parser.jay"
712c720
< #line 340 "parser.jay"
---
> #line 341 "parser.jay"
716c724
< #line 341 "parser.jay"
---
> #line 342 "parser.jay"
720c728
< #line 344 "parser.jay"
---
> #line 345 "parser.jay"
724c732
< #line 345 "parser.jay"
---
> #line 346 "parser.jay"
728c736
< #line 349 "parser.jay"
---
> #line 350 "parser.jay"
742c750
< #line 362 "parser.jay"
---
> #line 363 "parser.jay"
746c754
< #line 363 "parser.jay"
---
> #line 364 "parser.jay"
750c758
< #line 367 "parser.jay"
---
> #line 368 "parser.jay"
764c772
< #line 381 "parser.jay"
---
> #line 382 "parser.jay"
770c778
< #line 385 "parser.jay"
---
> #line 386 "parser.jay"
776c784
< #line 391 "parser.jay"
---
> #line 392 "parser.jay"
780c788
< #line 393 "parser.jay"
---
> #line 394 "parser.jay"
784c792
< #line 396 "parser.jay"
---
> #line 397 "parser.jay"
788c796
< #line 397 "parser.jay"
---
> #line 398 "parser.jay"
792c800
< #line 400 "parser.jay"
---
> #line 401 "parser.jay"
796c804
< #line 401 "parser.jay"
---
> #line 402 "parser.jay"
800c808
< #line 408 "parser.jay"
---
> #line 409 "parser.jay"
804c812
< #line 409 "parser.jay"
---
> #line 410 "parser.jay"
808c816
< #line 413 "parser.jay"
---
> #line 414 "parser.jay"
814c822
< #line 421 "parser.jay"
---
> #line 422 "parser.jay"
818c826
< #line 422 "parser.jay"
---
> #line 423 "parser.jay"
822c830
< #line 425 "parser.jay"
---
> #line 426 "parser.jay"
826c834
< #line 426 "parser.jay"
---
> #line 427 "parser.jay"
830,831c838,839
< #line 429 "parser.jay"
<   { yyVal = new Modifier.Mod_new(); }
---
> #line 430 "parser.jay"
>   { yyVal = nil(); }
834,835c842,843
< #line 430 "parser.jay"
<   { yyVal = new Modifier.Mod_public(); }
---
> #line 431 "parser.jay"
>   { yyVal = cons(yyVals[-1+yyTop], ((list)yyVals[0+yyTop])); }
838,839c846,847
< #line 431 "parser.jay"
<   { yyVal = new Modifier.Mod_protected(); }
---
> #line 434 "parser.jay"
>   { yyVal = new Modifier.Mod_new(); }
842,843c850,851
< #line 432 "parser.jay"
<   { yyVal = new Modifier.Mod_internal(); }
---
> #line 435 "parser.jay"
>   { yyVal = new Modifier.Mod_public(); }
846,847c854,855
< #line 433 "parser.jay"
<   { yyVal = new Modifier.Mod_private(); }
---
> #line 436 "parser.jay"
>   { yyVal = new Modifier.Mod_protected(); }
850,851c858,859
< #line 434 "parser.jay"
<   { yyVal = new Modifier.Mod_abstract(); }
---
> #line 437 "parser.jay"
>   { yyVal = new Modifier.Mod_internal(); }
854,855c862,863
< #line 435 "parser.jay"
<   { yyVal = new Modifier.Mod_sealed(); }
---
> #line 438 "parser.jay"
>   { yyVal = new Modifier.Mod_private(); }
858,859c866,867
< #line 436 "parser.jay"
<   { yyVal = new Modifier.Mod_static(); }
---
> #line 439 "parser.jay"
>   { yyVal = new Modifier.Mod_abstract(); }
863c871
<   { yyVal = nil(); }
---
>   { yyVal = new Modifier.Mod_sealed(); }
865c873
< case 64:
---
> case 63:
867c875
<   { yyVal = ((list)yyVals[-1+yyTop]); }
---
>   { yyVal = nil(); }
870,871c878,879
< #line 447 "parser.jay"
<   { yyVal = nil(); }
---
> #line 448 "parser.jay"
>   { yyVal = ((list)yyVals[-1+yyTop]); }
874,875c882,883
< #line 448 "parser.jay"
<   { yyVal = cons(yyVals[-1+yyTop], ((list)yyVals[0+yyTop])); }
---
> #line 451 "parser.jay"
>   { yyVal = nil(); }
878a887,890
>   { yyVal = cons(yyVals[-1+yyTop], ((list)yyVals[0+yyTop])); }
>   break;
> case 68:
> #line 456 "parser.jay"
880c892
< 			yyVal = new Class_member.M_field(((Nemerle.Compiler.Parsetree.Type)yyVals[-1+yyTop]), ((bool)yyVals[-4+yyTop]), new Val_kind.Val_normal());
---
> 			yyVal = new Class_member.M_field(((Nemerle.Compiler.Parsetree.Type)yyVals[-1+yyTop]), ((bool)yyVals[-4+yyTop]));
884,887d895
< case 68:
< #line 459 "parser.jay"
<   { yyVal = new Val_kind.Val_extern(((string)yyVals[-1+yyTop])); }
<   break;
889,890c897,898
< #line 461 "parser.jay"
<   { yyVal = new Val_kind.Val_normal(); }
---
> #line 463 "parser.jay"
>   { yyVal = new Val_kind.Val_extern(((string)yyVals[-1+yyTop])); }
893a902,905
>   { yyVal = new Val_kind.Val_normal(); }
>   break;
> case 71:
> #line 469 "parser.jay"
903,904c915,916
< case 71:
< #line 476 "parser.jay"
---
> case 72:
> #line 480 "parser.jay"
908c920
< 			yyVal = new Class_member.M_field(((Nemerle.Compiler.Parsetree.Type)yyVals[-1+yyTop]), ((bool)yyVals[-5+yyTop]), ((Val_kind)yyVals[0+yyTop]));
---
> 			yyVal = new Class_member.M_field(((Nemerle.Compiler.Parsetree.Type)yyVals[-1+yyTop]), ((bool)yyVals[-5+yyTop]));
912,913c924,934
< case 72:
< #line 483 "parser.jay"
---
> case 73:
> #line 487 "parser.jay"
>   {
> 			if (!is_empty_typarms(((Typarms)yyVals[-4+yyTop])))
> 				Message.error(((Located_ID)yyVals[-3+yyTop]).loc, "static fields cannot have type parameters");
> 			yyVal = new Class_member.M_value(((Nemerle.Compiler.Parsetree.Type)yyVals[-1+yyTop]), ((bool)yyVals[-5+yyTop]), ((Val_kind)yyVals[0+yyTop]));
> 			fixup_decl(yyVal, ((list)yyVals[-7+yyTop]), ((Located_ID)yyVals[-3+yyTop]));
> 		}
>   break;
> case 74:
> #line 494 "parser.jay"
921,922c942,984
< case 74:
< #line 493 "parser.jay"
---
> case 75:
> #line 501 "parser.jay"
>   {
> 			if (((bool)yyVals[-1+yyTop]))
> 				Message.error(((Class_member.M_function)yyVals[0+yyTop]).loc, "static methods cannot have 'ref' attribute");
> 			((Class_member.M_function)yyVals[0+yyTop]).modifiers = ((list)yyVals[-3+yyTop]);
> 			if (((Class_member.M_function)yyVals[0+yyTop]).kind is Fun_kind.FK_ctor)
> 				((Class_member.M_function)yyVals[0+yyTop]).kind = new Fun_kind.FK_static_ctor();
> 			else if (((Class_member.M_function)yyVals[0+yyTop]).kind is Fun_kind.FK_method) {
> 				if (!(((Fun_kind.FK_method)((Class_member.M_function)yyVals[0+yyTop]).kind).f_implements is list.Nil))
> 					Message.error(((Class_member.M_function)yyVals[0+yyTop]).loc, "functions cannot implement anything");
> 				((Class_member.M_function)yyVals[0+yyTop]).kind = new Fun_kind.FK_function();
> 			}
> 			yyVal = ((Class_member.M_function)yyVals[0+yyTop]);
> 		}
>   break;
> case 77:
> #line 518 "parser.jay"
>   {
> 			if (!is_empty_typarms(((Typarms)yyVals[-4+yyTop])))
> 				Message.error(((Located_ID)yyVals[-3+yyTop]).loc, "static fields cannot have type parameters");
> 			yyVal = new Class_member.M_value(((Nemerle.Compiler.Parsetree.Type)yyVals[-1+yyTop]), ((bool)yyVals[-5+yyTop]), ((Val_kind)yyVals[0+yyTop]));
> 			fixup_decl(yyVal, ((list)yyVals[-6+yyTop]), ((Located_ID)yyVals[-3+yyTop]));
> 		}
>   break;
> case 78:
> #line 525 "parser.jay"
>   {
> 			if (((bool)yyVals[-1+yyTop]))
> 				Message.error(((Class_member.M_function)yyVals[0+yyTop]).loc, "static methods cannot have 'ref' attribute");
> 			((Class_member.M_function)yyVals[0+yyTop]).modifiers = ((list)yyVals[-2+yyTop]);
> 			if (((Class_member.M_function)yyVals[0+yyTop]).kind is Fun_kind.FK_ctor)
> 				((Class_member.M_function)yyVals[0+yyTop]).kind = new Fun_kind.FK_static_ctor();
> 			else if (((Class_member.M_function)yyVals[0+yyTop]).kind is Fun_kind.FK_method) {
> 				if (!(((Fun_kind.FK_method)((Class_member.M_function)yyVals[0+yyTop]).kind).f_implements is list.Nil))
> 					Message.error(((Class_member.M_function)yyVals[0+yyTop]).loc, "functions cannot implement anything");
> 				((Class_member.M_function)yyVals[0+yyTop]).kind = new Fun_kind.FK_function();
> 			}
> 			yyVal = ((Class_member.M_function)yyVals[0+yyTop]);
> 		}
>   break;
> case 80:
> #line 542 "parser.jay"
935,936c997,998
< case 75:
< #line 505 "parser.jay"
---
> case 81:
> #line 554 "parser.jay"
943c1005
< 			h.ret_type = new Type.T_void();
---
> 			h.ret_type = new Nemerle.Compiler.Parsetree.Type.T_void();
949,950c1011,1012
< case 76:
< #line 518 "parser.jay"
---
> case 82:
> #line 567 "parser.jay"
953,954c1015,1016
< case 77:
< #line 519 "parser.jay"
---
> case 83:
> #line 568 "parser.jay"
957,958c1019,1020
< case 78:
< #line 523 "parser.jay"
---
> case 84:
> #line 572 "parser.jay"
971,972c1033,1034
< case 79:
< #line 537 "parser.jay"
---
> case 85:
> #line 586 "parser.jay"
983,984c1045,1046
< case 80:
< #line 548 "parser.jay"
---
> case 86:
> #line 597 "parser.jay"
987,988c1049,1050
< case 81:
< #line 549 "parser.jay"
---
> case 87:
> #line 598 "parser.jay"
991,992c1053,1054
< case 82:
< #line 552 "parser.jay"
---
> case 88:
> #line 601 "parser.jay"
995,996c1057,1058
< case 84:
< #line 556 "parser.jay"
---
> case 90:
> #line 605 "parser.jay"
999,1000c1061,1062
< case 85:
< #line 557 "parser.jay"
---
> case 91:
> #line 606 "parser.jay"
1003,1004c1065,1066
< case 86:
< #line 560 "parser.jay"
---
> case 92:
> #line 609 "parser.jay"
1007,1008c1069,1070
< case 87:
< #line 561 "parser.jay"
---
> case 93:
> #line 610 "parser.jay"
1011,1012c1073,1074
< case 88:
< #line 564 "parser.jay"
---
> case 94:
> #line 613 "parser.jay"
1015,1016c1077,1078
< case 89:
< #line 565 "parser.jay"
---
> case 95:
> #line 614 "parser.jay"
1019,1020c1081,1082
< case 90:
< #line 568 "parser.jay"
---
> case 96:
> #line 617 "parser.jay"
1023,1024c1085,1086
< case 91:
< #line 569 "parser.jay"
---
> case 97:
> #line 618 "parser.jay"
1027,1029c1089,1091
< case 92:
< #line 572 "parser.jay"
<   { yyVal = new Type.T_app(((string)yyVals[0+yyTop]), nil()); }
---
> case 98:
> #line 621 "parser.jay"
>   { yyVal = new Nemerle.Compiler.Parsetree.Type.T_app(((string)yyVals[0+yyTop]), nil()); }
1031,1033c1093,1095
< case 93:
< #line 573 "parser.jay"
<   { yyVal = new Type.T_app(((string)yyVals[-3+yyTop]), ((list)yyVals[-1+yyTop])); }
---
> case 99:
> #line 622 "parser.jay"
>   { yyVal = new Nemerle.Compiler.Parsetree.Type.T_app(((string)yyVals[-3+yyTop]), ((list)yyVals[-1+yyTop])); }
1035,1037c1097,1099
< case 94:
< #line 574 "parser.jay"
<   { yyVal = new Type.T_var(((string)yyVals[0+yyTop])); }
---
> case 100:
> #line 623 "parser.jay"
>   { yyVal = new Nemerle.Compiler.Parsetree.Type.T_var(((string)yyVals[0+yyTop])); }
1039,1040c1101,1102
< case 95:
< #line 575 "parser.jay"
---
> case 101:
> #line 624 "parser.jay"
1043,1045c1105,1107
< case 96:
< #line 576 "parser.jay"
<   { yyVal = new Type.T_void(); }
---
> case 102:
> #line 625 "parser.jay"
>   { yyVal = new Nemerle.Compiler.Parsetree.Type.T_void(); }
1047,1049c1109,1111
< case 97:
< #line 577 "parser.jay"
<   { yyVal = new Type.T_ref(((Nemerle.Compiler.Parsetree.Type)yyVals[0+yyTop])); }
---
> case 103:
> #line 626 "parser.jay"
>   { yyVal = new Nemerle.Compiler.Parsetree.Type.T_ref(((Nemerle.Compiler.Parsetree.Type)yyVals[0+yyTop])); }
1051,1053c1113,1115
< case 98:
< #line 578 "parser.jay"
<   { yyVal = new Type.T_out(((Nemerle.Compiler.Parsetree.Type)yyVals[0+yyTop])); }
---
> case 104:
> #line 627 "parser.jay"
>   { yyVal = new Nemerle.Compiler.Parsetree.Type.T_out(((Nemerle.Compiler.Parsetree.Type)yyVals[0+yyTop])); }
1055,1056c1117,1118
< case 99:
< #line 581 "parser.jay"
---
> case 105:
> #line 630 "parser.jay"
1059,1060c1121,1122
< case 100:
< #line 582 "parser.jay"
---
> case 106:
> #line 631 "parser.jay"
1063,1064c1125,1126
< case 101:
< #line 586 "parser.jay"
---
> case 107:
> #line 635 "parser.jay"
1070c1132
< 				yyVal = new Type.T_prod(c);
---
> 				yyVal = new Nemerle.Compiler.Parsetree.Type.T_prod(c);
1073,1075c1135,1137
< case 103:
< #line 596 "parser.jay"
<   { yyVal = new Type.T_fun(((Nemerle.Compiler.Parsetree.Type)yyVals[-2+yyTop]), ((Nemerle.Compiler.Parsetree.Type)yyVals[0+yyTop])); }
---
> case 109:
> #line 645 "parser.jay"
>   { yyVal = new Nemerle.Compiler.Parsetree.Type.T_fun(((Nemerle.Compiler.Parsetree.Type)yyVals[-2+yyTop]), ((Nemerle.Compiler.Parsetree.Type)yyVals[0+yyTop])); }
1077,1078c1139,1140
< case 104:
< #line 599 "parser.jay"
---
> case 110:
> #line 648 "parser.jay"
1081,1082c1143,1144
< case 105:
< #line 600 "parser.jay"
---
> case 111:
> #line 649 "parser.jay"
1085,1086c1147,1148
< case 106:
< #line 603 "parser.jay"
---
> case 112:
> #line 652 "parser.jay"
1089,1090c1151,1152
< case 108:
< #line 607 "parser.jay"
---
> case 114:
> #line 656 "parser.jay"
1093,1094c1155,1156
< case 109:
< #line 608 "parser.jay"
---
> case 115:
> #line 657 "parser.jay"
1097,1098c1159,1160
< case 110:
< #line 609 "parser.jay"
---
> case 116:
> #line 658 "parser.jay"
1101,1102c1163,1164
< case 111:
< #line 610 "parser.jay"
---
> case 117:
> #line 659 "parser.jay"
1105,1106c1167,1168
< case 112:
< #line 611 "parser.jay"
---
> case 118:
> #line 660 "parser.jay"
1109,1110c1171,1172
< case 113:
< #line 613 "parser.jay"
---
> case 119:
> #line 662 "parser.jay"
1113,1114c1175,1176
< case 114:
< #line 615 "parser.jay"
---
> case 120:
> #line 664 "parser.jay"
1117,1118c1179,1180
< case 115:
< #line 617 "parser.jay"
---
> case 121:
> #line 666 "parser.jay"
1121,1122c1183,1184
< case 116:
< #line 619 "parser.jay"
---
> case 122:
> #line 668 "parser.jay"
1125,1126c1187,1188
< case 118:
< #line 623 "parser.jay"
---
> case 124:
> #line 672 "parser.jay"
1129,1130c1191,1192
< case 119:
< #line 626 "parser.jay"
---
> case 125:
> #line 675 "parser.jay"
1133,1134c1195,1196
< case 120:
< #line 627 "parser.jay"
---
> case 126:
> #line 676 "parser.jay"
1137,1138c1199,1200
< case 121:
< #line 631 "parser.jay"
---
> case 127:
> #line 680 "parser.jay"
1141,1142c1203,1204
< case 122:
< #line 633 "parser.jay"
---
> case 128:
> #line 682 "parser.jay"
1145,1146c1207,1208
< case 125:
< #line 641 "parser.jay"
---
> case 131:
> #line 690 "parser.jay"
1149,1150c1211,1212
< case 126:
< #line 643 "parser.jay"
---
> case 132:
> #line 692 "parser.jay"
1153,1154c1215,1216
< case 127:
< #line 645 "parser.jay"
---
> case 133:
> #line 694 "parser.jay"
1157,1158c1219,1220
< case 128:
< #line 647 "parser.jay"
---
> case 134:
> #line 696 "parser.jay"
1161,1162c1223,1224
< case 129:
< #line 651 "parser.jay"
---
> case 135:
> #line 700 "parser.jay"
1165,1166c1227,1228
< case 132:
< #line 658 "parser.jay"
---
> case 138:
> #line 707 "parser.jay"
1169,1170c1231,1232
< case 133:
< #line 659 "parser.jay"
---
> case 139:
> #line 708 "parser.jay"
1173,1174c1235,1236
< case 134:
< #line 663 "parser.jay"
---
> case 140:
> #line 712 "parser.jay"
1177,1178c1239,1240
< case 135:
< #line 666 "parser.jay"
---
> case 141:
> #line 715 "parser.jay"
1181,1182c1243,1244
< case 136:
< #line 670 "parser.jay"
---
> case 142:
> #line 719 "parser.jay"
1185,1186c1247,1248
< case 137:
< #line 672 "parser.jay"
---
> case 143:
> #line 721 "parser.jay"
1189,1190c1251,1252
< case 138:
< #line 675 "parser.jay"
---
> case 144:
> #line 724 "parser.jay"
1193,1194c1255,1256
< case 139:
< #line 677 "parser.jay"
---
> case 145:
> #line 726 "parser.jay"
1197,1198c1259,1260
< case 140:
< #line 679 "parser.jay"
---
> case 146:
> #line 728 "parser.jay"
1201,1202c1263,1264
< case 141:
< #line 681 "parser.jay"
---
> case 147:
> #line 730 "parser.jay"
1205,1206c1267,1268
< case 142:
< #line 683 "parser.jay"
---
> case 148:
> #line 732 "parser.jay"
1209,1210c1271,1280
< case 143:
< #line 685 "parser.jay"
---
> case 149:
> #line 735 "parser.jay"
>   { yyVal = new Expr.E_require(((Expr)yyVals[-1+yyTop])); }
>   break;
> case 150:
> #line 737 "parser.jay"
>   { yyVal = new Expr.E_ensure(((Expr)yyVals[-1+yyTop])); }
>   break;
> case 151:
> #line 739 "parser.jay"
1213,1214c1283,1284
< case 144:
< #line 686 "parser.jay"
---
> case 152:
> #line 740 "parser.jay"
1217,1218c1287,1288
< case 145:
< #line 687 "parser.jay"
---
> case 153:
> #line 741 "parser.jay"
1221,1222c1291,1292
< case 146:
< #line 689 "parser.jay"
---
> case 154:
> #line 743 "parser.jay"
1225,1226c1295,1296
< case 147:
< #line 690 "parser.jay"
---
> case 155:
> #line 744 "parser.jay"
1229,1230c1299,1300
< case 148:
< #line 691 "parser.jay"
---
> case 156:
> #line 745 "parser.jay"
1233,1234c1303,1304
< case 149:
< #line 692 "parser.jay"
---
> case 157:
> #line 746 "parser.jay"
1237,1238c1307,1308
< case 150:
< #line 693 "parser.jay"
---
> case 158:
> #line 747 "parser.jay"
1241,1242c1311,1312
< case 151:
< #line 694 "parser.jay"
---
> case 159:
> #line 748 "parser.jay"
1245,1246c1315,1316
< case 152:
< #line 695 "parser.jay"
---
> case 160:
> #line 749 "parser.jay"
1249,1250c1319,1320
< case 153:
< #line 696 "parser.jay"
---
> case 161:
> #line 750 "parser.jay"
1253,1254c1323,1324
< case 154:
< #line 698 "parser.jay"
---
> case 162:
> #line 752 "parser.jay"
1257,1258c1327,1328
< case 155:
< #line 699 "parser.jay"
---
> case 163:
> #line 753 "parser.jay"
1261,1262c1331,1332
< case 156:
< #line 700 "parser.jay"
---
> case 164:
> #line 754 "parser.jay"
1265,1266c1335,1336
< case 157:
< #line 701 "parser.jay"
---
> case 165:
> #line 755 "parser.jay"
1269,1270c1339,1340
< case 158:
< #line 702 "parser.jay"
---
> case 166:
> #line 756 "parser.jay"
1273,1274c1343,1344
< case 159:
< #line 703 "parser.jay"
---
> case 167:
> #line 757 "parser.jay"
1277,1278c1347,1348
< case 160:
< #line 704 "parser.jay"
---
> case 168:
> #line 758 "parser.jay"
1281,1282c1351,1352
< case 163:
< #line 710 "parser.jay"
---
> case 171:
> #line 764 "parser.jay"
1285,1286c1355,1356
< case 164:
< #line 711 "parser.jay"
---
> case 172:
> #line 765 "parser.jay"
1289,1290c1359,1360
< case 165:
< #line 715 "parser.jay"
---
> case 173:
> #line 769 "parser.jay"
1301,1302c1371,1372
< case 166:
< #line 727 "parser.jay"
---
> case 174:
> #line 781 "parser.jay"
1307,1308c1377,1378
< case 167:
< #line 733 "parser.jay"
---
> case 175:
> #line 787 "parser.jay"
1315,1316c1385,1386
< case 168:
< #line 740 "parser.jay"
---
> case 176:
> #line 794 "parser.jay"
1319,1320c1389,1390
< case 169:
< #line 741 "parser.jay"
---
> case 177:
> #line 795 "parser.jay"
1323,1324c1393,1394
< case 170:
< #line 744 "parser.jay"
---
> case 178:
> #line 798 "parser.jay"
1327,1328c1397,1398
< case 172:
< #line 749 "parser.jay"
---
> case 180:
> #line 803 "parser.jay"
1331,1332c1401,1402
< case 173:
< #line 751 "parser.jay"
---
> case 181:
> #line 805 "parser.jay"
1335,1336c1405,1406
< case 174:
< #line 754 "parser.jay"
---
> case 182:
> #line 808 "parser.jay"
1339,1340c1409,1410
< case 175:
< #line 755 "parser.jay"
---
> case 183:
> #line 809 "parser.jay"
1343,1344c1413,1414
< case 176:
< #line 758 "parser.jay"
---
> case 184:
> #line 812 "parser.jay"
1347,1348c1417,1418
< case 177:
< #line 759 "parser.jay"
---
> case 185:
> #line 813 "parser.jay"
1351,1352c1421,1422
< case 178:
< #line 762 "parser.jay"
---
> case 186:
> #line 816 "parser.jay"
1355,1356c1425,1426
< case 179:
< #line 763 "parser.jay"
---
> case 187:
> #line 817 "parser.jay"
1359,1360c1429,1430
< case 180:
< #line 766 "parser.jay"
---
> case 188:
> #line 820 "parser.jay"
1363,1364c1433,1434
< case 181:
< #line 767 "parser.jay"
---
> case 189:
> #line 821 "parser.jay"
1367,1368c1437,1438
< case 182:
< #line 771 "parser.jay"
---
> case 190:
> #line 825 "parser.jay"
1371,1372c1441,1442
< case 183:
< #line 773 "parser.jay"
---
> case 191:
> #line 827 "parser.jay"
1375,1376c1445,1446
< case 184:
< #line 775 "parser.jay"
---
> case 192:
> #line 829 "parser.jay"
1379,1380c1449,1450
< case 186:
< #line 778 "parser.jay"
---
> case 194:
> #line 832 "parser.jay"
1383,1384c1453,1454
< case 187:
< #line 780 "parser.jay"
---
> case 195:
> #line 834 "parser.jay"
1387,1388c1457,1458
< case 188:
< #line 782 "parser.jay"
---
> case 196:
> #line 836 "parser.jay"
1391,1392c1461,1462
< case 189:
< #line 784 "parser.jay"
---
> case 197:
> #line 838 "parser.jay"
1395,1396c1465,1466
< case 190:
< #line 788 "parser.jay"
---
> case 198:
> #line 842 "parser.jay"
1399,1400c1469,1470
< case 191:
< #line 790 "parser.jay"
---
> case 199:
> #line 844 "parser.jay"
1403,1404c1473,1474
< case 192:
< #line 793 "parser.jay"
---
> case 200:
> #line 847 "parser.jay"
1407,1408c1477,1478
< case 193:
< #line 794 "parser.jay"
---
> case 201:
> #line 848 "parser.jay"
1411,1412c1481,1482
< case 194:
< #line 797 "parser.jay"
---
> case 202:
> #line 851 "parser.jay"
1415,1416c1485,1486
< case 195:
< #line 798 "parser.jay"
---
> case 203:
> #line 852 "parser.jay"
1419,1420c1489,1490
< case 196:
< #line 802 "parser.jay"
---
> case 204:
> #line 856 "parser.jay"
1423,1424c1493,1494
< case 197:
< #line 806 "parser.jay"
---
> case 205:
> #line 860 "parser.jay"
1458c1528
<     0,   59,   59,   59,   59,    1,    3,    3,    5,    5,
---
>     0,   60,   60,   60,   60,    1,    3,    3,    5,    5,
1460,1477c1530,1548
<    12,   58,   58,   30,   30,   31,   31,   32,   32,   10,
<    10,   61,   33,   33,   62,   14,   14,   15,   15,   34,
<    34,   35,   35,   60,   60,   36,   36,   64,   63,   37,
<    37,   38,   38,   66,   66,   66,   66,   66,   66,   66,
<    66,   39,   39,   40,   41,   41,   67,   29,   29,   68,
<    65,   65,   65,   21,   21,   22,   22,   24,   69,   42,
<    42,   43,   43,   44,   44,   45,   45,    9,    9,   11,
<    11,    7,    7,    7,    7,    7,    7,    7,   46,   46,
<     8,    6,    6,   20,   20,   16,   16,   70,   70,   70,
<    70,   70,   70,   70,   70,   70,   18,   18,   55,   55,
<    17,   17,   72,   72,   73,   73,   73,   73,   74,   75,
<    75,   47,   47,   19,    4,   71,   71,   71,   71,   71,
<    71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
<    71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
<    71,   71,   56,   56,   23,   76,   77,   48,   48,   49,
<    49,   78,   78,   50,   50,   51,   51,   27,   27,   57,
<    57,   25,   25,   25,   25,   25,   25,   25,   25,   28,
<    26,   54,   54,   53,   53,   80,   79,
---
>    12,   59,   59,   30,   30,   31,   31,   32,   32,   10,
>    10,   62,   33,   33,   63,   14,   14,   15,   15,   34,
>    34,   35,   35,   61,   61,   36,   36,   65,   64,   37,
>    37,   56,   56,   38,   38,   68,   68,   68,   68,   68,
>    68,   68,   39,   39,   40,   41,   41,   69,   29,   29,
>    70,   66,   66,   66,   66,   66,   67,   67,   67,   21,
>    21,   22,   22,   24,   71,   42,   42,   43,   43,   44,
>    44,   45,   45,    9,    9,   11,   11,    7,    7,    7,
>     7,    7,    7,    7,   46,   46,    8,    6,    6,   20,
>    20,   16,   16,   72,   72,   72,   72,   72,   72,   72,
>    72,   72,   18,   18,   55,   55,   17,   17,   74,   74,
>    75,   75,   75,   75,   76,   77,   77,   47,   47,   19,
>     4,   73,   73,   73,   73,   73,   73,   73,   73,   73,
>    73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
>    73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
>    57,   57,   23,   78,   79,   48,   48,   49,   49,   80,
>    80,   50,   50,   51,   51,   27,   27,   58,   58,   25,
>    25,   25,   25,   25,   25,   25,   25,   28,   26,   54,
>    54,   53,   53,   82,   81,
1485,1499c1556,1571
<     2,    0,    2,    1,    1,    1,    1,    1,    1,    1,
<     1,    0,    1,    3,    0,    2,    6,    4,    1,    1,
<     7,    3,    1,    8,    5,    1,    4,    2,    3,    1,
<     3,    0,    1,    0,    2,    1,    3,    0,    1,    0,
<     1,    1,    4,    1,    3,    1,    2,    2,    1,    3,
<     1,    1,    3,    1,    3,    1,    1,    1,    1,    2,
<     1,    1,    5,    5,    3,    3,    1,    1,    3,    3,
<     2,    3,    0,    1,    2,    6,    5,    5,    1,    1,
<     2,    2,    0,    3,    0,    4,    3,    7,    8,    2,
<     8,    4,    3,    4,    2,    3,    3,    3,    3,    3,
<     3,    3,    3,    2,    2,    2,    2,    2,    2,    2,
<     1,    1,    3,    1,    7,    2,    2,    1,    3,    0,
<     1,    2,    4,    1,    3,    1,    3,    1,    0,    3,
<     1,    2,    1,    4,    1,    3,    2,    4,    3,    3,
<     1,    3,    3,    3,    1,    3,    4,
---
>     2,    0,    2,    0,    2,    1,    1,    1,    1,    1,
>     1,    1,    0,    1,    3,    0,    2,    6,    4,    1,
>     1,    7,    8,    3,    4,    1,    7,    3,    1,    8,
>     5,    1,    4,    2,    3,    1,    3,    0,    1,    0,
>     2,    1,    3,    0,    1,    0,    1,    1,    4,    1,
>     3,    1,    2,    2,    1,    3,    1,    1,    3,    1,
>     3,    1,    1,    1,    1,    2,    1,    1,    5,    5,
>     3,    3,    1,    1,    3,    3,    2,    3,    0,    1,
>     2,    6,    5,    5,    1,    1,    2,    2,    0,    3,
>     0,    4,    3,    7,    8,    2,    8,    4,    4,    4,
>     3,    4,    2,    3,    3,    3,    3,    3,    3,    3,
>     3,    2,    2,    2,    2,    2,    2,    2,    1,    1,
>     3,    1,    7,    2,    2,    1,    3,    0,    1,    2,
>     4,    1,    3,    1,    3,    1,    0,    3,    1,    2,
>     1,    4,    1,    3,    2,    4,    3,    3,    1,    3,
>     3,    3,    1,    3,    4,
1502,1540c1574,1615
<    59,   57,   54,   58,   56,   60,    0,   55,    0,   61,
<     0,    5,    0,    1,    0,    0,    0,    0,    0,   11,
<     0,    0,    0,    0,    0,    0,    0,    0,   12,   53,
<     0,    0,    0,    2,    6,    0,    0,    0,    0,    0,
<     0,    0,   10,    0,    0,    0,    0,    0,    0,    0,
<     0,    0,    0,    3,    4,   49,    0,    0,    0,    0,
<    70,    0,    0,    0,   73,    0,   45,    0,   31,    0,
<     0,    0,   94,    0,    0,    0,   96,    0,    0,    0,
<     0,  102,  101,    0,    0,    0,    0,    0,   14,   18,
<    91,    0,   51,   20,    0,    0,    0,    0,    0,    0,
<    17,   29,    0,   98,   97,    0,    0,    0,   15,    0,
<    19,    0,   37,   41,    0,   25,    0,    0,   72,    0,
<    35,   63,   21,    0,    0,    0,   32,   39,   16,   95,
<     0,    0,  100,    0,   43,    0,    0,    0,    0,    0,
<    76,   78,    0,    0,    0,   34,    0,    0,   93,    0,
<     0,   27,    0,    0,  121,    0,    0,    0,   64,   66,
<     8,    7,    0,   83,    0,    0,    0,    0,   47,    0,
<     0,  122,  112,  111,    0,    0,    0,    0,    0,    0,
<     0,  109,    0,  108,    0,    0,    0,    0,    0,    0,
<     0,  118,    0,    0,  162,    0,    0,    0,  104,  106,
<   129,  130,  132,  161,    0,    0,   75,    0,    0,   69,
<     0,   71,   77,  154,  155,  156,  157,  158,  159,  160,
<     0,    0,    0,    0,    0,    0,    0,    0,    0,  125,
<     0,  110,    0,    0,  145,    0,    0,    0,    0,    0,
<     0,    0,    0,    0,    0,    0,    0,    0,  134,    0,
<     0,    0,  166,    0,    0,   81,    0,    0,    0,    0,
<     0,    0,    0,    0,  183,    0,    0,    0,  191,    0,
<   185,    0,    0,    0,  167,    0,    0,    0,    0,  105,
<     0,  116,    0,    0,    0,    0,    0,    0,    0,    0,
<     0,    0,    0,    0,    0,   89,    0,  171,    0,    0,
<   115,    0,    0,    0,    0,    0,    0,    0,    0,    0,
<     0,  195,    0,  187,    0,    0,  178,  182,    0,    0,
<   190,    0,    0,  175,    0,    0,  120,    0,    0,  144,
<     0,    0,    0,  136,    0,   67,    0,   74,   68,    0,
<     0,    0,  128,    0,    0,    0,  186,    0,    0,    0,
<     0,  193,    0,  127,  113,  114,    0,    0,  169,    0,
<    85,    0,    0,  135,    0,  194,  184,    0,  188,  126,
<     0,    0,    0,    0,    0,    0,    0,    0,    0,   87,
<     0,    0,  139,  135,  133,  177,  197,
---
>    61,   59,   56,   60,   58,   62,    0,   57,    0,    0,
>     5,    0,    1,    0,    0,    0,    0,    0,   11,    0,
>     0,    0,    0,    0,    0,    0,    0,   12,   55,    0,
>     0,    0,    2,    6,    0,    0,    0,    0,    0,    0,
>     0,   10,    0,    0,    0,    0,    0,    0,    0,    0,
>     0,    0,    3,    4,   49,    0,    0,    0,    0,   71,
>     0,    0,    0,   76,    0,   45,    0,   31,    0,    0,
>     0,  100,    0,    0,    0,  102,    0,    0,    0,    0,
>   108,  107,    0,    0,    0,   79,    0,    0,    0,    0,
>    14,   18,    0,   97,    0,   51,   20,    0,    0,    0,
>     0,    0,    0,   17,   29,    0,  104,  103,    0,    0,
>     0,   15,    0,    0,   19,   53,    0,   37,   41,    0,
>    25,    0,    0,    0,   74,    0,   35,   64,   21,    0,
>     0,    0,   32,   39,   16,  101,    0,    0,  106,    0,
>    78,    0,   43,    0,    0,    0,   75,    0,    0,    0,
>    82,   84,    0,    0,    0,   34,    0,    0,   99,    0,
>     0,    0,   27,    0,    0,    0,  127,    0,    0,    0,
>    65,   67,    8,    7,    0,   89,    0,    0,    0,    0,
>     0,   47,    0,    0,    0,  128,  118,  117,    0,    0,
>     0,    0,    0,    0,    0,  115,    0,  114,    0,    0,
>     0,    0,    0,    0,    0,    0,    0,  124,    0,    0,
>   170,    0,    0,    0,  110,  112,  135,  136,  138,  169,
>     0,    0,   81,    0,    0,    0,    0,   72,   83,  162,
>   163,  164,  165,  166,  167,  168,    0,    0,    0,    0,
>     0,    0,    0,    0,    0,  131,    0,    0,    0,  116,
>     0,    0,  153,    0,    0,    0,    0,    0,    0,    0,
>     0,    0,    0,    0,    0,    0,  140,    0,    0,    0,
>   174,    0,    0,   87,    0,   70,    0,   77,   73,    0,
>     0,    0,    0,    0,    0,  191,    0,    0,    0,  199,
>     0,  193,    0,    0,    0,  175,    0,    0,    0,    0,
>     0,    0,  111,    0,  122,    0,    0,    0,    0,    0,
>     0,    0,    0,    0,    0,    0,    0,    0,   95,    0,
>   179,    0,    0,  121,    0,    0,    0,    0,    0,    0,
>     0,    0,    0,    0,  203,    0,  195,    0,    0,  186,
>   190,    0,    0,  198,    0,    0,  183,  150,  149,    0,
>     0,  126,    0,    0,  152,    0,    0,    0,  142,    0,
>    68,    0,   80,    0,    0,    0,    0,  134,    0,    0,
>     0,  194,    0,    0,    0,    0,  201,    0,  133,  119,
>   120,    0,    0,  177,    0,   91,   69,    0,    0,  141,
>     0,  202,  192,    0,  196,  132,    0,    0,    0,    0,
>     0,    0,    0,    0,    0,   93,    0,    0,  145,  141,
>   139,  185,  205,
1542,1550c1617,1626
<   protected static  short [] yyDgoto  = {            11,
<    36,   19,  163,  376,  192,  115,   81,   82,  297,   70,
<    92,   61,   37,   47,  193,  194,  195,  196,  156,  197,
<   228,  142,  198,  119,  269,  270,  318,  271,  212,   89,
<   116,   71,   96,  100,  113,  135,   62,   63,  121,  122,
<   144,  164,  165,  338,  361,   83,  157,  298,  299,  230,
<   377,   14,  311,  272,  234,  237,  316,   60,   15,   68,
<    72,   97,   58,  136,   64,   16,  145,   65,  166,  199,
<   200,  249,  201,  202,  203,  204,  231,  300,  378,  312,
---
>   protected static  short [] yyDgoto  = {            10,
>    35,   18,  175,  402,  208,  120,   80,   81,  320,   69,
>    95,   60,   36,   46,  209,  210,  211,  212,  168,  213,
>   124,  152,  214,  125,  290,  291,  341,  292,  278,   91,
>   121,   70,   99,  103,  118,  143,   61,   12,  127,  128,
>   154,  176,  177,  363,  386,   82,  169,  321,  322,  246,
>   403,   13,  334,  293,  252,   84,  255,  339,   59,   14,
>    67,   71,  100,   57,  144,   63,   85,   15,  155,   64,
>   178,  215,  216,  267,  217,  218,  219,  220,  247,  323,
>   404,  335,
1552,1591c1628,1670
<   protected static  short [] yySindex = {         1123,
<     0,    0,    0,    0,    0,    0, -184,    0, -165,    0,
<     0,    0,  677,    0, 1123,  562,   52,   46,  -14,    0,
<    52,   89,  -91,  -91,  -91,  -91,  -91,  -91,    0,    0,
<  -165, -165, 1123,    0,    0,  134,   55,   71,   79,   94,
<   126,   99,    0,  172,  115,   34,  -36,  562,  562,  124,
<    -2,  482,  562,    0,    0,    0,  223,  229,  173,    8,
<     0,  197,  537,  562,    0,  200,    0,  -91,    0,   34,
<   226,   -2,    0,  116,  173,  173,    0,  173,  331,    1,
<   335,    0,    0,  257,   93,   34,   80,  173,    0,    0,
<     0,   34,    0,    0,  271,  286,  274, -218,  360,   93,
<     0,    0,  364,    0,    0,  -37,  173,  173,    0,  173,
<     0,  166,    0,    0,  -16,    0, -218,  -15,    0,  562,
<     0,    0,    0,  -91,  388,  390,    0,    0,    0,    0,
<   394,   80,    0,  123,    0,  393,  173,   25,  171,  317,
<     0,    0,  135,  321,  562,    0,  -75,  -75,    0,  173,
<   166,    0,  173,  187,    0,  323, 1004,  -91,    0,    0,
<     0,    0,  392,    0,  412,  410,  414,   80,    0,  -43,
<   397,    0,    0,    0, 1181, 1181, 1181, 1181, 1181, 1181,
<  1181,    0, 1181,    0, 1181,  419,  420,  -91,  -17, 1118,
<  1102,    0,  165,  361,    0,  -23,  423,  347,    0,    0,
<     0,    0,    0,    0,  413,  173,    0,  -75,  422,    0,
<   211,    0,    0,    0,    0,    0,    0,    0,    0,    0,
<   634,  465, 1181, 1181,  175,   74,   84,  347,  429,    0,
<   195,    0,  -29,  453,    0,  634,  436,  456, 1181, 1181,
<  1181, 1181, 1181, 1181, 1181, 1181, 1181,    0,    0, 1181,
<   212,  241,    0,  173,   80,    0,  173,  242, 1181,  248,
<   344,  351, 1181,  250,    0,   74,   73,   74,    0,  -30,
<     0,  470,  390,  452,    0, 1181,   34,  173, 1181,    0,
<   173,    0, 1181,  421,  -75,  255,  255,  -33,    5,  292,
<    98,  732,  634,  255,  634,    0, 1247,    0,  477,  475,
<     0,    2, -231,  464,  634,  466, 1181,  402,  534,  467,
<   486,    0,  -34,    0,  219,  487,    0,    0,   74,   74,
<     0, 1181,  544,    0,  -19,  616,    0,   -4,  634,    0,
<   521,  111,  634,    0,  212,    0, -165,    0,    0,  173,
<   558,  124,    0,   74,  250,  440,    0,   74,  473,  219,
<   -30,    0,  623,    0,    0,    0,  510, 1181,    0,  525,
<     0, -237, 1181,    0,  219,    0,    0,  219,    0,    0,
<   173,  634, -165, 1181,  634,   74,  447,  449,   80,    0,
<   634, -105,    0,    0,    0,    0,    0,
---
>   protected static  short [] yySindex = {         1083,
>     0,    0,    0,    0,    0,    0, -192,    0, -156,    0,
>     0,  554,    0, 1083,  782,  104,   55,   41,    0,  104,
>   124,  -57,  -57,  -57,  -57,  -57,  -57,    0,    0, -156,
>  -156, 1083,    0,    0,  163,   83,   96,  113,  120,  188,
>   130,    0,  226,  192,   71,   43,  782,  782,  224,   78,
>   319,  782,    0,    0,    0,  310,  316,   94,   72,    0,
>   242, 1287,  782,    0,  245,    0,  -57,    0,   71,  250,
>    78,    0,  118,   94,   94,    0,   94,  341,  -54,  345,
>     0,    0,  422,  266,  782,    0,  100,   71,  107,   94,
>     0,    0,  116,    0,   71,    0,    0,  283,  308,  313,
>  -134,  379,  100,    0,    0,  381,    0,    0,  -38,   94,
>    94,    0,   94,   71,    0,    0,  182,    0,    0,   -5,
>     0,   71, -134,   29,    0,  782,    0,    0,    0,  -57,
>   402,  404,    0,    0,    0,    0,  406,  107,    0, -134,
>     0,  134,    0,  401,   94, -134,    0,   38,  180,  331,
>     0,    0,  116,  342,  782,    0,  -74,  -74,    0,  102,
>    94,  182,    0,  105,   94,  206,    0,  346,  922,  -57,
>     0,    0,    0,    0,  412,    0,  432,  433,  437,   94,
>   107,    0,   94,   -9,  420,    0,    0,    0, 1152, 1152,
>  1152, 1152, 1152, 1152, 1152,    0, 1152,    0, 1152,  461,
>   466,  -57,  -15,  382,  384, 1078, 1136,    0,  213,  487,
>     0,  -24,  467,  388,    0,    0,    0,    0,    0,    0,
>   454,   94,    0,  -74,  457,  -42,  -42,    0,    0,    0,
>     0,    0,    0,    0,    0,    0,  664,  220, 1152, 1152,
>   200,   14,  -69,  388,  458,    0,  223, 1152, 1152,    0,
>   390,  481,    0,  664,  472,  493, 1152, 1152, 1152, 1152,
>  1152, 1152, 1152, 1152, 1152,    0,    0, 1152,  247,  278,
>     0,   94,  107,    0,   94,    0,  267,    0,    0, 1152,
>   284,  -35,   77, 1152,  286,    0,   14,  125,   14,    0,
>   -32,    0,  504,  404,  489,    0, 1152,   71,  409,  506,
>    94, 1152,    0,   94,    0, 1152,  460,  -74,  293,  293,
>   160,   65,   70,  138,  548,  664,  293,  664,    0, 1210,
>     0,  517,  516,    0,    1, -248,  302,  664,  505, 1152,
>   441,  644,  514,  507,    0,  -30,    0,  260,  522,    0,
>     0,   14,   14,    0, 1152,  653,    0,    0,    0,  -31,
>   616,    0,   -8,  664,    0,  545,   13,  664,    0,  247,
>     0, -156,    0,  529,   94,  523,  224,    0,   14,  286,
>   473,    0,   14,  498,  260,  -32,    0,  685,    0,    0,
>     0,  543, 1152,    0,  558,    0,    0, -245, 1152,    0,
>   260,    0,    0,  260,    0,    0,   94,  664, -156, 1152,
>   664,   14,  478,  482,  107,    0,  664, -110,    0,    0,
>     0,    0,    0,
1593,1603c1672
<   protected static  short [] yyRindex = {           11,
<     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
<     0,    0,    0,    0,    3, 1037,   16,    0,    0,    0,
<    91,    0,    0,    0,    0,    0,    0,    0,    0,    0,
<     0,    0,  650,    0,    0,  -35,    0,    0,    0,    0,
<     0,    0,    0,    0,    0,    0,   31,  748,  748,  316,
<   302,    0,  748,    0,    0,    0,    0,  339,    0,   21,
<     0,    0, -164,  748,    0,    0,    0,    0,    0, -137,
<     0,  302,    0,    0,    0,    0,    0,    0,  182,    0,
<   476,    0,    0,    0,  -12,    0,   35,    0,    0,    0,
<     0, -137,    0,    0,  161,    0,  450,    0,    0,  273,
---
>   protected static  short [] yyRindex = {            9,
1605c1674
<     0,    0,    0,    0,   14,    0,    0,    0,    0, -120,
---
>     0,    0,    0,    4, 1037,   30,    0,    0,    0,  146,
1607,1632c1676,1714
<     0,  560,    0,    0,    0,  958,    0,    0,    0,  923,
<     0,    0,  329,    0, -120,    0,  543,  543,    0,    0,
<     0,    0,    0,    0,    0,    0,  291,    0,    0,    0,
<     0,    0,    0,    0,    0,  548,    0,  719,    0,    0,
<     0,    0,    0,    0,  291,  291,  291,  291,  291,  291,
<   291,    0,  291,    0,  291,    0,    0,    0,  109,  291,
<   291,    0,    0,  214,    0,  221,  151,    0,    0,    0,
<     0,    0,    0,    0,    0,    0,    0,  543,    0,    0,
<     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
<   665,    0,  291,  291,    0,    0,    0,    0,    0,    0,
<   939,    0,    0,    0,    0,    4,  527,    0,  291,  291,
<   291,  291,  291,  291,  291,  291,  291,  825,    0,  291,
<  1016,    0,    0,    0,   29,    0,    0,    0,  291,    0,
<     0,    0,  291,    0,    0,    0,    0,   -8,    0,    0,
<     0,    0,  569,    0,    0,  291, -137,    0,  291,    0,
<     0,    0,  -72,    0,  543,  277,  285,  385,  408,  471,
<   433,   83,  720,  380,  811,    0,  291,    0,    0,  590,
<     0,    0,  -11,    0,  850,    0,  291,    0,    0,    0,
<   286,    0,    0,    0,   30,  527,    0,    0,    0,    0,
<     0,  291,    0,    0,    0,  591,    0,    0,   32,    0,
<     0,  -10,  157,    0, 1016,    0,    0,    0,    0,    0,
<     0,   82,    0,    0,  509,    0,    0,  542,    0,   -6,
<   596,    0,    0,    0,    0,    0,    0,  291,    0,   -5,
<     0,    0,  291,    0,  -20,    0,    0,   92,    0,    0,
<     0,  177,    0,  291,  861,    0,    0,  513,  516,    0,
<   866,    0,    0,    0,    0,    0,    0,
---
>     0,  679,    0,    0,  -43,    0,    0,    0,    0,    0,
>     0,    0,    0,    0,    0,  -46,  706,  706,  351,  430,
>     0,  997,    0,    0,    0,    0,   79,    0,   32,    0,
>     0,  -90,  706,    0,    0,    0,    0,    0, -119,    0,
>   430,    0,    0,    0,    0,    0,    0,  574,    0,  643,
>     0,    0,  -90,    0,  997,    0,  -41,    0,   18,    0,
>     0,    0,  -90,    0, -119,    0,    0,   89,    0,  492,
>     0,    0,  -73,    0,    0,    0,    0,    0,    0,    0,
>     0,    0,    0, -119,    0,    0,    0,    0,    0,    2,
>     0, -119,    0,    0,    0,  -77,    0,    0,    0,    0,
>     0,    0,    0,    0,    0,    0,    0,   87,    0,    0,
>     0,    0,    0,  697,    0,    0,    0,    0,    0,  777,
>     0,    0,  356,    0,  -77,    0,  578,  578,    0,    0,
>     0,    0,    0,    0,    0,    0,    0,    0,  324,    0,
>     0,    0,    0,    0,    0,    0,    0,  582,    0,    0,
>   696,    0,    0,    0,    0,    0,    0,    0,  324,  324,
>   324,  324,  324,  324,  324,    0,  324,    0,  324,    0,
>     0,    0,  103,    0,    0,  324,  324,    0,    0,  142,
>     0,  232,  153,    0,    0,    0,    0,    0,    0,    0,
>     0,    0,    0,  578,    0,    0,    0,    0,    0,    0,
>     0,    0,    0,    0,    0,    0,  702,    0,  324,  324,
>     0,    0,    0,    0,    0,    0,  850,  324,  324,    0,
>     0,    0,    0,   -1,  532,    0,  324,  324,  324,  324,
>   324,  324,  324,  324,  324,  762,    0,  324, 1007,    0,
>     0,    0,   56,    0,    0,    0,    0,    0,    0,  324,
>     0,    0,    0,  324,    0,    0,    0,    0,  -12,    0,
>     0,    0,    0,  565,    0,    0,  324, -119,    0,    0,
>     0,  324,    0,    0,    0,  -63,    0,  578,  261,  330,
>   305,  459,  515,  541,  569, 1259,  416, 1388,    0,  324,
>     0,    0,  588,    0,    0,    3,    0, 1443,    0,  324,
>     0,    0,    0,  308,    0,    0,    0,    6,  532,    0,
>     0,    0,    0,    0,  324,    0,    0,    0,    0,    0,
>   591,    0,    0,   17,    0,    0,   -6,   73,    0, 1007,
>     0,    0,    0,    0,    0,    0,  385,    0,    0,  512,
>     0,    0,  549,    0,   -4,  600,    0,    0,    0,    0,
>     0,    0,  324,    0,   26,    0,    0,    0,  324,    0,
>    -2,    0,    0,   39,    0,    0,    0,  155,    0,  324,
>  1445,    0,    0,  519,  524,    0, 1447,    0,    0,    0,
>     0,    0,    0,
1635,1642c1717,1725
<    12,   58,  426,    0,   -7,  -51,  272,    0,    0,    0,
<   497,  147,  554,    0,  -28, 1342, -112,    0,  256,    0,
<    64,    0,    0,    0,    0,  755,    0,  468,    0,    0,
<    38,  582,  532,   20,  559,  512,  326,   43,    0,    0,
<   519,    0, -104,    0,  293,  561,    0,    0,  334,  400,
<   295,  156,    0,  350,  405,    0,    0,    0,    0,  345,
<     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
<     0, -196,    0,    0,    0,    0,    0,    0,    0,  336,
---
>    21,   44,  403,    0,   -7,  -50,  248,    0,    0,    0,
>   -52,  143,  465,    0,  435, 1355,  -78,    0,  237,    0,
>   -56,    0,    0,   48,    0,  855,    0,  447,  434,    0,
>   -61,  592,  534,    7,  556,  528,   23, 1105,    0,    0,
>   513,    0, -116,    0,  268,  564,    0,    0,  325,  393,
>   282,  145,    0,  353,  397,  615,    0,    0,    0,    0,
>   340,    0,    0,    0,    0,    0,    0,    0,    0,   42,
>     0,    0,    0, -199,    0,    0,    0,    0,    0,    0,
>     0,  338,
1644,1793c1727,1891
<   protected static  short [] yyTable = {            20,
<    80,   20,   13,  130,   65,  141,  347,   87,  247,  320,
<    13,  280,  247,  320,  279,  210,  251,  211,   18,  161,
<   124,  355,  226,   43,   20,   36,  106,  137,  281,    9,
<     9,    9,  179,    9,  189,  179,  356,  189,  196,   35,
<   284,   98,   13,  167,   79,  139,  247,   84,   42,   84,
<   179,   79,  189,   86,   26,   86,  132,   13,   30,  109,
<   336,  337,  164,  117,  148,   57,   22,   79,   79,   79,
<    79,  125,   79,   17,   26,   13,    6,  108,  374,   95,
<    79,   24,  153,  108,  179,  253,  189,   36,  181,   44,
<   163,   22,   21,   90,   90,   23,  164,   31,  168,   79,
<    79,  170,   79,  256,  196,  114,   32,  140,   33,  126,
<    42,   84,  266,  266,  346,  275,  179,   86,  189,  349,
<    38,   44,  181,  152,  163,   90,  152,   13,  138,   79,
<     9,    9,    9,   99,    9,   95,   26,   52,    9,  247,
<   152,  152,   79,   24,  131,   79,   12,   34,    9,    9,
<   180,    9,   38,   22,  255,  118,   31,   23,  162,  162,
<   227,   12,  143,  267,  267,  314,   35,  265,  265,  205,
<    29,  358,   44,   46,  152,  152,   44,   48,  161,   12,
<   331,    9,   35,    9,  180,    9,   52,  143,   45,   52,
<   117,  117,  117,   49,  117,  264,  264,  172,   79,  225,
<   172,   50,  302,   38,   44,  303,  152,  152,  117,  117,
<   385,  319,   78,    9,    9,    9,   51,  173,  268,  162,
<   173,   53,   92,   92,   38,   92,  325,  239,  240,  328,
<    54,  239,  240,  241,  242,  243,  244,  245,  273,   55,
<    92,   56,   92,  117,   59,   36,   79,   67,   98,   79,
<     9,    9,    9,    9,    9,    9,    9,   36,  268,  268,
<   268,  107,  107,   85,  107,  239,  240,  241,   42,   69,
<    79,  108,   86,   79,  117,  117,   92,  108,  107,  107,
<    42,   52,  319,  278,   62,   62,  319,  246,  362,   52,
<   250,   52,   56,   52,   52,  108,  162,   52,  108,   52,
<    88,   52,   52,    9,   92,   52,    9,  179,  179,  189,
<   108,  268,  268,  107,   52,  108,  108,  146,  146,  379,
<   146,   90,   52,   22,   94,  147,  147,   23,  147,  360,
<    21,   21,   79,  247,  146,  146,  268,  123,  123,   44,
<   268,   35,  147,  147,  107,  107,  104,  105,    9,  152,
<   101,    9,    9,    9,    9,    9,    9,    9,  239,  240,
<   241,  242,  243,   79,  152,  360,   38,   42,  268,  146,
<   107,    9,    9,  125,   66,  103,  110,  147,   84,   40,
<     9,  111,  152,    9,  307,  247,  112,    9,  152,   93,
<     9,  308,  247,  120,  108,  152,    9,  124,   38,  152,
<   146,  146,  247,    9,    9,    9,    9,    9,  147,  147,
<   123,  117,  117,  117,  117,  117,  117,  117,  127,  248,
<   153,  153,  129,  153,  134,  148,   28,  147,  148,  148,
<    21,   73,  117,   40,  149,  150,  151,  153,  153,   92,
<   154,  155,  148,  148,   91,  159,  171,  172,  149,  206,
<   117,  149,  207,  208,  209,  213,  117,   75,  223,  224,
<    76,  238,   92,  117,  117,  149,  149,  117,  252,  140,
<   254,   92,  153,  151,   92,   77,  151,  148,   92,  257,
<   258,  107,  107,  107,  107,  107,  107,  107,  263,  276,
<   151,  151,  277,  282,  283,  285,   92,   92,  301,  296,
<   149,  304,  107,  153,  153,  306,  247,  310,  148,  148,
<   321,  150,  322,  330,  150,  239,   99,  334,  335,   99,
<   107,   78,  339,  340,  342,  151,  107,  344,  150,  150,
<    42,  149,  149,  107,   99,  319,   99,  107,  146,  146,
<   146,  146,  146,  146,  345,  348,  147,  147,  147,  147,
<   147,  147,  239,  240,  241,  242,  151,  151,  146,   30,
<    30,  357,   42,  150,  367,  369,  147,  371,  373,   42,
<    99,  383,  384,   44,   33,  247,  146,   38,   39,   40,
<    41,   42,  146,   82,  147,  247,   90,   38,   80,  146,
<   147,   30,  343,  146,  150,  150,   40,  147,   99,  247,
<   103,  147,  354,  103,  239,  240,  241,  242,  243,  244,
<   245,  239,  240,  241,  242,  243,  244,  245,  103,  123,
<   103,  239,  240,  241,  242,  243,  244,  245,   40,    7,
<   168,  119,   40,  124,  124,   40,  192,  176,  165,  158,
<   387,  153,  153,  153,  153,  153,  153,  148,  148,  148,
<   148,  148,  274,  102,  103,  146,  229,  247,  128,  279,
<   246,  153,  169,  160,  247,  380,  148,  246,  359,  352,
<   133,  149,  149,  149,  149,  247,  324,  246,  386,  153,
<   366,  370,  103,  327,  148,  153,  364,    0,    0,  149,
<   148,    0,  153,    0,    0,    0,  153,  148,  151,  151,
<     0,  148,    0,    0,    0,  140,    0,  149,  140,    0,
<     0,    0,    0,  149,  151,    0,    0,    0,    0,    0,
<   149,    0,  140,  140,  149,  239,  240,  241,  242,  243,
<   244,  245,  151,   99,    0,  150,  150,  150,  151,   21,
<    73,    0,    0,    0,    0,  151,  259,    0,    0,  151,
<     0,   74,  150,    0,    0,    0,   99,  140,    0,    0,
<   143,    0,   48,  143,  260,   99,   75,    0,   99,   76,
<   150,    0,   99,  247,   13,    0,  150,  143,  143,   48,
<     0,  246,    0,  150,   77,    0,    0,  150,  140,  140,
<    99,   99,    0,    0,  239,  240,  241,  242,  243,  244,
<   245,    0,    0,    0,  239,  240,  241,  242,  243,  244,
<   245,    0,  143,   48,    0,   23,    0,  103,  239,  240,
<   241,  242,  243,  244,  245,   24,    0,   25,   26,    1,
<     0,   27,    2,    3,    4,    5,    6,    0,    0,    0,
<   103,   48,    0,  143,  143,    0,   91,    8,   28,  103,
<   246,  137,  103,    0,  137,    0,  103,    0,    0,    0,
<   246,    0,    0,  363,  131,    0,    0,    0,  137,  137,
<    10,    0,   50,    0,  246,  103,  239,  240,  241,  242,
<   243,  244,  245,  239,  240,  241,  242,  243,  244,  245,
<   142,    0,    0,  142,  239,  240,  241,  242,  243,  244,
<   245,  138,    0,  137,  138,    0,  141,  142,  142,  141,
<     0,    0,    0,    0,    0,  131,    0,    0,  138,  138,
<     0,    0,    0,  141,  141,    0,    0,    0,   52,    0,
<     0,    0,  246,    0,  137,  137,    0,    0,   52,  246,
<    52,   52,  142,    0,   52,    0,  140,  131,  124,  124,
<   246,    0,    0,  138,    0,   23,    0,    0,  141,    0,
<     0,   52,  133,    0,  140,   24,    0,   25,   26,    0,
<   140,   27,    0,  142,  142,    0,   48,  140,  174,    0,
<     0,    0,    0,    0,  138,  138,    0,    0,   28,  141,
<   141,    0,  239,  240,  241,  242,  243,  244,    0,   48,
<     0,  143,    0,    0,    0,   52,   52,    0,   48,    0,
<     0,   48,    0,  133,    0,   48,    0,    0,   46,  143,
<   313,  315,  317,    0,    0,  143,   52,    0,    0,  174,
<     0,    0,  143,    0,    0,    0,   52,   52,   52,   52,
<     0,    0,   52,  190,    0,  133,    0,    0,    0,    0,
<     0,    0,   46,    0,    0,   88,  170,   52,    0,   52,
<     0,  174,    0,    0,    0,    0,    0,    0,    0,    0,
<     0,    0,    0,  350,  351,    0,    0,    0,    0,    0,
<    46,  131,  131,  131,  131,  131,  131,  131,  131,  131,
<   131,  131,  137,    0,  191,    0,    0,    0,  365,    0,
<     0,    0,  368,    0,    0,    0,   88,    0,  131,    0,
<   137,  131,    0,    0,  131,    0,  137,    0,    0,    0,
<     0,  131,    0,  137,    0,  131,  140,    0,  131,    0,
<   382,  142,  131,    0,  131,  131,    0,    0,   88,    0,
<     0,  190,  138,    0,    0,    0,    0,  141,    0,  142,
<     0,    0,    0,    0,    0,  142,    0,  190,  232,    0,
<   138,    0,  142,    0,    0,  141,  138,    0,    0,    0,
<     0,  141,    0,  138,    0,    0,    0,    0,  141,  133,
<   133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
<     0,    0,  191,    0,  235,  174,  174,  174,  174,  174,
<   174,  174,  174,  174,  174,  174,  133,    0,  191,  133,
<     0,    0,  133,    0,    0,   46,    0,    0,    0,  133,
<   190,    0,  174,  133,  140,  174,  133,    0,  174,    0,
<   133,    0,  133,  133,    0,  174,    0,    0,   46,  174,
<   140,    0,  174,    0,    0,    0,  174,   46,  174,  174,
<    46,    0,    0,    0,   46,    0,    0,    0,    0,    0,
<   173,   21,   56,  174,  175,  176,  177,  178,  179,  180,
<   181,  191,   88,   88,   88,   88,   88,   88,   88,   88,
<    88,   88,   88,    0,    0,    0,  190,  182,    0,    0,
<   183,    0,    0,  184,   52,   52,    0,    0,    0,   88,
<     0,    0,   88,  140,  185,   88,    0,  186,    0,    0,
<     0,  187,   88,  188,  189,   52,   88,    0,    0,   88,
<     0,    0,    0,   88,    0,   52,   52,   52,   52,    0,
<     0,   52,    0,    0,    0,    0,    0,  191,    0,    0,
<     0,    0,    0,    0,    0,    0,   52,    0,   52,    0,
<     0,    0,    0,    0,    0,    0,    0,    0,  173,   21,
<    56,  174,  175,  176,  177,  178,  179,  180,  181,  140,
<     0,    0,    0,    0,  173,   21,   56,  174,  175,  176,
<   177,  178,  179,  180,  181,  182,    0,    0,  183,    0,
<     1,  184,    0,    2,    3,    4,    5,    6,    0,    7,
<     0,  182,  185,    0,  183,  186,    0,  184,    8,  187,
<     0,    0,    0,    0,    0,    0,    0,    0,  185,    0,
<     0,  186,    0,    0,    9,  187,    0,    0,    0,    0,
<     0,   10,    0,    0,    0,    0,    0,  173,   21,   56,
<   174,  175,  176,  177,  178,  179,  180,  181,    0,    0,
<     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
<     0,    0,    0,    0,  182,    0,    0,  183,    0,    0,
<   184,    0,    0,    0,    0,    0,    0,    0,    0,    0,
<     0,  185,    0,    0,  186,    0,    0,    0,  187,    0,
---
>   protected static  short [] yyTable = {            19,
>    79,   19,  136,   13,  112,  330,  265,   89,   13,  380,
>   372,  343,  102,  343,   22,  269,  276,   36,  277,   42,
>   173,   42,   42,   19,  242,  173,  109,   17,  187,  130,
>   114,  187,  381,    9,    9,    9,  197,    9,  145,  197,
>   122,  179,   26,   78,  362,  151,  187,   66,  137,  228,
>    78,   56,   21,  287,  197,  307,  204,  172,   30,  361,
>   138,   90,   26,   90,  189,   16,   78,   78,  111,   78,
>    65,  111,  400,  383,   43,  171,   22,  158,   23,   36,
>   187,   42,   78,  163,   92,   96,   92,   98,  197,  149,
>     6,  172,   24,   86,  119,  165,   85,  188,  189,   85,
>   170,   20,   78,   78,  288,   78,  265,  274,  286,  171,
>   181,  265,  187,  180,  184,   31,  180,  331,  265,   40,
>   197,  132,  204,   34,   26,   90,   86,  109,   13,  226,
>   109,  188,  227,   77,  371,  271,  285,   78,   38,  374,
>    23,  158,   11,  148,  158,  109,  244,  109,   92,   30,
>    98,  150,    9,   78,   24,  131,   11,   78,   28,  180,
>   160,  141,  183,   32,  287,  296,  164,   96,   96,  147,
>    38,  273,   78,   40,   11,   78,   44,  174,  174,  265,
>    54,  109,   33,   34,   42,    9,    9,    9,   34,    9,
>   221,  356,  123,  123,  123,  181,  123,   38,  181,   96,
>    34,  265,   45,    9,    9,   47,    9,  411,  342,  109,
>   123,  123,   63,   63,   78,  288,   42,  337,   48,  286,
>   131,  325,  241,   42,  326,  257,  258,  259,  260,  261,
>   262,  263,   54,   38,  289,   49,    9,   36,    9,   42,
>     9,  244,   50,   55,  174,  123,   22,  285,   51,   36,
>   350,   42,   52,  353,    9,    9,    9,    9,    9,    9,
>     9,  265,  111,  294,   78,  129,  129,   78,    9,    9,
>     9,   20,  113,  113,  111,  113,  123,  123,  111,  289,
>   289,  289,   54,  264,   53,  111,  342,   54,  342,  113,
>   113,  268,   54,   78,   54,   54,   78,   54,   54,   54,
>    54,  154,  154,   54,  154,  187,  187,  111,  111,    9,
>    23,  111,    9,  197,  388,   54,   54,  111,  154,  154,
>    54,  107,  108,   58,  113,  257,  258,  259,  174,   55,
>   257,  258,  259,  260,  289,  289,   40,  257,  258,  259,
>   260,  261,  262,  263,  109,  156,  405,   66,  156,   68,
>    87,   20,   72,  154,  385,  113,  113,   78,   77,   88,
>    38,  289,  156,  156,   90,  289,   92,  109,   40,   97,
>   155,  155,   40,  155,  104,   40,  109,  106,   74,  109,
>   110,   75,   20,  109,  154,  154,  113,  155,  155,   78,
>   115,  385,   38,  117,  289,  264,   76,  156,  257,  258,
>   259,  260,  261,    9,  109,  126,    9,    9,    9,    9,
>     9,    9,    9,  123,  123,  123,  123,  123,  123,  123,
>   257,  258,  155,  111,   44,   94,    9,    9,  156,  156,
>   303,  265,  129,  302,  123,    9,  130,  133,    9,  135,
>   142,  157,    9,  158,  162,    9,  159,  304,  161,  166,
>   265,    9,  123,  155,  155,  167,  161,  161,  123,  161,
>     9,    9,    9,    9,    9,  185,  171,  123,  123,  222,
>   186,  123,  223,  161,  161,   44,  224,  225,  229,   44,
>   257,  258,  259,  260,  261,  262,  263,   37,   38,   39,
>    40,   41,  113,  113,  113,  113,  113,  113,  113,  157,
>   239,  280,  157,  101,  248,  240,  249,   44,  161,  256,
>   150,  272,  270,  113,  275,  284,  157,  157,  297,  281,
>   298,  305,  154,  154,  154,  154,  154,  154,  265,  123,
>   306,  113,  308,  348,  319,  324,  327,  113,  264,  161,
>   161,  329,  154,  333,  344,  266,  113,  265,  140,  345,
>   113,  157,  355,  257,   28,  158,  146,  359,  158,  360,
>   154,  364,  365,  367,  265,  370,  154,  156,  156,  156,
>   156,  156,  158,  158,  369,  154,   20,   72,  342,  154,
>   373,  159,  157,  157,  159,  382,  156,  387,   73,  265,
>   395,  155,  155,  155,  155,  155,  155,  393,  159,  159,
>   397,  399,  409,   74,  156,  410,   75,  158,   44,  160,
>   156,  155,  160,   96,   98,   98,   33,   98,   88,  156,
>    38,   76,   86,  156,  129,    7,  160,  160,  176,  155,
>   349,  125,   98,  159,   98,  155,  130,  243,  158,  158,
>   200,  130,   44,  184,  155,  295,  173,  413,  155,  245,
>   257,  258,  259,  260,  261,  262,  263,  265,  134,  302,
>   279,  160,  105,  156,  159,  159,  406,  172,   98,  257,
>   258,  259,  260,  261,  262,  263,  139,  161,  161,  161,
>   161,  161,  161,  105,  384,  265,  105,   30,   30,  182,
>   347,  412,  160,  160,  265,  377,   98,  161,  352,  116,
>    22,  105,  368,  105,  301,  265,  390,  392,  264,    0,
>    23,  379,   24,   25,    0,  161,   26,    0,    0,   30,
>     0,  161,  157,  157,  157,  157,  265,  264,    0,    0,
>   161,   94,  101,   27,  161,    0,    0,  105,    0,   48,
>   157,    0,  146,  396,    0,  146,    0,  257,  258,  259,
>   260,  261,  262,  263,    0,    0,   48,   46,  157,  146,
>   146,    0,    0,    0,  157,  105,  257,  258,  259,  260,
>   261,  262,  263,  157,    0,    0,    0,  157,    0,  158,
>   158,  158,    0,  257,  258,  259,  260,  261,  262,  263,
>    48,   46,    0,    0,  146,    0,  158,    0,    0,    0,
>     0,  137,    0,   13,    0,  264,  159,  159,  257,  258,
>   259,  260,  261,  262,  158,    0,  139,    0,   48,   46,
>   158,    0,  159,    0,  264,  146,  146,    0,  389,  158,
>    50,   98,   22,  158,    0,  160,    0,    0,    0,    0,
>   159,  264,   23,    0,   24,   25,  159,    0,   26,    0,
>   160,    0,  137,    0,   98,  159,    0,    0,    0,  159,
>     0,    0,    0,   98,    0,   27,   98,  139,  160,    0,
>    98,    0,    0,    0,  160,    0,  257,  258,  259,  260,
>   261,  262,  263,  160,  137,  130,  130,  160,    0,  182,
>    98,   98,    0,    0,    0,    0,    0,    0,    0,  139,
>   105,    0,    0,    0,  257,  258,  259,  260,  261,  262,
>   263,    0,    0,  257,  258,  259,  260,  261,  262,  263,
>     0,    0,    0,  105,  257,  258,  259,  260,  261,  262,
>   263,    0,  105,    0,  264,  105,    0,    0,    0,  105,
>   182,    0,    0,    0,    0,  257,  258,  259,  260,  261,
>   262,  263,    0,   48,   46,    0,    0,   54,    0,  105,
>   105,  206,  264,   54,   54,    0,    0,   54,    0,   54,
>    54,  264,  182,   54,    0,    0,   48,   46,    0,    0,
>     0,    0,  264,  146,   54,   48,   46,    0,   48,   46,
>    54,    0,   48,   46,   54,   54,   54,   54,    0,    0,
>    54,  146,    0,  264,    0,    0,    0,  146,    0,    0,
>     0,    0,  207,    0,   54,   54,  146,   54,  137,  137,
>   137,  137,  137,  137,  137,  137,  137,  137,  137,    0,
>     0,    0,    0,  139,  139,  139,  139,  139,  139,  139,
>   139,  139,  139,  139,  150,  137,   94,  178,  137,    1,
>     0,  137,    2,    3,    4,    5,    6,    0,  137,    0,
>   139,    0,  137,  139,    0,  137,  139,    8,    0,  137,
>     0,  137,  137,  139,  137,  137,    0,  139,    0,    0,
>   139,    0,    0,    0,  139,    0,  139,  139,    0,  139,
>   139,    0,    0,    0,    0,    0,    0,   94,    0,    0,
>     0,    0,    0,    0,    0,    0,  182,  182,  182,  182,
>   182,  182,  182,  182,  182,  182,  182,  206,  250,   29,
>     0,   52,    0,    0,    0,    0,    0,    0,    0,   94,
>     0,    0,    0,  182,    0,    0,  182,    0,    0,  182,
>     0,  336,  338,  340,    0,    0,  182,    0,    0,    0,
>   182,   62,   62,  182,    0,    0,   83,  182,    0,  182,
>   182,    0,  182,  182,    0,    0,    0,   62,  207,    0,
>     0,    0,    0,    0,    0,  206,    0,    0,  187,   20,
>    55,  188,  189,  190,  191,  192,  193,  194,  195,   83,
>     0,  206,    0,    0,    0,    0,  375,  376,    0,    0,
>   150,    0,    0,    0,    0,  196,    0,    0,  197,    0,
>     0,  198,    0,    0,    0,    0,    0,    0,    0,    0,
>     0,    0,  199,  391,    0,  200,  207,  394,  253,  201,
>   153,  202,  203,    0,  204,  205,    0,    0,    0,    0,
>     0,    0,  207,    0,    0,    0,    0,    0,    0,  206,
>     0,    0,    0,    0,   54,   54,  408,    0,  150,  153,
>     0,    0,    0,   94,   94,   94,   94,   94,   94,   94,
>    94,   94,   94,   94,  150,   54,    0,    0,    0,    0,
>     0,    0,    0,    0,    0,   54,   54,   54,   54,    0,
>    94,   54,    0,   94,   54,   54,   94,    0,    0,  151,
>   207,    0,  151,   94,    0,    0,   54,   94,   54,    0,
>    94,    0,    0,    0,   94,   54,  151,  151,    0,   94,
>    94,    0,    0,    0,    0,   54,   54,   54,   54,    0,
>     0,   54,  150,    0,  187,   20,   55,  188,  189,  190,
>   191,  192,  193,  194,  195,   54,   54,    0,   54,    0,
>     1,  151,    0,    2,    3,    4,    5,    6,    0,    7,
>     0,  196,    0,    0,  197,    0,    0,  198,    8,    0,
>     0,    0,    0,    0,    0,    0,    0,    0,  199,    0,
>     0,  200,  151,  151,    9,  201,    0,    0,    0,    0,
>   204,  205,  187,   20,   55,  188,  189,  190,  191,  192,
>   193,  194,  195,    0,    0,    0,    0,    0,  187,   20,
>    55,  188,  189,  190,  191,  192,  193,  194,  195,  196,
>     0,    0,  197,    0,    0,  198,    0,    0,  143,    0,
>     0,  143,    0,    0,    0,  196,  199,    0,  197,  200,
>     0,  198,    0,  201,    0,  143,  143,    0,  204,  205,
>     0,    0,  199,    0,    0,  200,    0,    0,    0,  201,
>     0,    0,    0,    0,  204,  205,  187,  357,   55,  188,
>   189,  190,  191,  192,  193,  194,  195,    0,    0,    0,
>   143,    0,    0,  148,    0,  144,  148,  147,  144,    0,
>   147,    0,    0,  196,    0,    0,  197,    0,    0,  198,
>   148,  148,  144,  144,  147,  147,    0,    0,    0,    0,
>   199,  143,  143,  200,    0,    0,    0,  201,    0,    0,
>     0,    0,  204,  205,    0,    0,    0,    0,    0,    0,
>     0,    0,    0,    0,    0,  148,    0,  144,    0,  147,
>   151,    0,    0,  230,  231,  232,  233,  234,  235,  236,
>     0,  237,    0,  238,    0,    0,    0,    0,  151,    0,
>   251,  254,    0,    0,  151,   22,  148,  148,  144,  144,
>   147,  147,    0,  151,    0,   23,    0,   24,   25,    0,
>     0,   26,    0,    0,    0,    0,    0,    0,    0,    0,
>     0,    0,    0,  282,  283,   93,   94,    0,   27,    0,
>     0,    0,  299,  300,    0,    0,    0,    0,    0,    0,
>     0,  309,  310,  311,  312,  313,  314,  315,  316,  317,
>     0,    0,  318,    0,    0,    0,    0,    0,    0,    0,
>     0,    0,    0,    0,  328,    0,    0,    0,  332,    0,
1795,1801c1893,1898
<     0,    0,    0,  173,  332,   56,  174,  175,  176,  177,
<   178,  179,  180,  181,    0,    0,  214,  215,  216,  217,
<   218,  219,  220,    0,  221,    0,  222,    0,    0,    0,
<   182,  233,  236,  183,    0,    0,  184,    0,    0,    0,
<     0,    0,    0,    0,    0,    0,    0,  185,    0,    0,
<   186,    0,    0,    0,  187,    0,    0,    0,    0,    0,
<     0,    0,    0,    0,  261,  262,    0,    0,    0,    0,
---
>     0,  346,    0,    0,    0,    0,  351,    0,    0,    0,
>   354,    0,    0,    0,    0,    0,    0,    0,    0,  143,
>     0,    0,    0,    0,  358,    0,    0,    0,    0,    0,
>     0,    0,    0,    0,  366,    0,    0,  143,    0,    0,
>     0,    0,    0,  143,    0,    0,    0,    0,    0,  378,
>     0,    0,  143,    0,    0,    0,    0,    0,    0,    0,
1803,1816c1900,1904
<   286,  287,  288,  289,  290,  291,  292,  293,  294,    0,
<     0,  295,    0,    0,    0,    0,    0,    0,    0,    0,
<   305,    0,    0,    0,  309,    0,    0,    0,    0,    0,
<     0,    0,    0,    0,    0,    0,    0,  323,    0,    0,
<   326,    0,    0,    0,  329,    0,    0,    0,    0,    0,
<     0,    0,    0,    0,    0,    0,    0,    0,  333,    0,
<     0,    0,    0,    0,    0,    0,    0,    0,  341,    0,
<     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
<     0,    0,    0,  353,    0,    0,    0,    0,    0,    0,
<     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
<     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
<     0,    0,    0,    0,    0,    0,    0,    0,    0,  372,
<     0,    0,    0,    0,  375,    0,    0,    0,    0,    0,
<     0,    0,    0,    0,    0,  381,
---
>     0,    0,    0,    0,  148,    0,  144,    0,  147,    0,
>     0,    0,    0,    0,    0,    0,    0,  398,    0,    0,
>     0,    0,  148,  401,  144,    0,  147,    0,  148,    0,
>   144,    0,  147,    0,  407,    0,    0,  148,    0,  144,
>     0,  147,
1819,1906c1907,1947
<    52,    9,    0,   41,  125,  118,   41,   59,   42,   44,
<     0,   41,   42,   44,   44,   59,   40,   61,    7,   95,
<    93,   41,   40,   31,   32,   61,   78,   44,   58,   40,
<    41,   42,   41,   44,   41,   44,   41,   44,   59,  258,
<   237,   70,    0,  148,   52,   61,   42,   59,   61,   61,
<    59,   59,   59,   59,   41,   61,  108,   15,   16,   59,
<    59,  293,   59,   92,   40,   46,    9,   75,   76,   41,
<    78,  290,   44,  258,   61,   33,   61,  315,  316,   68,
<    88,   61,   58,  315,   93,  198,   93,  123,   59,   32,
<    59,   61,  258,  258,  259,   61,   93,   46,  150,  107,
<   108,  153,  110,  208,  125,   86,   61,  123,  123,   98,
<   123,  123,   40,   40,  311,  228,  125,  123,  125,  316,
<   258,   40,   93,   41,   93,  290,   44,  125,  117,  137,
<    40,   41,   42,   70,   44,  124,  123,  258,  123,   42,
<    58,   59,  150,  123,  107,  153,    0,   59,   58,   59,
<    59,   61,  290,  123,  206,   92,   46,  123,  147,  148,
<   189,   15,  120,   91,   91,   93,  258,   95,   95,  158,
<    15,   61,   91,   40,  137,   93,   95,  123,   95,   33,
<   285,   91,  258,   93,   93,   95,   61,  145,   33,  310,
<    40,   41,   42,  123,   44,  123,  123,   41,  206,  188,
<    44,  123,  254,   95,  123,  257,  124,  125,   58,   59,
<   316,  317,   40,  123,  124,  125,  123,   41,  226,  208,
<    44,  123,   41,   42,  297,   44,  278,  261,  262,  281,
<    59,  261,  262,  263,  264,  265,  266,  267,  227,  125,
<    59,  259,   61,   93,  281,  281,  254,  124,  277,  257,
<   261,  262,  263,  264,  265,  266,  267,  293,  266,  267,
<   268,   41,   42,   41,   44,  261,  262,  263,  281,  272,
<   278,  315,   44,  281,  124,  125,   95,  315,   58,   59,
<   293,  279,  317,  313,  124,  125,  317,  317,  340,  279,
<   314,  289,  259,  291,  292,  315,  285,  295,  315,  289,
<   293,  291,  292,  314,  123,  295,  317,  316,  317,  316,
<   315,  319,  320,   93,  312,  315,  315,   41,   42,  371,
<    44,  125,  312,  293,  125,   41,   42,  293,   44,  337,
<   258,  258,  340,   42,   58,   59,  344,  124,  125,  258,
<   348,  258,   58,   59,  124,  125,   75,   76,  258,  267,
<   125,  261,  262,  263,  264,  265,  266,  267,  261,  262,
<   263,  264,  265,  371,  282,  373,  258,   95,  376,   93,
<    40,  281,  282,  290,   49,  260,   42,   93,   53,   41,
<   290,  125,  300,  293,   41,   42,  294,  297,  306,   64,
<   300,   41,   42,  123,  315,  313,  306,  124,  290,  317,
<   124,  125,   42,  313,  314,  315,  316,  317,  124,  125,
<   125,  261,  262,  263,  264,  265,  266,  267,   59,   59,
<    41,   42,   59,   44,  259,   41,  125,   40,   44,   40,
<   258,  259,  282,   95,   41,  313,   44,   58,   59,  258,
<   270,  125,   58,   59,  310,  125,  260,  125,   41,   58,
<   300,   44,   41,   44,   41,   59,  306,  285,   40,   40,
<   288,  297,  281,  313,  314,   58,   59,  317,   46,  123,
<    58,  290,   93,   41,  293,  303,   44,   93,  297,   58,
<   270,  261,  262,  263,  264,  265,  266,  267,  314,   61,
<    58,   59,  298,   41,   59,   40,  315,  316,  258,  288,
<    93,  260,  282,  124,  125,  258,   42,  258,  124,  125,
<    41,   41,   61,   93,   44,  261,   41,   41,   44,   44,
<   300,   40,   59,   58,  123,   93,  306,   61,   58,   59,
<   258,  124,  125,  313,   59,  317,   61,  317,  262,  263,
<   264,  265,  266,  267,   59,   59,  262,  263,  264,  265,
<   266,  267,  261,  262,  263,  264,  124,  125,  282,  258,
<   259,   41,  290,   93,  125,   93,  282,   58,   44,  297,
<    95,  125,  124,  258,  125,   42,  300,   24,   25,   26,
<    27,   28,  306,   41,  300,   42,  258,  297,   41,  313,
<   306,  290,   59,  317,  124,  125,  258,  313,  123,   42,
<    41,  317,   59,   44,  261,  262,  263,  264,  265,  266,
<   267,  261,  262,  263,  264,  265,  266,  267,   59,   93,
<    61,  261,  262,  263,  264,  265,  266,  267,  290,   61,
<    41,   41,  294,  125,   93,  297,   41,  125,  123,  143,
<   385,  262,  263,  264,  265,  266,  267,  263,  264,  265,
<   266,  267,  227,   72,   95,  124,  189,   42,  100,   44,
<   317,  282,  151,  145,   42,  373,  282,  317,  335,  320,
<   110,  264,  265,  266,  267,   42,  277,  317,  384,  300,
<   345,   59,  123,  279,  300,  306,  342,   -1,   -1,  282,
<   306,   -1,  313,   -1,   -1,   -1,  317,  313,  266,  267,
<    -1,  317,   -1,   -1,   -1,   41,   -1,  300,   44,   -1,
<    -1,   -1,   -1,  306,  282,   -1,   -1,   -1,   -1,   -1,
<   313,   -1,   58,   59,  317,  261,  262,  263,  264,  265,
<   266,  267,  300,  258,   -1,  265,  266,  267,  306,  258,
<   259,   -1,   -1,   -1,   -1,  313,  282,   -1,   -1,  317,
<    -1,  270,  282,   -1,   -1,   -1,  281,   93,   -1,   -1,
<    41,   -1,   44,   44,  300,  290,  285,   -1,  293,  288,
<   300,   -1,  297,   42,  125,   -1,  306,   58,   59,   61,
<    -1,  317,   -1,  313,  303,   -1,   -1,  317,  124,  125,
<   315,  316,   -1,   -1,  261,  262,  263,  264,  265,  266,
<   267,   -1,   -1,   -1,  261,  262,  263,  264,  265,  266,
<   267,   -1,   93,   95,   -1,  279,   -1,  258,  261,  262,
<   263,  264,  265,  266,  267,  289,   -1,  291,  292,  268,
<    -1,  295,  271,  272,  273,  274,  275,   -1,   -1,   -1,
<   281,  123,   -1,  124,  125,   -1,  310,  286,  312,  290,
<   317,   41,  293,   -1,   44,   -1,  297,   -1,   -1,   -1,
<   317,   -1,   -1,  306,   40,   -1,   -1,   -1,   58,   59,
<   309,   -1,  125,   -1,  317,  316,  261,  262,  263,  264,
---
>    51,    9,   41,    0,   59,   41,   42,   58,    0,   41,
>    41,   44,   69,   44,   61,   40,   59,   61,   61,   61,
>    95,   95,   30,   31,   40,   95,   77,    7,   41,   93,
>    83,   44,   41,   40,   41,   42,   41,   44,   44,   44,
>    93,  158,   41,   51,  293,  124,   59,  125,  110,   59,
>    58,   45,    9,   40,   59,  255,   59,   59,   46,   59,
>   111,   59,   61,   61,   59,  258,   74,   75,  317,   77,
>    48,  317,  318,   61,   31,   59,  123,   40,   61,  123,
>    93,  123,   90,  145,   59,   63,   61,   67,   93,   61,
>    61,   93,   61,   52,   88,   58,   41,   59,   93,   44,
>   153,  258,  110,  111,   91,  113,   42,  224,   95,   93,
>   161,   42,  125,   41,  165,   61,   44,   41,   42,   41,
>   125,  101,  125,  258,  123,  123,   85,   41,  125,  180,
>    44,   93,  183,   40,  334,  214,  123,  145,  258,  339,
>   123,   40,    0,  123,   40,   59,  203,   61,  123,   46,
>   130,  123,  123,  161,  123,  290,   14,  165,   14,   58,
>   140,  114,   58,  123,   40,  244,  146,  258,  259,  122,
>   290,  222,  180,   95,   32,  183,   32,  157,  158,   42,
>   258,   95,   59,  258,  258,   40,   41,   42,  258,   44,
>   170,  308,   40,   41,   42,   41,   44,   95,   44,  290,
>   258,   42,   40,   58,   59,  123,   61,  318,  319,  123,
>    58,   59,  124,  125,  222,   91,  290,   93,  123,   95,
>   290,  272,  202,  297,  275,  261,  262,  263,  264,  265,
>   266,  267,  310,  297,  242,  123,   91,  281,   93,  281,
>    95,  298,  123,  259,  224,   93,  293,  123,   61,  293,
>   301,  293,  123,  304,  261,  262,  263,  264,  265,  266,
>   267,   42,  317,  243,  272,  124,  125,  275,  123,  124,
>   125,  258,   41,   42,  317,   44,  124,  125,  317,  287,
>   288,  289,  279,  319,   59,  317,  319,  279,  319,   58,
>    59,  316,  289,  301,  291,  292,  304,  289,  295,  291,
>   292,   41,   42,  295,   44,  318,  319,  317,  317,  316,
>   293,  317,  319,  318,  365,  312,  125,  317,   58,   59,
>   312,   74,   75,  281,   93,  261,  262,  263,  308,  259,
>   261,  262,  263,  264,  342,  343,  258,  261,  262,  263,
>   264,  265,  266,  267,  258,   41,  397,  124,   44,  272,
>    41,  258,  259,   93,  362,  124,  125,  365,   40,   44,
>   258,  369,   58,   59,  293,  373,  125,  281,  290,  125,
>    41,   42,  294,   44,  125,  297,  290,  260,  285,  293,
>    40,  288,  258,  297,  124,  125,   42,   58,   59,  397,
>   125,  399,  290,  294,  402,  319,  303,   93,  261,  262,
>   263,  264,  265,  258,  318,  123,  261,  262,  263,  264,
1908,1968c1949,2009
<    41,   -1,   -1,   44,  261,  262,  263,  264,  265,  266,
<   267,   41,   -1,   93,   44,   -1,   41,   58,   59,   44,
<    -1,   -1,   -1,   -1,   -1,   91,   -1,   -1,   58,   59,
<    -1,   -1,   -1,   58,   59,   -1,   -1,   -1,  279,   -1,
<    -1,   -1,  317,   -1,  124,  125,   -1,   -1,  289,  317,
<   291,  292,   93,   -1,  295,   -1,  282,  123,  124,  125,
<   317,   -1,   -1,   93,   -1,  279,   -1,   -1,   93,   -1,
<    -1,  312,   40,   -1,  300,  289,   -1,  291,  292,   -1,
<   306,  295,   -1,  124,  125,   -1,  258,  313,   40,   -1,
<    -1,   -1,   -1,   -1,  124,  125,   -1,   -1,  312,  124,
<   125,   -1,  261,  262,  263,  264,  265,  266,   -1,  281,
<    -1,  282,   -1,   -1,   -1,  258,  259,   -1,  290,   -1,
<    -1,  293,   -1,   91,   -1,  297,   -1,   -1,   61,  300,
<   266,  267,  268,   -1,   -1,  306,  279,   -1,   -1,   91,
<    -1,   -1,  313,   -1,   -1,   -1,  289,  290,  291,  292,
<    -1,   -1,  295,   40,   -1,  123,   -1,   -1,   -1,   -1,
<    -1,   -1,   95,   -1,   -1,   40,   41,  310,   -1,  312,
<    -1,  123,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
<    -1,   -1,   -1,  319,  320,   -1,   -1,   -1,   -1,   -1,
<   123,  257,  258,  259,  260,  261,  262,  263,  264,  265,
<   266,  267,  282,   -1,   91,   -1,   -1,   -1,  344,   -1,
<    -1,   -1,  348,   -1,   -1,   -1,   91,   -1,  284,   -1,
<   300,  287,   -1,   -1,  290,   -1,  306,   -1,   -1,   -1,
<    -1,  297,   -1,  313,   -1,  301,  123,   -1,  304,   -1,
<   376,  282,  308,   -1,  310,  311,   -1,   -1,  123,   -1,
<    -1,   40,  282,   -1,   -1,   -1,   -1,  282,   -1,  300,
<    -1,   -1,   -1,   -1,   -1,  306,   -1,   40,   41,   -1,
<   300,   -1,  313,   -1,   -1,  300,  306,   -1,   -1,   -1,
<    -1,  306,   -1,  313,   -1,   -1,   -1,   -1,  313,  257,
<   258,  259,  260,  261,  262,  263,  264,  265,  266,  267,
<    -1,   -1,   91,   -1,   93,  257,  258,  259,  260,  261,
<   262,  263,  264,  265,  266,  267,  284,   -1,   91,  287,
<    -1,   -1,  290,   -1,   -1,  258,   -1,   -1,   -1,  297,
<    40,   -1,  284,  301,  123,  287,  304,   -1,  290,   -1,
<   308,   -1,  310,  311,   -1,  297,   -1,   -1,  281,  301,
<   123,   -1,  304,   -1,   -1,   -1,  308,  290,  310,  311,
<   293,   -1,   -1,   -1,  297,   -1,   -1,   -1,   -1,   -1,
<   257,  258,  259,  260,  261,  262,  263,  264,  265,  266,
<   267,   91,  257,  258,  259,  260,  261,  262,  263,  264,
<   265,  266,  267,   -1,   -1,   -1,   40,  284,   -1,   -1,
<   287,   -1,   -1,  290,  258,  259,   -1,   -1,   -1,  284,
<    -1,   -1,  287,  123,  301,  290,   -1,  304,   -1,   -1,
<    -1,  308,  297,  310,  311,  279,  301,   -1,   -1,  304,
<    -1,   -1,   -1,  308,   -1,  289,  290,  291,  292,   -1,
<    -1,  295,   -1,   -1,   -1,   -1,   -1,   91,   -1,   -1,
<    -1,   -1,   -1,   -1,   -1,   -1,  310,   -1,  312,   -1,
<    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
<   259,  260,  261,  262,  263,  264,  265,  266,  267,  123,
<    -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,
<   263,  264,  265,  266,  267,  284,   -1,   -1,  287,   -1,
<   268,  290,   -1,  271,  272,  273,  274,  275,   -1,  277,
<    -1,  284,  301,   -1,  287,  304,   -1,  290,  286,  308,
<    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  301,   -1,
<    -1,  304,   -1,   -1,  302,  308,   -1,   -1,   -1,   -1,
<    -1,  309,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
<   260,  261,  262,  263,  264,  265,  266,  267,   -1,   -1,
<    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
<    -1,   -1,   -1,   -1,  284,   -1,   -1,  287,   -1,   -1,
<   290,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
<    -1,  301,   -1,   -1,  304,   -1,   -1,   -1,  308,   -1,
<    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
---
>   261,  262,   93,  317,   40,  310,  281,  282,  124,  125,
>    41,   42,  125,   44,  282,  290,  124,   59,  293,   59,
>   259,   40,  297,   40,   44,  300,   41,   58,  315,  270,
>    42,  306,  300,  124,  125,  125,   41,   42,  306,   44,
>   315,  316,  317,  318,  319,  260,  125,  315,  316,   58,
>   125,  319,   41,   58,   59,   91,   44,   41,   59,   95,
>   261,  262,  263,  264,  265,  266,  267,   23,   24,   25,
>    26,   27,  261,  262,  263,  264,  265,  266,  267,   41,
>    40,  282,   44,   69,  123,   40,  123,  123,   93,  297,
>   123,   58,   46,  282,   58,  316,   58,   59,   61,  300,
>   298,   41,  262,  263,  264,  265,  266,  267,   42,   95,
>    59,  300,   40,  125,  288,  258,  270,  306,  319,  124,
>   125,  258,  282,  258,   41,   59,  315,   42,  114,   61,
>   319,   93,   93,  261,  125,   41,  122,   41,   44,   44,
>   300,  260,   58,  123,   42,   59,  306,  263,  264,  265,
>   266,  267,   58,   59,   61,  315,  258,  259,  319,  319,
>    59,   41,  124,  125,   44,   41,  282,   59,  270,   42,
>    93,  262,  263,  264,  265,  266,  267,  125,   58,   59,
>    58,   44,  125,  285,  300,  124,  288,   93,  258,   41,
>   306,  282,   44,  258,   41,   42,  125,   44,   41,  315,
>   297,  303,   41,  319,   93,   61,   58,   59,   41,  300,
>   125,   41,   59,   93,   61,  306,  125,  203,  124,  125,
>    41,   93,  258,  125,  315,  243,  123,  411,  319,  203,
>   261,  262,  263,  264,  265,  266,  267,   42,  103,   44,
>   227,   93,   71,  130,  124,  125,  399,  155,   95,  261,
>   262,  263,  264,  265,  266,  267,  113,  262,  263,  264,
>   265,  266,  267,   41,  360,   42,   44,  258,  259,  162,
>   298,  410,  124,  125,   42,  343,  123,  282,  302,   85,
>   279,   59,   59,   61,  315,   42,  367,  370,  319,   -1,
>   289,   59,  291,  292,   -1,  300,  295,   -1,   -1,  290,
>    -1,  306,  264,  265,  266,  267,   42,  319,   -1,   -1,
>   315,  310,  298,  312,  319,   -1,   -1,   95,   -1,   44,
>   282,   -1,   41,   59,   -1,   44,   -1,  261,  262,  263,
>   264,  265,  266,  267,   -1,   -1,   61,   61,  300,   58,
>    59,   -1,   -1,   -1,  306,  123,  261,  262,  263,  264,
>   265,  266,  267,  315,   -1,   -1,   -1,  319,   -1,  265,
>   266,  267,   -1,  261,  262,  263,  264,  265,  266,  267,
>    95,   95,   -1,   -1,   93,   -1,  282,   -1,   -1,   -1,
>    -1,   40,   -1,  125,   -1,  319,  266,  267,  261,  262,
>   263,  264,  265,  266,  300,   -1,   40,   -1,  123,  123,
>   306,   -1,  282,   -1,  319,  124,  125,   -1,  306,  315,
>   125,  258,  279,  319,   -1,  267,   -1,   -1,   -1,   -1,
>   300,  319,  289,   -1,  291,  292,  306,   -1,  295,   -1,
>   282,   -1,   91,   -1,  281,  315,   -1,   -1,   -1,  319,
>    -1,   -1,   -1,  290,   -1,  312,  293,   91,  300,   -1,
>   297,   -1,   -1,   -1,  306,   -1,  261,  262,  263,  264,
>   265,  266,  267,  315,  123,  124,  125,  319,   -1,   40,
>   317,  318,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
>   258,   -1,   -1,   -1,  261,  262,  263,  264,  265,  266,
>   267,   -1,   -1,  261,  262,  263,  264,  265,  266,  267,
>    -1,   -1,   -1,  281,  261,  262,  263,  264,  265,  266,
>   267,   -1,  290,   -1,  319,  293,   -1,   -1,   -1,  297,
>    91,   -1,   -1,   -1,   -1,  261,  262,  263,  264,  265,
>   266,  267,   -1,  258,  258,   -1,   -1,  279,   -1,  317,
>   318,   40,  319,  258,  259,   -1,   -1,  289,   -1,  291,
>   292,  319,  123,  295,   -1,   -1,  281,  281,   -1,   -1,
>    -1,   -1,  319,  282,  279,  290,  290,   -1,  293,  293,
>   312,   -1,  297,  297,  289,  290,  291,  292,   -1,   -1,
>   295,  300,   -1,  319,   -1,   -1,   -1,  306,   -1,   -1,
>    -1,   -1,   91,   -1,  309,  310,  315,  312,  257,  258,
>   259,  260,  261,  262,  263,  264,  265,  266,  267,   -1,
1970,1985c2011,2070
<   264,  265,  266,  267,   -1,   -1,  175,  176,  177,  178,
<   179,  180,  181,   -1,  183,   -1,  185,   -1,   -1,   -1,
<   284,  190,  191,  287,   -1,   -1,  290,   -1,   -1,   -1,
<    -1,   -1,   -1,   -1,   -1,   -1,   -1,  301,   -1,   -1,
<   304,   -1,   -1,   -1,  308,   -1,   -1,   -1,   -1,   -1,
<    -1,   -1,   -1,   -1,  223,  224,   -1,   -1,   -1,   -1,
<    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
<   239,  240,  241,  242,  243,  244,  245,  246,  247,   -1,
<    -1,  250,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
<   259,   -1,   -1,   -1,  263,   -1,   -1,   -1,   -1,   -1,
<    -1,   -1,   -1,   -1,   -1,   -1,   -1,  276,   -1,   -1,
<   279,   -1,   -1,   -1,  283,   -1,   -1,   -1,   -1,   -1,
<    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  297,   -1,
<    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  307,   -1,
<    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
<    -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,
---
>   264,  265,  266,  267,  123,  284,   40,   41,  287,  268,
>    -1,  290,  271,  272,  273,  274,  275,   -1,  297,   -1,
>   284,   -1,  301,  287,   -1,  304,  290,  286,   -1,  308,
>    -1,  310,  311,  297,  313,  314,   -1,  301,   -1,   -1,
>   304,   -1,   -1,   -1,  308,   -1,  310,  311,   -1,  313,
>   314,   -1,   -1,   -1,   -1,   -1,   -1,   91,   -1,   -1,
>    -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
>   261,  262,  263,  264,  265,  266,  267,   40,   41,   15,
>    -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
>    -1,   -1,   -1,  284,   -1,   -1,  287,   -1,   -1,  290,
>    -1,  287,  288,  289,   -1,   -1,  297,   -1,   -1,   -1,
>   301,   47,   48,  304,   -1,   -1,   52,  308,   -1,  310,
>   311,   -1,  313,  314,   -1,   -1,   -1,   63,   91,   -1,
>    -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,  257,  258,
>   259,  260,  261,  262,  263,  264,  265,  266,  267,   85,
>    -1,   40,   -1,   -1,   -1,   -1,  342,  343,   -1,   -1,
>   123,   -1,   -1,   -1,   -1,  284,   -1,   -1,  287,   -1,
>    -1,  290,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>    -1,   -1,  301,  369,   -1,  304,   91,  373,   93,  308,
>   126,  310,  311,   -1,  313,  314,   -1,   -1,   -1,   -1,
>    -1,   -1,   91,   -1,   -1,   -1,   -1,   -1,   -1,   40,
>    -1,   -1,   -1,   -1,  258,  259,  402,   -1,  123,  155,
>    -1,   -1,   -1,  257,  258,  259,  260,  261,  262,  263,
>   264,  265,  266,  267,  123,  279,   -1,   -1,   -1,   -1,
>    -1,   -1,   -1,   -1,   -1,  289,  290,  291,  292,   -1,
>   284,  295,   -1,  287,  258,  259,  290,   -1,   -1,   41,
>    91,   -1,   44,  297,   -1,   -1,  310,  301,  312,   -1,
>   304,   -1,   -1,   -1,  308,  279,   58,   59,   -1,  313,
>   314,   -1,   -1,   -1,   -1,  289,  290,  291,  292,   -1,
>    -1,  295,  123,   -1,  257,  258,  259,  260,  261,  262,
>   263,  264,  265,  266,  267,  309,  310,   -1,  312,   -1,
>   268,   93,   -1,  271,  272,  273,  274,  275,   -1,  277,
>    -1,  284,   -1,   -1,  287,   -1,   -1,  290,  286,   -1,
>    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  301,   -1,
>    -1,  304,  124,  125,  302,  308,   -1,   -1,   -1,   -1,
>   313,  314,  257,  258,  259,  260,  261,  262,  263,  264,
>   265,  266,  267,   -1,   -1,   -1,   -1,   -1,  257,  258,
>   259,  260,  261,  262,  263,  264,  265,  266,  267,  284,
>    -1,   -1,  287,   -1,   -1,  290,   -1,   -1,   41,   -1,
>    -1,   44,   -1,   -1,   -1,  284,  301,   -1,  287,  304,
>    -1,  290,   -1,  308,   -1,   58,   59,   -1,  313,  314,
>    -1,   -1,  301,   -1,   -1,  304,   -1,   -1,   -1,  308,
>    -1,   -1,   -1,   -1,  313,  314,  257,  258,  259,  260,
>   261,  262,  263,  264,  265,  266,  267,   -1,   -1,   -1,
>    93,   -1,   -1,   41,   -1,   41,   44,   41,   44,   -1,
>    44,   -1,   -1,  284,   -1,   -1,  287,   -1,   -1,  290,
>    58,   59,   58,   59,   58,   59,   -1,   -1,   -1,   -1,
>   301,  124,  125,  304,   -1,   -1,   -1,  308,   -1,   -1,
>    -1,   -1,  313,  314,   -1,   -1,   -1,   -1,   -1,   -1,
>    -1,   -1,   -1,   -1,   -1,   93,   -1,   93,   -1,   93,
>   282,   -1,   -1,  189,  190,  191,  192,  193,  194,  195,
>    -1,  197,   -1,  199,   -1,   -1,   -1,   -1,  300,   -1,
>   206,  207,   -1,   -1,  306,  279,  124,  125,  124,  125,
>   124,  125,   -1,  315,   -1,  289,   -1,  291,  292,   -1,
>    -1,  295,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>    -1,   -1,   -1,  239,  240,  309,  310,   -1,  312,   -1,
>    -1,   -1,  248,  249,   -1,   -1,   -1,   -1,   -1,   -1,
>    -1,  257,  258,  259,  260,  261,  262,  263,  264,  265,
>    -1,   -1,  268,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>    -1,   -1,   -1,   -1,  280,   -1,   -1,   -1,  284,   -1,
1986a2072,2077
>    -1,  297,   -1,   -1,   -1,   -1,  302,   -1,   -1,   -1,
>   306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  282,
>    -1,   -1,   -1,   -1,  320,   -1,   -1,   -1,   -1,   -1,
>    -1,   -1,   -1,   -1,  330,   -1,   -1,  300,   -1,   -1,
>    -1,   -1,   -1,  306,   -1,   -1,   -1,   -1,   -1,  345,
>    -1,   -1,  315,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1988,1990c2079,2083
<    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  358,
<    -1,   -1,   -1,   -1,  363,   -1,   -1,   -1,   -1,   -1,
<    -1,   -1,   -1,   -1,   -1,  374,
---
>    -1,   -1,   -1,   -1,  282,   -1,  282,   -1,  282,   -1,
>    -1,   -1,   -1,   -1,   -1,   -1,   -1,  383,   -1,   -1,
>    -1,   -1,  300,  389,  300,   -1,  300,   -1,  306,   -1,
>   306,   -1,  306,   -1,  400,   -1,   -1,  315,   -1,  315,
>    -1,  315,
1993c2086
< #line 809 "parser.jay"
---
> #line 863 "parser.jay"
2129,2135c2222,2230
<   public const int COLON_MORE = 313;
<   public const int LESS_MINUS = 314;
<   public const int MINUS_MORE = 315;
<   public const int EQ_MORE = 316;
<   public const int COLON_COLON = 317;
<   public const int ERROR = 318;
<   public const int UNARY = 319;
---
>   public const int KW_ENSURE = 313;
>   public const int KW_REQUIRE = 314;
>   public const int COLON_MORE = 315;
>   public const int LESS_MINUS = 316;
>   public const int MINUS_MORE = 317;
>   public const int EQ_MORE = 318;
>   public const int COLON_COLON = 319;
>   public const int ERROR = 320;
>   public const int UNARY = 321;
diff -r nemerle-420/ncc/parser.jay nemerle/ncc/parser.jay
183a184
> %token KW_ENSURE KW_REQUIRE
223c224
< %type <list> comma_sep_patterns comma_sep_exprs list_exprs list_patterns
---
> %type <list> comma_sep_patterns comma_sep_exprs module_members list_exprs list_patterns
310c311
<         | attrs KW_MODULE type_header '{' type_members '}'
---
>         | attrs KW_MODULE type_header '{' module_members '}'
312c313
< 			$$ = new Type_decl.TD_module($5);
---
> 			$$ = new Type_decl.TD_class($5);
423a425,428
> module_members:
>           /* */                                  { $$ = nil(); }
>         | module_member module_members           { $$ = cons($1, $2); }
> 
436d440
< 	| KW_STATIC	  { $$ = new Modifier.Mod_static(); }
453c457
< 			$$ = new Class_member.M_field($5, $2, new Val_kind.Val_normal());
---
> 			$$ = new Class_member.M_field($5, $2);
475c479
<           attrs maybe_mutable ftyparms located_id ':' ty maybe_extern
---
>           attrs maybe_mutable ftyparms located_id ':' ty ';'
479c483
< 			$$ = new Class_member.M_field($6, $2, $7);
---
> 			$$ = new Class_member.M_field($6, $2);
481a486,492
>         | attrs KW_STATIC maybe_mutable ftyparms located_id ':' ty maybe_extern
> 	  	{
> 			if (!is_empty_typarms($4))
> 				Message.error($5.loc, "static fields cannot have type parameters");
> 			$$ = new Class_member.M_value($7, $3, $8);
> 			fixup_decl($$, $1, $5);
> 		}
488a500,537
>         | attrs KW_STATIC maybe_mutable fun_def
> 		{
> 			if ($3)
> 				Message.error($4.loc, "static methods cannot have 'ref' attribute");
> 			$4.modifiers = $1;
> 			if ($4.kind is Fun_kind.FK_ctor)
> 				$4.kind = new Fun_kind.FK_static_ctor();
> 			else if ($4.kind is Fun_kind.FK_method) {
> 				if (!(((Fun_kind.FK_method)$4.kind).f_implements is list.Nil))
> 					Message.error($4.loc, "functions cannot implement anything");
> 				$4.kind = new Fun_kind.FK_function();
> 			}
> 			$$ = $4;
> 		}
> 	| type_as_type_member
> 
> module_member:
>           attrs maybe_mutable ftyparms located_id ':' ty maybe_extern
> 	  	{
> 			if (!is_empty_typarms($3))
> 				Message.error($4.loc, "static fields cannot have type parameters");
> 			$$ = new Class_member.M_value($6, $2, $7);
> 			fixup_decl($$, $1, $4);
> 		}
>         | attrs maybe_mutable fun_def
> 		{
> 			if ($2)
> 				Message.error($3.loc, "static methods cannot have 'ref' attribute");
> 			$3.modifiers = $1;
> 			if ($3.kind is Fun_kind.FK_ctor)
> 				$3.kind = new Fun_kind.FK_static_ctor();
> 			else if ($3.kind is Fun_kind.FK_method) {
> 				if (!(((Fun_kind.FK_method)$3.kind).f_implements is list.Nil))
> 					Message.error($3.loc, "functions cannot implement anything");
> 				$3.kind = new Fun_kind.FK_function();
> 			}
> 			$$ = $3;
> 		}
511c560
< 			h.ret_type = new Type.T_void();
---
> 			h.ret_type = new Nemerle.Compiler.Parsetree.Type.T_void();
572,574c621,623
<           qid				{ $$ = new Type.T_app($1, nil()); }
<         | qid '(' comma_sep_types ')'	{ $$ = new Type.T_app($1, $3); }
<         | TYVAR				{ $$ = new Type.T_var($1); }
---
>           qid				{ $$ = new Nemerle.Compiler.Parsetree.Type.T_app($1, nil()); }
>         | qid '(' comma_sep_types ')'	{ $$ = new Nemerle.Compiler.Parsetree.Type.T_app($1, $3); }
>         | TYVAR				{ $$ = new Nemerle.Compiler.Parsetree.Type.T_var($1); }
576,578c625,627
<         | KW_VOID			{ $$ = new Type.T_void(); }
<         | KW_REF prim_ty	{ $$ = new Type.T_ref($2); }
<         | KW_OUT prim_ty	{ $$ = new Type.T_out($2); }
---
>         | KW_VOID			{ $$ = new Nemerle.Compiler.Parsetree.Type.T_void(); }
>         | KW_REF prim_ty	{ $$ = new Nemerle.Compiler.Parsetree.Type.T_ref($2); }
>         | KW_OUT prim_ty	{ $$ = new Nemerle.Compiler.Parsetree.Type.T_out($2); }
591c640
< 				$$ = new Type.T_prod(c);
---
> 				$$ = new Nemerle.Compiler.Parsetree.Type.T_prod(c);
596c645
< 	| ty MINUS_MORE ty 	{ $$ = new Type.T_fun($1, $3); }
---
> 	| ty MINUS_MORE ty 	{ $$ = new Nemerle.Compiler.Parsetree.Type.T_fun($1, $3); }
684a734,738
>         | KW_REQUIRE '{' expr '}'
>                 { $$ = new Expr.E_require($3); }
>         | KW_ENSURE '{' expr '}'
>                 { $$ = new Expr.E_ensure($3); }
> 
diff -r nemerle-420/ncc/parsetree.n nemerle/ncc/parsetree.n
81,82c81
<     | TD_class { decls : list (Class_member); }
<     | TD_module { decls : list (Class_member); }
---
>     | TD_class { mutable decls : list (Class_member); }
87c86
<     | TD_variant_option { decls : list (Class_member); }
---
>     | TD_variant_option { mutable decls : list (Class_member); }
93c92,93
<     | M_field { ty : Type; is_ref : bool; kind : Val_kind; }
---
>     | M_value { ty : Type; is_ref : bool; kind : Val_kind; }
>     | M_field { ty : Type; is_ref : bool; }
189a190,191
>     | E_require { assertions : Expr; }
>     | E_ensure { assertions : Expr; }


More information about the devel-pl mailing list