From d94fa751e0a9b0300b23eaa2363b099de3b6dad4 Mon Sep 17 00:00:00 2001 From: florian Date: Sat, 27 Aug 2005 12:58:09 +0000 Subject: [PATCH] * basic parsing for bodies of C programs git-svn-id: trunk@948 - --- utils/h2pas/converu.pas | 136 +- utils/h2pas/h2pas.pas | 9265 +++++++++++++++++++++------------------ utils/h2pas/h2pas.y | 5643 ++++++++++++------------ utils/h2pas/scan.l | 1697 +++---- utils/h2pas/scan.pas | 5534 +++++++++++------------ 5 files changed, 11638 insertions(+), 10637 deletions(-) diff --git a/utils/h2pas/converu.pas b/utils/h2pas/converu.pas index 675fcd8ae9..db6b7badff 100644 --- a/utils/h2pas/converu.pas +++ b/utils/h2pas/converu.pas @@ -2,71 +2,77 @@ unit converu; interface -const TYPEDEF = 257; -const DEFINE = 258; -const COLON = 259; -const SEMICOLON = 260; -const COMMA = 261; -const LKLAMMER = 262; -const RKLAMMER = 263; -const LECKKLAMMER = 264; -const RECKKLAMMER = 265; -const LGKLAMMER = 266; -const RGKLAMMER = 267; -const STRUCT = 268; -const UNION = 269; -const ENUM = 270; -const ID = 271; -const NUMBER = 272; -const CSTRING = 273; -const SHORT = 274; -const UNSIGNED = 275; -const LONG = 276; -const INT = 277; -const REAL = 278; -const _CHAR = 279; -const VOID = 280; -const _CONST = 281; -const _FAR = 282; -const _HUGE = 283; -const _NEAR = 284; -const _ASSIGN = 285; -const NEW_LINE = 286; -const SPACE_DEFINE = 287; -const EXTERN = 288; -const STDCALL = 289; -const CDECL = 290; -const CALLBACK = 291; -const PASCAL = 292; -const WINAPI = 293; -const APIENTRY = 294; -const WINGDIAPI = 295; -const SYS_TRAP = 296; -const _PACKED = 297; -const ELLIPSIS = 298; -const R_AND = 299; -const EQUAL = 300; -const UNEQUAL = 301; -const GT = 302; -const LT = 303; -const GTE = 304; -const LTE = 305; -const QUESTIONMARK = 306; -const _OR = 307; -const _AND = 308; -const _PLUS = 309; -const MINUS = 310; -const _SHR = 311; -const _SHL = 312; -const STAR = 313; -const _SLASH = 314; -const _NOT = 315; -const PSTAR = 316; -const P_AND = 317; -const POINT = 318; -const DEREF = 319; -const STICK = 320; -const SIGNED = 321; +const _WHILE = 257; +const _FOR = 258; +const _DO = 259; +const _GOTO = 260; +const _CONTINUE = 261; +const _BREAK = 262; +const TYPEDEF = 263; +const DEFINE = 264; +const COLON = 265; +const SEMICOLON = 266; +const COMMA = 267; +const LKLAMMER = 268; +const RKLAMMER = 269; +const LECKKLAMMER = 270; +const RECKKLAMMER = 271; +const LGKLAMMER = 272; +const RGKLAMMER = 273; +const STRUCT = 274; +const UNION = 275; +const ENUM = 276; +const ID = 277; +const NUMBER = 278; +const CSTRING = 279; +const SHORT = 280; +const UNSIGNED = 281; +const LONG = 282; +const INT = 283; +const REAL = 284; +const _CHAR = 285; +const VOID = 286; +const _CONST = 287; +const _FAR = 288; +const _HUGE = 289; +const _NEAR = 290; +const NEW_LINE = 291; +const SPACE_DEFINE = 292; +const EXTERN = 293; +const STDCALL = 294; +const CDECL = 295; +const CALLBACK = 296; +const PASCAL = 297; +const WINAPI = 298; +const APIENTRY = 299; +const WINGDIAPI = 300; +const SYS_TRAP = 301; +const _PACKED = 302; +const ELLIPSIS = 303; +const _ASSIGN = 304; +const R_AND = 305; +const EQUAL = 306; +const UNEQUAL = 307; +const GT = 308; +const LT = 309; +const GTE = 310; +const LTE = 311; +const QUESTIONMARK = 312; +const _OR = 313; +const _AND = 314; +const _PLUS = 315; +const MINUS = 316; +const _SHR = 317; +const _SHL = 318; +const STAR = 319; +const _SLASH = 320; +const _NOT = 321; +const PSTAR = 322; +const P_AND = 323; +const POINT = 324; +const DEREF = 325; +const STICK = 326; +const SIGNED = 327; implementation diff --git a/utils/h2pas/h2pas.pas b/utils/h2pas/h2pas.pas index 1e384418d6..05381fd097 100644 --- a/utils/h2pas/h2pas.pas +++ b/utils/h2pas/h2pas.pas @@ -391,11 +391,16 @@ program h2pas; write(outfile,')'); flush(outfile); end; - else internalerror(2); + else + begin + writeln(ord(p^.typ)); + internalerror(2); + end; end; end; end; + procedure write_ifexpr(var outfile:text; p : presobject); begin flush(outfile); @@ -1148,71 +1153,110 @@ program h2pas; end; end; -const TYPEDEF = 257; -const DEFINE = 258; -const COLON = 259; -const SEMICOLON = 260; -const COMMA = 261; -const LKLAMMER = 262; -const RKLAMMER = 263; -const LECKKLAMMER = 264; -const RECKKLAMMER = 265; -const LGKLAMMER = 266; -const RGKLAMMER = 267; -const STRUCT = 268; -const UNION = 269; -const ENUM = 270; -const ID = 271; -const NUMBER = 272; -const CSTRING = 273; -const SHORT = 274; -const UNSIGNED = 275; -const LONG = 276; -const INT = 277; -const REAL = 278; -const _CHAR = 279; -const VOID = 280; -const _CONST = 281; -const _FAR = 282; -const _HUGE = 283; -const _NEAR = 284; -const _ASSIGN = 285; -const NEW_LINE = 286; -const SPACE_DEFINE = 287; -const EXTERN = 288; -const STDCALL = 289; -const CDECL = 290; -const CALLBACK = 291; -const PASCAL = 292; -const WINAPI = 293; -const APIENTRY = 294; -const WINGDIAPI = 295; -const SYS_TRAP = 296; -const _PACKED = 297; -const ELLIPSIS = 298; -const R_AND = 299; -const EQUAL = 300; -const UNEQUAL = 301; -const GT = 302; -const LT = 303; -const GTE = 304; -const LTE = 305; -const QUESTIONMARK = 306; -const _OR = 307; -const _AND = 308; -const _PLUS = 309; -const MINUS = 310; -const _SHR = 311; -const _SHL = 312; -const STAR = 313; -const _SLASH = 314; -const _NOT = 315; -const PSTAR = 316; -const P_AND = 317; -const POINT = 318; -const DEREF = 319; -const STICK = 320; -const SIGNED = 321; + + procedure write_statement_block(var outfile:text; p : presobject); + begin + writeln(outfile,aktspace,'begin'); + while assigned(p) do + begin + shift(2); + if assigned(p^.p1) then + begin + case p^.p1^.typ of + t_whilenode: + begin + write(outfile,aktspace,'while '); + write_expr(outfile,p^.p1^.p1); + writeln(outfile,' do'); + shift(2); + write_statement_block(outfile,p^.p1^.p2); + popshift; + end; + else + begin + write(outfile,aktspace); + write_expr(outfile,p^.p1); + writeln(outfile,';'); + end; + end; + end; + p:=p^.next; + popshift; + end; + writeln(outfile,aktspace,'end;'); + end; + +const _WHILE = 257; +const _FOR = 258; +const _DO = 259; +const _GOTO = 260; +const _CONTINUE = 261; +const _BREAK = 262; +const TYPEDEF = 263; +const DEFINE = 264; +const COLON = 265; +const SEMICOLON = 266; +const COMMA = 267; +const LKLAMMER = 268; +const RKLAMMER = 269; +const LECKKLAMMER = 270; +const RECKKLAMMER = 271; +const LGKLAMMER = 272; +const RGKLAMMER = 273; +const STRUCT = 274; +const UNION = 275; +const ENUM = 276; +const ID = 277; +const NUMBER = 278; +const CSTRING = 279; +const SHORT = 280; +const UNSIGNED = 281; +const LONG = 282; +const INT = 283; +const REAL = 284; +const _CHAR = 285; +const VOID = 286; +const _CONST = 287; +const _FAR = 288; +const _HUGE = 289; +const _NEAR = 290; +const NEW_LINE = 291; +const SPACE_DEFINE = 292; +const EXTERN = 293; +const STDCALL = 294; +const CDECL = 295; +const CALLBACK = 296; +const PASCAL = 297; +const WINAPI = 298; +const APIENTRY = 299; +const WINGDIAPI = 300; +const SYS_TRAP = 301; +const _PACKED = 302; +const ELLIPSIS = 303; +const _ASSIGN = 304; +const R_AND = 305; +const EQUAL = 306; +const UNEQUAL = 307; +const GT = 308; +const LT = 309; +const GTE = 310; +const LTE = 311; +const QUESTIONMARK = 312; +const _OR = 313; +const _AND = 314; +const _PLUS = 315; +const MINUS = 316; +const _SHR = 317; +const _SHL = 318; +const STAR = 319; +const _SLASH = 320; +const _NOT = 321; +const PSTAR = 322; +const P_AND = 323; +const POINT = 324; +const DEREF = 325; +const STICK = 326; +const SIGNED = 327; var yylval : YYSType; @@ -1304,6 +1348,212 @@ begin yyval:=nil; end; 21 : begin + yyval:=yyv[yysp-1]; + end; + 22 : begin + yyval:=new(presobject,init_two(t_whilenode,yyv[yysp-2],yyv[yysp-0])); + end; + 23 : begin + + yyval:=new(presobject,init_one(t_statement_list,yyv[yysp-1])); + yyval^.next:=yyv[yysp-0]; + + end; + 24 : begin + + yyval:=new(presobject,init_one(t_statement_list,yyv[yysp-0])); + + end; + 25 : begin + + yyval:=new(presobject,init_one(t_statement_list,nil)); + + end; + 26 : begin + + yyval:=new(presobject,init_one(t_statement_list,nil)); + + end; + 27 : begin + yyval:=yyv[yysp-1]; + end; + 28 : begin + + IsExtern:=false; + (* by default we must pop the args pushed on stack *) + no_pop:=false; + if (assigned(yyv[yysp-1])and assigned(yyv[yysp-1]^.p1)and assigned(yyv[yysp-1]^.p1^.p1)) + and (yyv[yysp-1]^.p1^.p1^.typ=t_procdef) then + begin + repeat + If UseLib then + IsExtern:=true + else + IsExtern:=assigned(yyv[yysp-4])and(yyv[yysp-4]^.str='extern'); + no_pop:=assigned(yyv[yysp-2]) and (yyv[yysp-2]^.str='no_pop'); + + if (block_type<>bt_func) and not(createdynlib) then + begin + writeln(outfile); + block_type:=bt_func; + end; + + (* dyn. procedures must be put into a var block *) + if createdynlib then + begin + if (block_type<>bt_var) then + begin + if not(compactmode) then + writeln(outfile); + writeln(outfile,aktspace,'var'); + block_type:=bt_var; + end; + shift(2); + end; + if not CompactMode then + begin + write(outfile,aktspace); + if not IsExtern then + write(implemfile,aktspace); + end; + (* distinguish between procedure and function *) + if assigned(yyv[yysp-3]) then + if (yyv[yysp-3]^.typ=t_void) and (yyv[yysp-1]^.p1^.p1^.p1=nil) then + begin + if createdynlib then + begin + write(outfile,yyv[yysp-1]^.p1^.p2^.p,' : procedure'); + end + else + begin + shift(10); + write(outfile,'procedure ',yyv[yysp-1]^.p1^.p2^.p); + end; + if assigned(yyv[yysp-1]^.p1^.p1^.p2) then + write_args(outfile,yyv[yysp-1]^.p1^.p1^.p2); + if createdynlib then + begin + loaddynlibproc.add('pointer('+yyv[yysp-1]^.p1^.p2^.p+'):=GetProcAddress(hlib,'''+yyv[yysp-1]^.p1^.p2^.p+''');'); + freedynlibproc.add(yyv[yysp-1]^.p1^.p2^.p+':=nil;'); + end + else if not IsExtern then + begin + write(implemfile,'procedure ',yyv[yysp-1]^.p1^.p2^.p); + if assigned(yyv[yysp-1]^.p1^.p1^.p2) then + write_args(implemfile,yyv[yysp-1]^.p1^.p1^.p2); + end; + end + else + begin + if createdynlib then + begin + write(outfile,yyv[yysp-1]^.p1^.p2^.p,' : function'); + end + else + begin + shift(9); + write(outfile,'function ',yyv[yysp-1]^.p1^.p2^.p); + end; + + if assigned(yyv[yysp-1]^.p1^.p1^.p2) then + write_args(outfile,yyv[yysp-1]^.p1^.p1^.p2); + write(outfile,':'); + write_p_a_def(outfile,yyv[yysp-1]^.p1^.p1^.p1,yyv[yysp-3]); + if createdynlib then + begin + loaddynlibproc.add('pointer('+yyv[yysp-1]^.p1^.p2^.p+'):=GetProcAddress(hlib,'''+yyv[yysp-1]^.p1^.p2^.p+''');'); + freedynlibproc.add(yyv[yysp-1]^.p1^.p2^.p+':=nil;'); + end + else if not IsExtern then + begin + write(implemfile,'function ',yyv[yysp-1]^.p1^.p2^.p); + if assigned(yyv[yysp-1]^.p1^.p1^.p2) then + write_args(implemfile,yyv[yysp-1]^.p1^.p1^.p2); + write(implemfile,':'); + write_p_a_def(implemfile,yyv[yysp-1]^.p1^.p1^.p1,yyv[yysp-3]); + end; + end; + (* No CDECL in interface for Uselib *) + if IsExtern and (not no_pop) then + write(outfile,';cdecl'); + popshift; + if createdynlib then + begin + writeln(outfile,';'); + end + else if UseLib then + begin + if IsExtern then + begin + write (outfile,';external'); + If UseName then + Write(outfile,' External_library name ''',yyv[yysp-1]^.p1^.p2^.p,''''); + end; + writeln(outfile,';'); + end + else + begin + writeln(outfile,';'); + if not IsExtern then + begin + writeln(implemfile,';'); + shift(2); + if yyv[yysp-0]^.typ=t_statement_list then + write_statement_block(implemfile,yyv[yysp-0]); + popshift; + end; + end; + IsExtern:=false; + if not(compactmode) and not(createdynlib) then + writeln(outfile); + until not NeedEllipsisOverload; + end + else (* yyv[yysp-1]^.p1^.p1^.typ=t_procdef *) + if assigned(yyv[yysp-1])and assigned(yyv[yysp-1]^.p1) then + begin + shift(2); + if block_type<>bt_var then + begin + if not(compactmode) then + writeln(outfile); + writeln(outfile,aktspace,'var'); + end; + block_type:=bt_var; + + shift(3); + + IsExtern:=assigned(yyv[yysp-4])and(yyv[yysp-4]^.str='extern'); + (* walk through all declarations *) + hp:=yyv[yysp-1]; + while assigned(hp) and assigned(hp^.p1) do + begin + (* write new var name *) + if assigned(hp^.p1^.p2) and assigned(hp^.p1^.p2^.p) then + write(outfile,aktspace,hp^.p1^.p2^.p); + write(outfile,' : '); + shift(2); + (* write its type *) + write_p_a_def(outfile,hp^.p1^.p1,yyv[yysp-3]); + if assigned(hp^.p1^.p2)and assigned(hp^.p1^.p2^.p)then + begin + if isExtern then + write(outfile,';cvar;external') + else + write(outfile,';cvar;public'); + end; + writeln(outfile,';'); + popshift; + hp:=hp^.p2; + end; + popshift; + popshift; + end; + if assigned(yyv[yysp-4])then dispose(yyv[yysp-4],done); + if assigned(yyv[yysp-3])then dispose(yyv[yysp-3],done); + if assigned(yyv[yysp-1])then dispose(yyv[yysp-1],done); + + end; + 29 : begin IsExtern:=false; (* by default we must pop the args pushed on stack *) @@ -1480,7 +1730,7 @@ begin if assigned(yyv[yysp-2])then dispose(yyv[yysp-2],done); end; - 22 : begin + 30 : begin if block_type<>bt_type then begin @@ -1531,7 +1781,7 @@ begin end; end; - 23 : begin + 31 : begin (* TYPEDEF STRUCT dname dname SEMICOLON *) if block_type<>bt_type then @@ -1555,7 +1805,7 @@ begin dispose(yyv[yysp-1],done); end; - 24 : begin + 32 : begin (* TYPEDEF type_specifier LKLAMMER dec_modifier declarator RKLAMMER maybe_space LKLAMMER argument_declaration_list RKLAMMER SEMICOLON *) if block_type<>bt_type then @@ -1601,7 +1851,7 @@ begin dispose(yyv[yysp-6],done); end; - 25 : begin + 33 : begin (* TYPEDEF type_specifier dec_modifier declarator_list SEMICOLON *) if block_type<>bt_type then @@ -1679,7 +1929,7 @@ begin dispose(yyv[yysp-1],done); end; - 26 : begin + 34 : begin if block_type<>bt_type then begin @@ -1699,7 +1949,7 @@ begin dispose(yyv[yysp-1],done); end; - 27 : begin + 35 : begin writeln(outfile,'in declaration at line ',line_no,' *)'); aktspace:=''; in_space_define:=0; @@ -1710,7 +1960,7 @@ begin space_index:=1; yyerrok; end; - 28 : begin + 36 : begin (* DEFINE dname LKLAMMER enum_list RKLAMMER para_def_expr NEW_LINE *) if not stripinfo then @@ -1770,7 +2020,7 @@ begin if assigned(hp)then dispose(hp,done); end; - 29 : begin + 37 : begin (* DEFINE dname SPACE_DEFINE NEW_LINE *) writeln(outfile,'{$define ',yyv[yysp-2]^.p,'}',aktspace,commentstr); @@ -1779,7 +2029,7 @@ begin dispose(yyv[yysp-2],done); end; - 30 : begin + 38 : begin writeln(outfile,'{$define ',yyv[yysp-1]^.p,'}',aktspace,commentstr); flush(outfile); @@ -1787,7 +2037,7 @@ begin dispose(yyv[yysp-1],done); end; - 31 : begin + 39 : begin (* DEFINE dname SPACE_DEFINE def_expr NEW_LINE *) if (yyv[yysp-1]^.typ=t_exprlist) and @@ -1852,7 +2102,7 @@ begin end; end; - 32 : begin + 40 : begin writeln(outfile,'in define line ',line_no,' *)'); aktspace:=''; in_space_define:=0; @@ -1864,25 +2114,25 @@ begin yyerrok; end; - 33 : begin + 41 : begin yyval:=yyv[yysp-1]; end; - 34 : begin + 42 : begin writeln(outfile,' in member_list *)'); yyerrok; yyval:=nil; end; - 35 : begin + 43 : begin yyval:=yyv[yysp-1]; end; - 36 : begin + 44 : begin writeln(outfile,' in enum_list *)'); yyerrok; yyval:=nil; end; - 37 : begin + 45 : begin if (not is_packed) and (not packrecords) then writeln(outfile,'{$PACKRECORDS 1}'); @@ -1890,7 +2140,7 @@ begin yyval:=new(presobject,init_two(t_structdef,yyv[yysp-1],yyv[yysp-2])); end; - 38 : begin + 46 : begin if (is_packed) and (not packrecords) then writeln(outfile,'{$PACKRECORDS 4}'); @@ -1898,7 +2148,7 @@ begin yyval:=new(presobject,init_two(t_structdef,yyv[yysp-0],yyv[yysp-1])); end; - 39 : begin + 47 : begin if (not is_packed) and (not packrecords) then writeln(outfile,'{$PACKRECORDS 1}'); @@ -1906,39 +2156,39 @@ begin yyval:=new(presobject,init_two(t_uniondef,yyv[yysp-1],yyv[yysp-2])); end; - 40 : begin + 48 : begin yyval:=new(presobject,init_two(t_uniondef,yyv[yysp-0],yyv[yysp-1])); end; - 41 : begin + 49 : begin yyval:=yyv[yysp-0]; end; - 42 : begin + 50 : begin yyval:=yyv[yysp-0]; end; - 43 : begin + 51 : begin yyval:=new(presobject,init_two(t_enumdef,yyv[yysp-0],yyv[yysp-1])); end; - 44 : begin + 52 : begin yyval:=yyv[yysp-0]; end; - 45 : begin + 53 : begin if not stripinfo then writeln(outfile,'(* Const before type ignored *)'); yyval:=yyv[yysp-0]; end; - 46 : begin + 54 : begin if (not is_packed) and (not packrecords)then writeln(outfile,'{$PACKRECORDS 1}'); @@ -1946,12 +2196,12 @@ begin yyval:=new(presobject,init_one(t_uniondef,yyv[yysp-1])); end; - 47 : begin + 55 : begin yyval:=new(presobject,init_one(t_uniondef,yyv[yysp-0])); end; - 48 : begin + 56 : begin if (not is_packed) and (not packrecords) then writeln(outfile,'{$PACKRECORDS 1}'); @@ -1959,7 +2209,7 @@ begin yyval:=new(presobject,init_one(t_structdef,yyv[yysp-1])); end; - 49 : begin + 57 : begin if (is_packed) and (not packrecords) then writeln(outfile,'{$PACKRECORDS 4}'); @@ -1967,41 +2217,41 @@ begin yyval:=new(presobject,init_one(t_structdef,yyv[yysp-0])); end; - 50 : begin + 58 : begin yyval:=new(presobject,init_one(t_enumdef,yyv[yysp-0])); end; - 51 : begin + 59 : begin yyval:=yyv[yysp-0]; end; - 52 : begin + 60 : begin yyval:=yyv[yysp-0]; end; - 53 : begin + 61 : begin yyval:=new(presobject,init_one(t_memberdeclist,yyv[yysp-1])); yyval^.next:=yyv[yysp-0]; end; - 54 : begin + 62 : begin yyval:=new(presobject,init_one(t_memberdeclist,yyv[yysp-0])); end; - 55 : begin + 63 : begin yyval:=new(presobject,init_two(t_memberdec,yyv[yysp-2],yyv[yysp-1])); end; - 56 : begin + 64 : begin (*dname*) yyval:=new(presobject,init_id(act_token)); end; - 57 : begin + 65 : begin hp:=yyv[yysp-0]; yyval:=hp; @@ -2023,7 +2273,7 @@ begin end; end; - 58 : begin + 66 : begin hp:=yyv[yysp-0]; yyval:=hp; @@ -2044,69 +2294,69 @@ begin hp^.setstr(s); end; - end; - 59 : begin - - yyval:=new(presobject,init_intid(INT_STR)); - - end; - 60 : begin - - yyval:=new(presobject,init_intid(INT_STR)); - - end; - 61 : begin - - yyval:=new(presobject,init_intid(INT_STR)); - - end; - 62 : begin - - yyval:=new(presobject,init_intid(INT64_STR)); - - end; - 63 : begin - - yyval:=new(presobject,init_intid(INT64_STR)); - - end; - 64 : begin - - yyval:=new(presobject,init_intid(SHORT_STR)); - - end; - 65 : begin - - yyval:=new(presobject,init_intid(SHORT_STR)); - - end; - 66 : begin - - yyval:=new(presobject,init_intid(REAL_STR)); - end; 67 : begin - yyval:=new(presobject,init_no(t_void)); + yyval:=new(presobject,init_intid(INT_STR)); end; 68 : begin - yyval:=new(presobject,init_intid(CHAR_STR)); + yyval:=new(presobject,init_intid(INT_STR)); end; 69 : begin - yyval:=new(presobject,init_intid(UINT_STR)); + yyval:=new(presobject,init_intid(INT_STR)); end; 70 : begin - yyval:=yyv[yysp-0]; + yyval:=new(presobject,init_intid(INT64_STR)); end; 71 : begin + yyval:=new(presobject,init_intid(INT64_STR)); + + end; + 72 : begin + + yyval:=new(presobject,init_intid(SHORT_STR)); + + end; + 73 : begin + + yyval:=new(presobject,init_intid(SHORT_STR)); + + end; + 74 : begin + + yyval:=new(presobject,init_intid(REAL_STR)); + + end; + 75 : begin + + yyval:=new(presobject,init_no(t_void)); + + end; + 76 : begin + + yyval:=new(presobject,init_intid(CHAR_STR)); + + end; + 77 : begin + + yyval:=new(presobject,init_intid(UINT_STR)); + + end; + 78 : begin + + yyval:=yyv[yysp-0]; + + end; + 79 : begin + yyval:=yyv[yysp-0]; tn:=yyval^.str; if removeunderscore and @@ -2114,7 +2364,7 @@ begin yyval^.setstr(Copy(tn,2,length(tn)-1)); end; - 72 : begin + 80 : begin yyval:=yyv[yysp-2]; hp:=yyv[yysp-2]; @@ -2123,79 +2373,79 @@ begin hp^.next:=new(presobject,init_one(t_declist,yyv[yysp-0])); end; - 73 : begin + 81 : begin writeln(outfile,' in declarator_list *)'); yyval:=yyv[yysp-0]; yyerrok; end; - 74 : begin + 82 : begin writeln(outfile,' in declarator_list *)'); yyerrok; end; - 75 : begin + 83 : begin yyval:=new(presobject,init_one(t_declist,yyv[yysp-0])); end; - 76 : begin + 84 : begin yyval:=new(presobject,init_two(t_arg,yyv[yysp-1],yyv[yysp-0])); end; - 77 : begin + 85 : begin (* type_specifier STAR declarator *) hp:=new(presobject,init_one(t_pointerdef,yyv[yysp-2])); yyval:=new(presobject,init_two(t_arg,hp,yyv[yysp-0])); end; - 78 : begin + 86 : begin yyval:=new(presobject,init_two(t_arg,yyv[yysp-1],yyv[yysp-0])); end; - 79 : begin + 87 : begin yyval:=new(presobject,init_two(t_arglist,yyv[yysp-0],nil)); end; - 80 : begin + 88 : begin yyval:=new(presobject,init_two(t_arglist,yyv[yysp-2],nil)); yyval^.next:=yyv[yysp-0]; end; - 81 : begin + 89 : begin yyval:=new(presobject,init_two(t_arglist,ellipsisarg,nil)); end; - 82 : begin + 90 : begin yyval:=nil; end; - 83 : begin + 91 : begin yyval:=new(presobject,init_id('far')); end; - 84 : begin + 92 : begin yyval:=new(presobject,init_id('near')); end; - 85 : begin + 93 : begin yyval:=new(presobject,init_id('huge')); end; - 86 : begin + 94 : begin if not stripinfo then writeln(outfile,'(* Const before declarator ignored *)'); yyval:=yyv[yysp-0]; end; - 87 : begin + 95 : begin if not stripinfo then writeln(outfile,aktspace,'(* ',yyv[yysp-2]^.p,' ignored *)'); @@ -2207,7 +2457,7 @@ begin hp^.p1:=new(presobject,init_one(t_pointerdef,nil)); end; - 88 : begin + 96 : begin (* %prec PSTAR this was wrong!! *) hp:=yyv[yysp-0]; @@ -2217,7 +2467,7 @@ begin hp^.p1:=new(presobject,init_one(t_pointerdef,nil)); end; - 89 : begin + 97 : begin hp:=yyv[yysp-0]; yyval:=hp; @@ -2226,14 +2476,14 @@ begin hp^.p1:=new(presobject,init_one(t_addrdef,nil)); end; - 90 : begin + 98 : begin (* size specifier supported *) hp:=new(presobject,init_one(t_size_specifier,yyv[yysp-0])); yyval:=new(presobject,init_three(t_dec,nil,yyv[yysp-2],hp)); end; - 91 : begin + 99 : begin if not stripinfo then writeln(outfile,'(* Warning : default value for ',yyv[yysp-2]^.p,' ignored *)'); @@ -2241,12 +2491,12 @@ begin yyval:=new(presobject,init_three(t_dec,nil,yyv[yysp-2],hp)); end; - 92 : begin + 100 : begin yyval:=new(presobject,init_two(t_dec,nil,yyv[yysp-0])); end; - 93 : begin + 101 : begin hp:=yyv[yysp-3]; yyval:=hp; @@ -2255,7 +2505,7 @@ begin hp^.p1:=new(presobject,init_two(t_procdef,nil,yyv[yysp-1])); end; - 94 : begin + 102 : begin hp:=yyv[yysp-1]; yyval:=hp; @@ -2264,7 +2514,7 @@ begin hp^.p1:=new(presobject,init_two(t_procdef,nil,nil)); end; - 95 : begin + 103 : begin hp:=yyv[yysp-3]; yyval:=hp; @@ -2273,7 +2523,7 @@ begin hp^.p1:=new(presobject,init_two(t_arraydef,nil,yyv[yysp-1])); end; - 96 : begin + 104 : begin (* this is translated into a pointer *) hp:=yyv[yysp-2]; @@ -2283,25 +2533,25 @@ begin hp^.p1:=new(presobject,init_two(t_arraydef,nil,nil)); end; - 97 : begin + 105 : begin yyval:=yyv[yysp-1]; end; - 98 : begin + 106 : begin yyval := yyv[yysp-1]; end; - 99 : begin + 107 : begin yyval := yyv[yysp-2]; end; - 100 : begin + 108 : begin if not stripinfo then writeln(outfile,'(* Const before abstract_declarator ignored *)'); yyval:=yyv[yysp-0]; end; - 101 : begin + 109 : begin if not stripinfo then writeln(outfile,aktspace,'(* ',yyv[yysp-2]^.p,' ignored *)'); @@ -2313,7 +2563,7 @@ begin hp^.p1:=new(presobject,init_one(t_pointerdef,nil)); end; - 102 : begin + 110 : begin hp:=yyv[yysp-0]; yyval:=hp; @@ -2322,7 +2572,7 @@ begin hp^.p1:=new(presobject,init_one(t_pointerdef,nil)); end; - 103 : begin + 111 : begin hp:=yyv[yysp-3]; yyval:=hp; @@ -2331,7 +2581,7 @@ begin hp^.p1:=new(presobject,init_two(t_procdef,nil,yyv[yysp-1])); end; - 104 : begin + 112 : begin hp:=yyv[yysp-1]; yyval:=hp; @@ -2340,7 +2590,7 @@ begin hp^.p1:=new(presobject,init_two(t_procdef,nil,nil)); end; - 105 : begin + 113 : begin hp:=yyv[yysp-3]; yyval:=hp; @@ -2349,7 +2599,7 @@ begin hp^.p1:=new(presobject,init_two(t_arraydef,nil,yyv[yysp-1])); end; - 106 : begin + 114 : begin (* this is translated into a pointer *) hp:=yyv[yysp-2]; @@ -2359,95 +2609,99 @@ begin hp^.p1:=new(presobject,init_two(t_arraydef,nil,nil)); end; - 107 : begin + 115 : begin yyval:=yyv[yysp-1]; end; - 108 : begin + 116 : begin yyval:=new(presobject,init_two(t_dec,nil,nil)); end; - 109 : begin - yyval:=yyv[yysp-0]; - end; - 110 : begin - yyval:=new(presobject,init_bop(' = ',yyv[yysp-2],yyv[yysp-0])); - end; - 111 : begin - yyval:=new(presobject,init_bop(' <> ',yyv[yysp-2],yyv[yysp-0])); - end; - 112 : begin - yyval:=new(presobject,init_bop(' > ',yyv[yysp-2],yyv[yysp-0])); - end; - 113 : begin - yyval:=new(presobject,init_bop(' >= ',yyv[yysp-2],yyv[yysp-0])); - end; - 114 : begin - yyval:=new(presobject,init_bop(' < ',yyv[yysp-2],yyv[yysp-0])); - end; - 115 : begin - yyval:=new(presobject,init_bop(' <= ',yyv[yysp-2],yyv[yysp-0])); - end; - 116 : begin - yyval:=new(presobject,init_bop(' + ',yyv[yysp-2],yyv[yysp-0])); - end; 117 : begin - yyval:=new(presobject,init_bop(' - ',yyv[yysp-2],yyv[yysp-0])); + yyval:=yyv[yysp-0]; end; 118 : begin - yyval:=new(presobject,init_bop(' * ',yyv[yysp-2],yyv[yysp-0])); + yyval:=new(presobject,init_bop(':=',yyv[yysp-2],yyv[yysp-0])); end; 119 : begin - yyval:=new(presobject,init_bop(' / ',yyv[yysp-2],yyv[yysp-0])); + yyval:=new(presobject,init_bop('=',yyv[yysp-2],yyv[yysp-0])); end; 120 : begin - yyval:=new(presobject,init_bop(' or ',yyv[yysp-2],yyv[yysp-0])); + yyval:=new(presobject,init_bop('<>',yyv[yysp-2],yyv[yysp-0])); end; 121 : begin - yyval:=new(presobject,init_bop(' and ',yyv[yysp-2],yyv[yysp-0])); + yyval:=new(presobject,init_bop('>',yyv[yysp-2],yyv[yysp-0])); end; 122 : begin - yyval:=new(presobject,init_bop(' not ',yyv[yysp-2],yyv[yysp-0])); + yyval:=new(presobject,init_bop('>=',yyv[yysp-2],yyv[yysp-0])); end; 123 : begin - yyval:=new(presobject,init_bop(' shl ',yyv[yysp-2],yyv[yysp-0])); + yyval:=new(presobject,init_bop('<',yyv[yysp-2],yyv[yysp-0])); end; 124 : begin - yyval:=new(presobject,init_bop(' shr ',yyv[yysp-2],yyv[yysp-0])); + yyval:=new(presobject,init_bop('<=',yyv[yysp-2],yyv[yysp-0])); end; 125 : begin + yyval:=new(presobject,init_bop('+',yyv[yysp-2],yyv[yysp-0])); + end; + 126 : begin + yyval:=new(presobject,init_bop('-',yyv[yysp-2],yyv[yysp-0])); + end; + 127 : begin + yyval:=new(presobject,init_bop('*',yyv[yysp-2],yyv[yysp-0])); + end; + 128 : begin + yyval:=new(presobject,init_bop('/',yyv[yysp-2],yyv[yysp-0])); + end; + 129 : begin + yyval:=new(presobject,init_bop(' or ',yyv[yysp-2],yyv[yysp-0])); + end; + 130 : begin + yyval:=new(presobject,init_bop(' and ',yyv[yysp-2],yyv[yysp-0])); + end; + 131 : begin + yyval:=new(presobject,init_bop(' not ',yyv[yysp-2],yyv[yysp-0])); + end; + 132 : begin + yyval:=new(presobject,init_bop(' shl ',yyv[yysp-2],yyv[yysp-0])); + end; + 133 : begin + yyval:=new(presobject,init_bop(' shr ',yyv[yysp-2],yyv[yysp-0])); + end; + 134 : begin + yyv[yysp-0]^.p1:=yyv[yysp-2]; yyval:=yyv[yysp-0]; inc(if_nb); yyval^.p:=strpnew('if_local'+str(if_nb)); end; - 126 : begin + 135 : begin yyval:=yyv[yysp-0]; end; - 127 : begin + 136 : begin (* if A then B else C *) yyval:=new(presobject,init_three(t_ifexpr,nil,yyv[yysp-2],yyv[yysp-0])); end; - 128 : begin + 137 : begin yyval:=yyv[yysp-0]; end; - 129 : begin + 138 : begin yyval:=nil; end; - 130 : begin + 139 : begin yyval:=yyv[yysp-0]; end; - 131 : begin + 140 : begin yyval:=yyv[yysp-0]; end; - 132 : begin + 141 : begin (* remove L prefix for widestrings *) s:=act_token; @@ -2456,37 +2710,37 @@ begin yyval:=new(presobject,init_id(''''+copy(s,2,length(s)-2)+'''')); end; - 133 : begin + 142 : begin yyval:=new(presobject,init_id(act_token)); end; - 134 : begin + 143 : begin yyval:=new(presobject,init_bop('.',yyv[yysp-2],yyv[yysp-0])); end; - 135 : begin + 144 : begin yyval:=new(presobject,init_bop('^.',yyv[yysp-2],yyv[yysp-0])); end; - 136 : begin + 145 : begin yyval:=new(presobject,init_preop('-',yyv[yysp-0])); end; - 137 : begin + 146 : begin yyval:=new(presobject,init_preop('@',yyv[yysp-0])); end; - 138 : begin + 147 : begin yyval:=new(presobject,init_preop(' not ',yyv[yysp-0])); end; - 139 : begin + 148 : begin if assigned(yyv[yysp-0]) then yyval:=new(presobject,init_two(t_typespec,yyv[yysp-2],yyv[yysp-0])) @@ -2494,18 +2748,18 @@ begin yyval:=yyv[yysp-2]; end; - 140 : begin + 149 : begin yyval:=new(presobject,init_two(t_typespec,yyv[yysp-2],yyv[yysp-0])); end; - 141 : begin + 150 : begin hp:=new(presobject,init_one(t_pointerdef,yyv[yysp-3])); yyval:=new(presobject,init_two(t_typespec,hp,yyv[yysp-0])); end; - 142 : begin + 151 : begin if not stripinfo then writeln(outfile,aktspace,'(* ',yyv[yysp-3]^.p,' ignored *)'); @@ -2516,56 +2770,56 @@ begin yyval:=new(presobject,init_two(t_typespec,hp,yyv[yysp-0])); end; - 143 : begin + 152 : begin hp:=new(presobject,init_one(t_exprlist,yyv[yysp-3])); yyval:=new(presobject,init_three(t_funexprlist,hp,yyv[yysp-1],nil)); end; - 144 : begin + 153 : begin yyval:=yyv[yysp-1]; end; - 145 : begin + 154 : begin yyval:=new(presobject,init_two(t_callop,yyv[yysp-5],yyv[yysp-1])); end; - 146 : begin + 155 : begin yyval:=new(presobject,init_two(t_arrayop,yyv[yysp-3],yyv[yysp-1])); end; - 147 : begin + 156 : begin (*enum_element COMMA enum_list *) yyval:=yyv[yysp-2]; yyval^.next:=yyv[yysp-0]; end; - 148 : begin + 157 : begin yyval:=yyv[yysp-0]; end; - 149 : begin + 158 : begin (* empty enum list *) yyval:=nil; end; - 150 : begin + 159 : begin begin (*enum_element: dname _ASSIGN expr *) yyval:=new(presobject,init_two(t_enumlist,yyv[yysp-2],yyv[yysp-0])); end; end; - 151 : begin + 160 : begin begin (*enum_element: dname*) yyval:=new(presobject,init_two(t_enumlist,yyv[yysp-0],nil)); end; end; - 152 : begin + 161 : begin if yyv[yysp-0]^.typ=t_funexprlist then yyval:=yyv[yysp-0] @@ -2577,32 +2831,32 @@ begin yyval^.p3:=yyv[yysp-0]^.p1^.get_copy; end; - 153 : begin + 162 : begin yyval:=yyv[yysp-0]; end; - 154 : begin + 163 : begin yyval:=yyv[yysp-1] end; - 155 : begin + 164 : begin (*exprlist COMMA expr*) yyval:=yyv[yysp-2]; yyv[yysp-2]^.next:=yyv[yysp-0]; end; - 156 : begin + 165 : begin yyval:=yyv[yysp-0]; end; - 157 : begin + 166 : begin (* empty expression list *) yyval:=nil; end; - 158 : begin + 167 : begin yyval:=new(presobject,init_one(t_exprlist,yyv[yysp-0])); @@ -2621,416 +2875,422 @@ type YYARec = record const -yynacts = 2490; -yyngotos = 389; -yynstates = 291; -yynrules = 158; +yynacts = 2724; +yyngotos = 421; +yynstates = 307; +yynrules = 167; yya : array [1..yynacts] of YYARec = ( { 0: } ( sym: 256; act: 7 ), - ( sym: 257; act: 8 ), - ( sym: 258; act: 9 ), - ( sym: 268; act: 10 ), - ( sym: 269; act: 11 ), - ( sym: 270; act: 12 ), - ( sym: 288; act: 13 ), - ( sym: 271; act: -10 ), - ( sym: 274; act: -10 ), - ( sym: 275; act: -10 ), - ( sym: 276; act: -10 ), + ( sym: 263; act: 8 ), + ( sym: 264; act: 9 ), + ( sym: 274; act: 10 ), + ( sym: 275; act: 11 ), + ( sym: 276; act: 12 ), + ( sym: 293; act: 13 ), ( sym: 277; act: -10 ), - ( sym: 278; act: -10 ), - ( sym: 279; act: -10 ), ( sym: 280; act: -10 ), ( sym: 281; act: -10 ), - ( sym: 321; act: -10 ), + ( sym: 282; act: -10 ), + ( sym: 283; act: -10 ), + ( sym: 284; act: -10 ), + ( sym: 285; act: -10 ), + ( sym: 286; act: -10 ), + ( sym: 287; act: -10 ), + ( sym: 327; act: -10 ), { 1: } - ( sym: 260; act: 14 ), + ( sym: 266; act: 14 ), { 2: } - ( sym: 268; act: 20 ), - ( sym: 269; act: 21 ), - ( sym: 270; act: 22 ), - ( sym: 271; act: 23 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 281; act: 31 ), - ( sym: 321; act: 32 ), + ( sym: 274; act: 20 ), + ( sym: 275; act: 21 ), + ( sym: 276; act: 22 ), + ( sym: 277; act: 23 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 287; act: 31 ), + ( sym: 327; act: 32 ), { 3: } { 4: } { 5: } ( sym: 256; act: 7 ), - ( sym: 257; act: 8 ), - ( sym: 258; act: 9 ), - ( sym: 268; act: 10 ), - ( sym: 269; act: 11 ), - ( sym: 270; act: 12 ), - ( sym: 288; act: 13 ), + ( sym: 263; act: 8 ), + ( sym: 264; act: 9 ), + ( sym: 274; act: 10 ), + ( sym: 275; act: 11 ), + ( sym: 276; act: 12 ), + ( sym: 293; act: 13 ), ( sym: 0; act: -1 ), - ( sym: 271; act: -10 ), - ( sym: 274; act: -10 ), - ( sym: 275; act: -10 ), - ( sym: 276; act: -10 ), ( sym: 277; act: -10 ), - ( sym: 278; act: -10 ), - ( sym: 279; act: -10 ), ( sym: 280; act: -10 ), ( sym: 281; act: -10 ), - ( sym: 321; act: -10 ), + ( sym: 282; act: -10 ), + ( sym: 283; act: -10 ), + ( sym: 284; act: -10 ), + ( sym: 285; act: -10 ), + ( sym: 286; act: -10 ), + ( sym: 287; act: -10 ), + ( sym: 327; act: -10 ), { 6: } ( sym: 0; act: 0 ), { 7: } { 8: } - ( sym: 268; act: 38 ), - ( sym: 269; act: 21 ), - ( sym: 270; act: 22 ), - ( sym: 271; act: 23 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 281; act: 31 ), - ( sym: 321; act: 32 ), + ( sym: 274; act: 38 ), + ( sym: 275; act: 21 ), + ( sym: 276; act: 22 ), + ( sym: 277; act: 23 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 287; act: 31 ), + ( sym: 327; act: 32 ), { 9: } - ( sym: 271; act: 23 ), + ( sym: 277; act: 23 ), { 10: } - ( sym: 271; act: 23 ), + ( sym: 277; act: 23 ), { 11: } - ( sym: 271; act: 23 ), + ( sym: 277; act: 23 ), { 12: } - ( sym: 271; act: 23 ), + ( sym: 277; act: 23 ), { 13: } { 14: } { 15: } { 16: } { 17: } { 18: } - ( sym: 289; act: 44 ), - ( sym: 290; act: 45 ), - ( sym: 291; act: 46 ), - ( sym: 292; act: 47 ), - ( sym: 293; act: 48 ), - ( sym: 294; act: 49 ), - ( sym: 295; act: 50 ), + ( sym: 294; act: 44 ), + ( sym: 295; act: 45 ), + ( sym: 296; act: 46 ), + ( sym: 297; act: 47 ), + ( sym: 298; act: 48 ), + ( sym: 299; act: 49 ), + ( sym: 300; act: 50 ), ( sym: 256; act: -18 ), - ( sym: 262; act: -18 ), - ( sym: 271; act: -18 ), - ( sym: 281; act: -18 ), - ( sym: 282; act: -18 ), - ( sym: 283; act: -18 ), - ( sym: 284; act: -18 ), - ( sym: 308; act: -18 ), - ( sym: 313; act: -18 ), + ( sym: 268; act: -18 ), + ( sym: 277; act: -18 ), + ( sym: 287; act: -18 ), + ( sym: 288; act: -18 ), + ( sym: 289; act: -18 ), + ( sym: 290; act: -18 ), + ( sym: 314; act: -18 ), + ( sym: 319; act: -18 ), { 19: } { 20: } ( sym: 256; act: 52 ), - ( sym: 266; act: 53 ), - ( sym: 271; act: 23 ), + ( sym: 272; act: 53 ), + ( sym: 277; act: 23 ), { 21: } ( sym: 256; act: 52 ), - ( sym: 266; act: 53 ), - ( sym: 271; act: 23 ), + ( sym: 272; act: 53 ), + ( sym: 277; act: 23 ), { 22: } ( sym: 256; act: 56 ), - ( sym: 266; act: 57 ), - ( sym: 271; act: 23 ), + ( sym: 272; act: 57 ), + ( sym: 277; act: 23 ), { 23: } { 24: } - ( sym: 277; act: 58 ), - ( sym: 256; act: -64 ), - ( sym: 259; act: -64 ), - ( sym: 260; act: -64 ), - ( sym: 261; act: -64 ), - ( sym: 262; act: -64 ), - ( sym: 263; act: -64 ), - ( sym: 264; act: -64 ), - ( sym: 265; act: -64 ), - ( sym: 267; act: -64 ), - ( sym: 271; act: -64 ), - ( sym: 281; act: -64 ), - ( sym: 282; act: -64 ), - ( sym: 283; act: -64 ), - ( sym: 284; act: -64 ), - ( sym: 286; act: -64 ), - ( sym: 289; act: -64 ), - ( sym: 290; act: -64 ), - ( sym: 291; act: -64 ), - ( sym: 292; act: -64 ), - ( sym: 293; act: -64 ), - ( sym: 294; act: -64 ), - ( sym: 295; act: -64 ), - ( sym: 296; act: -64 ), - ( sym: 300; act: -64 ), - ( sym: 301; act: -64 ), - ( sym: 302; act: -64 ), - ( sym: 303; act: -64 ), - ( sym: 304; act: -64 ), - ( sym: 305; act: -64 ), - ( sym: 306; act: -64 ), - ( sym: 307; act: -64 ), - ( sym: 308; act: -64 ), - ( sym: 309; act: -64 ), - ( sym: 310; act: -64 ), - ( sym: 311; act: -64 ), - ( sym: 312; act: -64 ), - ( sym: 313; act: -64 ), - ( sym: 314; act: -64 ), - ( sym: 315; act: -64 ), - ( sym: 318; act: -64 ), - ( sym: 319; act: -64 ), + ( sym: 283; act: 58 ), + ( sym: 256; act: -72 ), + ( sym: 265; act: -72 ), + ( sym: 266; act: -72 ), + ( sym: 267; act: -72 ), + ( sym: 268; act: -72 ), + ( sym: 269; act: -72 ), + ( sym: 270; act: -72 ), + ( sym: 271; act: -72 ), + ( sym: 272; act: -72 ), + ( sym: 273; act: -72 ), + ( sym: 277; act: -72 ), + ( sym: 287; act: -72 ), + ( sym: 288; act: -72 ), + ( sym: 289; act: -72 ), + ( sym: 290; act: -72 ), + ( sym: 291; act: -72 ), + ( sym: 294; act: -72 ), + ( sym: 295; act: -72 ), + ( sym: 296; act: -72 ), + ( sym: 297; act: -72 ), + ( sym: 298; act: -72 ), + ( sym: 299; act: -72 ), + ( sym: 300; act: -72 ), + ( sym: 301; act: -72 ), + ( sym: 304; act: -72 ), + ( sym: 306; act: -72 ), + ( sym: 307; act: -72 ), + ( sym: 308; act: -72 ), + ( sym: 309; act: -72 ), + ( sym: 310; act: -72 ), + ( sym: 311; act: -72 ), + ( sym: 312; act: -72 ), + ( sym: 313; act: -72 ), + ( sym: 314; act: -72 ), + ( sym: 315; act: -72 ), + ( sym: 316; act: -72 ), + ( sym: 317; act: -72 ), + ( sym: 318; act: -72 ), + ( sym: 319; act: -72 ), + ( sym: 320; act: -72 ), + ( sym: 321; act: -72 ), + ( sym: 324; act: -72 ), + ( sym: 325; act: -72 ), { 25: } - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 321; act: 32 ), - ( sym: 256; act: -69 ), - ( sym: 259; act: -69 ), - ( sym: 260; act: -69 ), - ( sym: 261; act: -69 ), - ( sym: 262; act: -69 ), - ( sym: 263; act: -69 ), - ( sym: 264; act: -69 ), - ( sym: 265; act: -69 ), - ( sym: 267; act: -69 ), - ( sym: 271; act: -69 ), - ( sym: 281; act: -69 ), - ( sym: 282; act: -69 ), - ( sym: 283; act: -69 ), - ( sym: 284; act: -69 ), - ( sym: 286; act: -69 ), - ( sym: 289; act: -69 ), - ( sym: 290; act: -69 ), - ( sym: 291; act: -69 ), - ( sym: 292; act: -69 ), - ( sym: 293; act: -69 ), - ( sym: 294; act: -69 ), - ( sym: 295; act: -69 ), - ( sym: 296; act: -69 ), - ( sym: 300; act: -69 ), - ( sym: 301; act: -69 ), - ( sym: 302; act: -69 ), - ( sym: 303; act: -69 ), - ( sym: 304; act: -69 ), - ( sym: 305; act: -69 ), - ( sym: 306; act: -69 ), - ( sym: 307; act: -69 ), - ( sym: 308; act: -69 ), - ( sym: 309; act: -69 ), - ( sym: 310; act: -69 ), - ( sym: 311; act: -69 ), - ( sym: 312; act: -69 ), - ( sym: 313; act: -69 ), - ( sym: 314; act: -69 ), - ( sym: 315; act: -69 ), - ( sym: 318; act: -69 ), - ( sym: 319; act: -69 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 327; act: 32 ), + ( sym: 256; act: -77 ), + ( sym: 265; act: -77 ), + ( sym: 266; act: -77 ), + ( sym: 267; act: -77 ), + ( sym: 268; act: -77 ), + ( sym: 269; act: -77 ), + ( sym: 270; act: -77 ), + ( sym: 271; act: -77 ), + ( sym: 272; act: -77 ), + ( sym: 273; act: -77 ), + ( sym: 277; act: -77 ), + ( sym: 287; act: -77 ), + ( sym: 288; act: -77 ), + ( sym: 289; act: -77 ), + ( sym: 290; act: -77 ), + ( sym: 291; act: -77 ), + ( sym: 294; act: -77 ), + ( sym: 295; act: -77 ), + ( sym: 296; act: -77 ), + ( sym: 297; act: -77 ), + ( sym: 298; act: -77 ), + ( sym: 299; act: -77 ), + ( sym: 300; act: -77 ), + ( sym: 301; act: -77 ), + ( sym: 304; act: -77 ), + ( sym: 306; act: -77 ), + ( sym: 307; act: -77 ), + ( sym: 308; act: -77 ), + ( sym: 309; act: -77 ), + ( sym: 310; act: -77 ), + ( sym: 311; act: -77 ), + ( sym: 312; act: -77 ), + ( sym: 313; act: -77 ), + ( sym: 314; act: -77 ), + ( sym: 315; act: -77 ), + ( sym: 316; act: -77 ), + ( sym: 317; act: -77 ), + ( sym: 318; act: -77 ), + ( sym: 319; act: -77 ), + ( sym: 320; act: -77 ), + ( sym: 321; act: -77 ), + ( sym: 324; act: -77 ), + ( sym: 325; act: -77 ), { 26: } - ( sym: 276; act: 60 ), - ( sym: 277; act: 61 ), - ( sym: 256; act: -60 ), - ( sym: 259; act: -60 ), - ( sym: 260; act: -60 ), - ( sym: 261; act: -60 ), - ( sym: 262; act: -60 ), - ( sym: 263; act: -60 ), - ( sym: 264; act: -60 ), - ( sym: 265; act: -60 ), - ( sym: 267; act: -60 ), - ( sym: 271; act: -60 ), - ( sym: 281; act: -60 ), - ( sym: 282; act: -60 ), - ( sym: 283; act: -60 ), - ( sym: 284; act: -60 ), - ( sym: 286; act: -60 ), - ( sym: 289; act: -60 ), - ( sym: 290; act: -60 ), - ( sym: 291; act: -60 ), - ( sym: 292; act: -60 ), - ( sym: 293; act: -60 ), - ( sym: 294; act: -60 ), - ( sym: 295; act: -60 ), - ( sym: 296; act: -60 ), - ( sym: 300; act: -60 ), - ( sym: 301; act: -60 ), - ( sym: 302; act: -60 ), - ( sym: 303; act: -60 ), - ( sym: 304; act: -60 ), - ( sym: 305; act: -60 ), - ( sym: 306; act: -60 ), - ( sym: 307; act: -60 ), - ( sym: 308; act: -60 ), - ( sym: 309; act: -60 ), - ( sym: 310; act: -60 ), - ( sym: 311; act: -60 ), - ( sym: 312; act: -60 ), - ( sym: 313; act: -60 ), - ( sym: 314; act: -60 ), - ( sym: 315; act: -60 ), - ( sym: 318; act: -60 ), - ( sym: 319; act: -60 ), + ( sym: 282; act: 60 ), + ( sym: 283; act: 61 ), + ( sym: 256; act: -68 ), + ( sym: 265; act: -68 ), + ( sym: 266; act: -68 ), + ( sym: 267; act: -68 ), + ( sym: 268; act: -68 ), + ( sym: 269; act: -68 ), + ( sym: 270; act: -68 ), + ( sym: 271; act: -68 ), + ( sym: 272; act: -68 ), + ( sym: 273; act: -68 ), + ( sym: 277; act: -68 ), + ( sym: 287; act: -68 ), + ( sym: 288; act: -68 ), + ( sym: 289; act: -68 ), + ( sym: 290; act: -68 ), + ( sym: 291; act: -68 ), + ( sym: 294; act: -68 ), + ( sym: 295; act: -68 ), + ( sym: 296; act: -68 ), + ( sym: 297; act: -68 ), + ( sym: 298; act: -68 ), + ( sym: 299; act: -68 ), + ( sym: 300; act: -68 ), + ( sym: 301; act: -68 ), + ( sym: 304; act: -68 ), + ( sym: 306; act: -68 ), + ( sym: 307; act: -68 ), + ( sym: 308; act: -68 ), + ( sym: 309; act: -68 ), + ( sym: 310; act: -68 ), + ( sym: 311; act: -68 ), + ( sym: 312; act: -68 ), + ( sym: 313; act: -68 ), + ( sym: 314; act: -68 ), + ( sym: 315; act: -68 ), + ( sym: 316; act: -68 ), + ( sym: 317; act: -68 ), + ( sym: 318; act: -68 ), + ( sym: 319; act: -68 ), + ( sym: 320; act: -68 ), + ( sym: 321; act: -68 ), + ( sym: 324; act: -68 ), + ( sym: 325; act: -68 ), { 27: } { 28: } { 29: } { 30: } { 31: } - ( sym: 268; act: 20 ), - ( sym: 269; act: 21 ), - ( sym: 270; act: 22 ), - ( sym: 271; act: 23 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 281; act: 31 ), - ( sym: 321; act: 32 ), + ( sym: 274; act: 20 ), + ( sym: 275; act: 21 ), + ( sym: 276; act: 22 ), + ( sym: 277; act: 23 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 287; act: 31 ), + ( sym: 327; act: 32 ), { 32: } - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 321; act: 32 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 327; act: 32 ), { 33: } { 34: } { 35: } - ( sym: 260; act: 64 ), - ( sym: 286; act: 65 ), + ( sym: 266; act: 64 ), + ( sym: 291; act: 65 ), { 36: } - ( sym: 262; act: 67 ), - ( sym: 289; act: 44 ), - ( sym: 290; act: 45 ), - ( sym: 291; act: 46 ), - ( sym: 292; act: 47 ), - ( sym: 293; act: 48 ), - ( sym: 294; act: 49 ), - ( sym: 295; act: 50 ), + ( sym: 268; act: 67 ), + ( sym: 294; act: 44 ), + ( sym: 295; act: 45 ), + ( sym: 296; act: 46 ), + ( sym: 297; act: 47 ), + ( sym: 298; act: 48 ), + ( sym: 299; act: 49 ), + ( sym: 300; act: 50 ), ( sym: 256; act: -18 ), - ( sym: 271; act: -18 ), - ( sym: 281; act: -18 ), - ( sym: 282; act: -18 ), - ( sym: 283; act: -18 ), - ( sym: 284; act: -18 ), - ( sym: 308; act: -18 ), - ( sym: 313; act: -18 ), + ( sym: 277; act: -18 ), + ( sym: 287; act: -18 ), + ( sym: 288; act: -18 ), + ( sym: 289; act: -18 ), + ( sym: 290; act: -18 ), + ( sym: 314; act: -18 ), + ( sym: 319; act: -18 ), { 37: } - ( sym: 260; act: 68 ), - ( sym: 256; act: -71 ), - ( sym: 262; act: -71 ), - ( sym: 271; act: -71 ), - ( sym: 281; act: -71 ), - ( sym: 282; act: -71 ), - ( sym: 283; act: -71 ), - ( sym: 284; act: -71 ), - ( sym: 289; act: -71 ), - ( sym: 290; act: -71 ), - ( sym: 291; act: -71 ), - ( sym: 292; act: -71 ), - ( sym: 293; act: -71 ), - ( sym: 294; act: -71 ), - ( sym: 295; act: -71 ), - ( sym: 308; act: -71 ), - ( sym: 313; act: -71 ), + ( sym: 266; act: 68 ), + ( sym: 256; act: -79 ), + ( sym: 268; act: -79 ), + ( sym: 277; act: -79 ), + ( sym: 287; act: -79 ), + ( sym: 288; act: -79 ), + ( sym: 289; act: -79 ), + ( sym: 290; act: -79 ), + ( sym: 294; act: -79 ), + ( sym: 295; act: -79 ), + ( sym: 296; act: -79 ), + ( sym: 297; act: -79 ), + ( sym: 298; act: -79 ), + ( sym: 299; act: -79 ), + ( sym: 300; act: -79 ), + ( sym: 314; act: -79 ), + ( sym: 319; act: -79 ), { 38: } ( sym: 256; act: 52 ), - ( sym: 266; act: 53 ), - ( sym: 271; act: 23 ), + ( sym: 272; act: 53 ), + ( sym: 277; act: 23 ), { 39: } - ( sym: 262; act: 70 ), - ( sym: 286; act: 71 ), - ( sym: 287; act: 72 ), + ( sym: 268; act: 70 ), + ( sym: 291; act: 71 ), + ( sym: 292; act: 72 ), { 40: } ( sym: 256; act: 52 ), - ( sym: 266; act: 53 ), - ( sym: 260; act: -42 ), - ( sym: 261; act: -42 ), - ( sym: 262; act: -42 ), - ( sym: 263; act: -42 ), - ( sym: 264; act: -42 ), - ( sym: 271; act: -42 ), - ( sym: 281; act: -42 ), - ( sym: 282; act: -42 ), - ( sym: 283; act: -42 ), - ( sym: 284; act: -42 ), - ( sym: 289; act: -42 ), - ( sym: 290; act: -42 ), - ( sym: 291; act: -42 ), - ( sym: 292; act: -42 ), - ( sym: 293; act: -42 ), - ( sym: 294; act: -42 ), - ( sym: 295; act: -42 ), - ( sym: 308; act: -42 ), - ( sym: 313; act: -42 ), + ( sym: 272; act: 53 ), + ( sym: 266; act: -50 ), + ( sym: 267; act: -50 ), + ( sym: 268; act: -50 ), + ( sym: 269; act: -50 ), + ( sym: 270; act: -50 ), + ( sym: 277; act: -50 ), + ( sym: 287; act: -50 ), + ( sym: 288; act: -50 ), + ( sym: 289; act: -50 ), + ( sym: 290; act: -50 ), + ( sym: 294; act: -50 ), + ( sym: 295; act: -50 ), + ( sym: 296; act: -50 ), + ( sym: 297; act: -50 ), + ( sym: 298; act: -50 ), + ( sym: 299; act: -50 ), + ( sym: 300; act: -50 ), + ( sym: 314; act: -50 ), + ( sym: 319; act: -50 ), { 41: } ( sym: 256; act: 52 ), - ( sym: 266; act: 53 ), - ( sym: 260; act: -41 ), - ( sym: 261; act: -41 ), - ( sym: 262; act: -41 ), - ( sym: 263; act: -41 ), - ( sym: 264; act: -41 ), - ( sym: 271; act: -41 ), - ( sym: 281; act: -41 ), - ( sym: 282; act: -41 ), - ( sym: 283; act: -41 ), - ( sym: 284; act: -41 ), - ( sym: 289; act: -41 ), - ( sym: 290; act: -41 ), - ( sym: 291; act: -41 ), - ( sym: 292; act: -41 ), - ( sym: 293; act: -41 ), - ( sym: 294; act: -41 ), - ( sym: 295; act: -41 ), - ( sym: 308; act: -41 ), - ( sym: 313; act: -41 ), + ( sym: 272; act: 53 ), + ( sym: 266; act: -49 ), + ( sym: 267; act: -49 ), + ( sym: 268; act: -49 ), + ( sym: 269; act: -49 ), + ( sym: 270; act: -49 ), + ( sym: 277; act: -49 ), + ( sym: 287; act: -49 ), + ( sym: 288; act: -49 ), + ( sym: 289; act: -49 ), + ( sym: 290; act: -49 ), + ( sym: 294; act: -49 ), + ( sym: 295; act: -49 ), + ( sym: 296; act: -49 ), + ( sym: 297; act: -49 ), + ( sym: 298; act: -49 ), + ( sym: 299; act: -49 ), + ( sym: 300; act: -49 ), + ( sym: 314; act: -49 ), + ( sym: 319; act: -49 ), { 42: } ( sym: 256; act: 56 ), - ( sym: 266; act: 57 ), - ( sym: 260; act: -44 ), - ( sym: 261; act: -44 ), - ( sym: 262; act: -44 ), - ( sym: 263; act: -44 ), - ( sym: 264; act: -44 ), - ( sym: 271; act: -44 ), - ( sym: 281; act: -44 ), - ( sym: 282; act: -44 ), - ( sym: 283; act: -44 ), - ( sym: 284; act: -44 ), - ( sym: 289; act: -44 ), - ( sym: 290; act: -44 ), - ( sym: 291; act: -44 ), - ( sym: 292; act: -44 ), - ( sym: 293; act: -44 ), - ( sym: 294; act: -44 ), - ( sym: 295; act: -44 ), - ( sym: 308; act: -44 ), - ( sym: 313; act: -44 ), + ( sym: 272; act: 57 ), + ( sym: 266; act: -52 ), + ( sym: 267; act: -52 ), + ( sym: 268; act: -52 ), + ( sym: 269; act: -52 ), + ( sym: 270; act: -52 ), + ( sym: 277; act: -52 ), + ( sym: 287; act: -52 ), + ( sym: 288; act: -52 ), + ( sym: 289; act: -52 ), + ( sym: 290; act: -52 ), + ( sym: 294; act: -52 ), + ( sym: 295; act: -52 ), + ( sym: 296; act: -52 ), + ( sym: 297; act: -52 ), + ( sym: 298; act: -52 ), + ( sym: 299; act: -52 ), + ( sym: 300; act: -52 ), + ( sym: 314; act: -52 ), + ( sym: 319; act: -52 ), { 43: } ( sym: 256; act: 80 ), - ( sym: 262; act: 81 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 82 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 87 ), + ( sym: 268; act: 81 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 82 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 87 ), { 44: } { 45: } { 46: } @@ -3039,112 +3299,114 @@ yya : array [1..yynacts] of YYARec = ( { 49: } { 50: } { 51: } - ( sym: 297; act: 88 ), - ( sym: 256; act: -49 ), - ( sym: 261; act: -49 ), - ( sym: 262; act: -49 ), - ( sym: 263; act: -49 ), - ( sym: 264; act: -49 ), - ( sym: 271; act: -49 ), - ( sym: 281; act: -49 ), - ( sym: 282; act: -49 ), - ( sym: 283; act: -49 ), - ( sym: 284; act: -49 ), - ( sym: 289; act: -49 ), - ( sym: 290; act: -49 ), - ( sym: 291; act: -49 ), - ( sym: 292; act: -49 ), - ( sym: 293; act: -49 ), - ( sym: 294; act: -49 ), - ( sym: 295; act: -49 ), - ( sym: 308; act: -49 ), - ( sym: 313; act: -49 ), + ( sym: 302; act: 88 ), + ( sym: 256; act: -57 ), + ( sym: 267; act: -57 ), + ( sym: 268; act: -57 ), + ( sym: 269; act: -57 ), + ( sym: 270; act: -57 ), + ( sym: 277; act: -57 ), + ( sym: 287; act: -57 ), + ( sym: 288; act: -57 ), + ( sym: 289; act: -57 ), + ( sym: 290; act: -57 ), + ( sym: 294; act: -57 ), + ( sym: 295; act: -57 ), + ( sym: 296; act: -57 ), + ( sym: 297; act: -57 ), + ( sym: 298; act: -57 ), + ( sym: 299; act: -57 ), + ( sym: 300; act: -57 ), + ( sym: 314; act: -57 ), + ( sym: 319; act: -57 ), { 52: } { 53: } - ( sym: 268; act: 20 ), - ( sym: 269; act: 21 ), - ( sym: 270; act: 22 ), - ( sym: 271; act: 23 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 281; act: 31 ), - ( sym: 321; act: 32 ), + ( sym: 274; act: 20 ), + ( sym: 275; act: 21 ), + ( sym: 276; act: 22 ), + ( sym: 277; act: 23 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 287; act: 31 ), + ( sym: 327; act: 32 ), { 54: } - ( sym: 297; act: 93 ), - ( sym: 256; act: -47 ), - ( sym: 261; act: -47 ), - ( sym: 262; act: -47 ), - ( sym: 263; act: -47 ), - ( sym: 264; act: -47 ), - ( sym: 271; act: -47 ), - ( sym: 281; act: -47 ), - ( sym: 282; act: -47 ), - ( sym: 283; act: -47 ), - ( sym: 284; act: -47 ), - ( sym: 289; act: -47 ), - ( sym: 290; act: -47 ), - ( sym: 291; act: -47 ), - ( sym: 292; act: -47 ), - ( sym: 293; act: -47 ), - ( sym: 294; act: -47 ), - ( sym: 295; act: -47 ), - ( sym: 308; act: -47 ), - ( sym: 313; act: -47 ), + ( sym: 302; act: 93 ), + ( sym: 256; act: -55 ), + ( sym: 267; act: -55 ), + ( sym: 268; act: -55 ), + ( sym: 269; act: -55 ), + ( sym: 270; act: -55 ), + ( sym: 277; act: -55 ), + ( sym: 287; act: -55 ), + ( sym: 288; act: -55 ), + ( sym: 289; act: -55 ), + ( sym: 290; act: -55 ), + ( sym: 294; act: -55 ), + ( sym: 295; act: -55 ), + ( sym: 296; act: -55 ), + ( sym: 297; act: -55 ), + ( sym: 298; act: -55 ), + ( sym: 299; act: -55 ), + ( sym: 300; act: -55 ), + ( sym: 314; act: -55 ), + ( sym: 319; act: -55 ), { 55: } { 56: } { 57: } - ( sym: 271; act: 23 ), - ( sym: 267; act: -149 ), + ( sym: 277; act: 23 ), + ( sym: 273; act: -158 ), { 58: } { 59: } { 60: } - ( sym: 277; act: 98 ), - ( sym: 256; act: -62 ), - ( sym: 259; act: -62 ), - ( sym: 260; act: -62 ), - ( sym: 261; act: -62 ), - ( sym: 262; act: -62 ), - ( sym: 263; act: -62 ), - ( sym: 264; act: -62 ), - ( sym: 265; act: -62 ), - ( sym: 267; act: -62 ), - ( sym: 271; act: -62 ), - ( sym: 281; act: -62 ), - ( sym: 282; act: -62 ), - ( sym: 283; act: -62 ), - ( sym: 284; act: -62 ), - ( sym: 286; act: -62 ), - ( sym: 289; act: -62 ), - ( sym: 290; act: -62 ), - ( sym: 291; act: -62 ), - ( sym: 292; act: -62 ), - ( sym: 293; act: -62 ), - ( sym: 294; act: -62 ), - ( sym: 295; act: -62 ), - ( sym: 296; act: -62 ), - ( sym: 300; act: -62 ), - ( sym: 301; act: -62 ), - ( sym: 302; act: -62 ), - ( sym: 303; act: -62 ), - ( sym: 304; act: -62 ), - ( sym: 305; act: -62 ), - ( sym: 306; act: -62 ), - ( sym: 307; act: -62 ), - ( sym: 308; act: -62 ), - ( sym: 309; act: -62 ), - ( sym: 310; act: -62 ), - ( sym: 311; act: -62 ), - ( sym: 312; act: -62 ), - ( sym: 313; act: -62 ), - ( sym: 314; act: -62 ), - ( sym: 315; act: -62 ), - ( sym: 318; act: -62 ), - ( sym: 319; act: -62 ), + ( sym: 283; act: 98 ), + ( sym: 256; act: -70 ), + ( sym: 265; act: -70 ), + ( sym: 266; act: -70 ), + ( sym: 267; act: -70 ), + ( sym: 268; act: -70 ), + ( sym: 269; act: -70 ), + ( sym: 270; act: -70 ), + ( sym: 271; act: -70 ), + ( sym: 272; act: -70 ), + ( sym: 273; act: -70 ), + ( sym: 277; act: -70 ), + ( sym: 287; act: -70 ), + ( sym: 288; act: -70 ), + ( sym: 289; act: -70 ), + ( sym: 290; act: -70 ), + ( sym: 291; act: -70 ), + ( sym: 294; act: -70 ), + ( sym: 295; act: -70 ), + ( sym: 296; act: -70 ), + ( sym: 297; act: -70 ), + ( sym: 298; act: -70 ), + ( sym: 299; act: -70 ), + ( sym: 300; act: -70 ), + ( sym: 301; act: -70 ), + ( sym: 304; act: -70 ), + ( sym: 306; act: -70 ), + ( sym: 307; act: -70 ), + ( sym: 308; act: -70 ), + ( sym: 309; act: -70 ), + ( sym: 310; act: -70 ), + ( sym: 311; act: -70 ), + ( sym: 312; act: -70 ), + ( sym: 313; act: -70 ), + ( sym: 314; act: -70 ), + ( sym: 315; act: -70 ), + ( sym: 316; act: -70 ), + ( sym: 317; act: -70 ), + ( sym: 318; act: -70 ), + ( sym: 319; act: -70 ), + ( sym: 320; act: -70 ), + ( sym: 321; act: -70 ), + ( sym: 324; act: -70 ), + ( sym: 325; act: -70 ), { 61: } { 62: } { 63: } @@ -3152,1894 +3414,654 @@ yya : array [1..yynacts] of YYARec = ( { 65: } { 66: } ( sym: 256; act: 80 ), - ( sym: 262; act: 81 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 82 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 87 ), + ( sym: 268; act: 81 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 82 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 87 ), { 67: } - ( sym: 289; act: 44 ), - ( sym: 290; act: 45 ), - ( sym: 291; act: 46 ), - ( sym: 292; act: 47 ), - ( sym: 293; act: 48 ), - ( sym: 294; act: 49 ), - ( sym: 295; act: 50 ), - ( sym: 262; act: -18 ), - ( sym: 271; act: -18 ), - ( sym: 281; act: -18 ), - ( sym: 282; act: -18 ), - ( sym: 283; act: -18 ), - ( sym: 284; act: -18 ), - ( sym: 308; act: -18 ), - ( sym: 313; act: -18 ), + ( sym: 294; act: 44 ), + ( sym: 295; act: 45 ), + ( sym: 296; act: 46 ), + ( sym: 297; act: 47 ), + ( sym: 298; act: 48 ), + ( sym: 299; act: 49 ), + ( sym: 300; act: 50 ), + ( sym: 268; act: -18 ), + ( sym: 277; act: -18 ), + ( sym: 287; act: -18 ), + ( sym: 288; act: -18 ), + ( sym: 289; act: -18 ), + ( sym: 290; act: -18 ), + ( sym: 314; act: -18 ), + ( sym: 319; act: -18 ), { 68: } { 69: } ( sym: 256; act: 52 ), - ( sym: 266; act: 53 ), - ( sym: 271; act: 23 ), - ( sym: 262; act: -42 ), - ( sym: 281; act: -42 ), - ( sym: 282; act: -42 ), - ( sym: 283; act: -42 ), - ( sym: 284; act: -42 ), - ( sym: 289; act: -42 ), - ( sym: 290; act: -42 ), - ( sym: 291; act: -42 ), - ( sym: 292; act: -42 ), - ( sym: 293; act: -42 ), - ( sym: 294; act: -42 ), - ( sym: 295; act: -42 ), - ( sym: 308; act: -42 ), - ( sym: 313; act: -42 ), + ( sym: 272; act: 53 ), + ( sym: 277; act: 23 ), + ( sym: 268; act: -50 ), + ( sym: 287; act: -50 ), + ( sym: 288; act: -50 ), + ( sym: 289; act: -50 ), + ( sym: 290; act: -50 ), + ( sym: 294; act: -50 ), + ( sym: 295; act: -50 ), + ( sym: 296; act: -50 ), + ( sym: 297; act: -50 ), + ( sym: 298; act: -50 ), + ( sym: 299; act: -50 ), + ( sym: 300; act: -50 ), + ( sym: 314; act: -50 ), + ( sym: 319; act: -50 ), { 70: } - ( sym: 271; act: 23 ), - ( sym: 263; act: -149 ), + ( sym: 277; act: 23 ), + ( sym: 269; act: -158 ), { 71: } { 72: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 286; act: 110 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 291; act: 110 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 73: } - ( sym: 297; act: 114 ), - ( sym: 256; act: -38 ), - ( sym: 260; act: -38 ), - ( sym: 261; act: -38 ), - ( sym: 262; act: -38 ), - ( sym: 263; act: -38 ), - ( sym: 264; act: -38 ), - ( sym: 271; act: -38 ), - ( sym: 281; act: -38 ), - ( sym: 282; act: -38 ), - ( sym: 283; act: -38 ), - ( sym: 284; act: -38 ), - ( sym: 289; act: -38 ), - ( sym: 290; act: -38 ), - ( sym: 291; act: -38 ), - ( sym: 292; act: -38 ), - ( sym: 293; act: -38 ), - ( sym: 294; act: -38 ), - ( sym: 295; act: -38 ), - ( sym: 308; act: -38 ), - ( sym: 313; act: -38 ), + ( sym: 302; act: 114 ), + ( sym: 256; act: -46 ), + ( sym: 266; act: -46 ), + ( sym: 267; act: -46 ), + ( sym: 268; act: -46 ), + ( sym: 269; act: -46 ), + ( sym: 270; act: -46 ), + ( sym: 277; act: -46 ), + ( sym: 287; act: -46 ), + ( sym: 288; act: -46 ), + ( sym: 289; act: -46 ), + ( sym: 290; act: -46 ), + ( sym: 294; act: -46 ), + ( sym: 295; act: -46 ), + ( sym: 296; act: -46 ), + ( sym: 297; act: -46 ), + ( sym: 298; act: -46 ), + ( sym: 299; act: -46 ), + ( sym: 300; act: -46 ), + ( sym: 314; act: -46 ), + ( sym: 319; act: -46 ), { 74: } - ( sym: 297; act: 115 ), - ( sym: 256; act: -40 ), - ( sym: 260; act: -40 ), - ( sym: 261; act: -40 ), - ( sym: 262; act: -40 ), - ( sym: 263; act: -40 ), - ( sym: 264; act: -40 ), - ( sym: 271; act: -40 ), - ( sym: 281; act: -40 ), - ( sym: 282; act: -40 ), - ( sym: 283; act: -40 ), - ( sym: 284; act: -40 ), - ( sym: 289; act: -40 ), - ( sym: 290; act: -40 ), - ( sym: 291; act: -40 ), - ( sym: 292; act: -40 ), - ( sym: 293; act: -40 ), - ( sym: 294; act: -40 ), - ( sym: 295; act: -40 ), - ( sym: 308; act: -40 ), - ( sym: 313; act: -40 ), + ( sym: 302; act: 115 ), + ( sym: 256; act: -48 ), + ( sym: 266; act: -48 ), + ( sym: 267; act: -48 ), + ( sym: 268; act: -48 ), + ( sym: 269; act: -48 ), + ( sym: 270; act: -48 ), + ( sym: 277; act: -48 ), + ( sym: 287; act: -48 ), + ( sym: 288; act: -48 ), + ( sym: 289; act: -48 ), + ( sym: 290; act: -48 ), + ( sym: 294; act: -48 ), + ( sym: 295; act: -48 ), + ( sym: 296; act: -48 ), + ( sym: 297; act: -48 ), + ( sym: 298; act: -48 ), + ( sym: 299; act: -48 ), + ( sym: 300; act: -48 ), + ( sym: 314; act: -48 ), + ( sym: 319; act: -48 ), { 75: } { 76: } - ( sym: 313; act: 116 ), + ( sym: 319; act: 116 ), { 77: } - ( sym: 262; act: 118 ), - ( sym: 264; act: 119 ), - ( sym: 260; act: -75 ), - ( sym: 261; act: -75 ), - ( sym: 296; act: -75 ), + ( sym: 268; act: 118 ), + ( sym: 270; act: 119 ), + ( sym: 266; act: -83 ), + ( sym: 267; act: -83 ), + ( sym: 272; act: -83 ), + ( sym: 301; act: -83 ), { 78: } - ( sym: 261; act: 121 ), - ( sym: 296; act: 122 ), - ( sym: 260; act: -20 ), + ( sym: 267; act: 122 ), + ( sym: 272; act: 123 ), + ( sym: 301; act: 124 ), + ( sym: 266; act: -20 ), { 79: } - ( sym: 259; act: 124 ), - ( sym: 260; act: -92 ), - ( sym: 261; act: -92 ), - ( sym: 262; act: -92 ), - ( sym: 263; act: -92 ), - ( sym: 264; act: -92 ), - ( sym: 296; act: -92 ), + ( sym: 265; act: 126 ), + ( sym: 266; act: -100 ), + ( sym: 267; act: -100 ), + ( sym: 268; act: -100 ), + ( sym: 269; act: -100 ), + ( sym: 270; act: -100 ), + ( sym: 272; act: -100 ), + ( sym: 301; act: -100 ), { 80: } { 81: } - ( sym: 262; act: 81 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 82 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 87 ), + ( sym: 268; act: 81 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 82 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 87 ), { 82: } - ( sym: 262; act: 81 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 82 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 87 ), + ( sym: 268; act: 81 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 82 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 87 ), { 83: } { 84: } { 85: } { 86: } - ( sym: 262; act: 81 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 82 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 87 ), + ( sym: 268; act: 81 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 82 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 87 ), { 87: } - ( sym: 262; act: 81 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 82 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 87 ), + ( sym: 268; act: 81 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 82 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 87 ), { 88: } { 89: } - ( sym: 267; act: 130 ), + ( sym: 273; act: 132 ), { 90: } - ( sym: 268; act: 20 ), - ( sym: 269; act: 21 ), - ( sym: 270; act: 22 ), - ( sym: 271; act: 23 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 281; act: 31 ), - ( sym: 321; act: 32 ), - ( sym: 267; act: -54 ), + ( sym: 274; act: 20 ), + ( sym: 275; act: 21 ), + ( sym: 276; act: 22 ), + ( sym: 277; act: 23 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 287; act: 31 ), + ( sym: 327; act: 32 ), + ( sym: 273; act: -62 ), { 91: } - ( sym: 267; act: 132 ), + ( sym: 273; act: 134 ), { 92: } ( sym: 256; act: 80 ), - ( sym: 262; act: 81 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 82 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 87 ), + ( sym: 268; act: 81 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 82 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 87 ), { 93: } { 94: } - ( sym: 267; act: 134 ), + ( sym: 273; act: 136 ), { 95: } - ( sym: 261; act: 135 ), - ( sym: 263; act: -148 ), - ( sym: 267; act: -148 ), + ( sym: 267; act: 137 ), + ( sym: 269; act: -157 ), + ( sym: 273; act: -157 ), { 96: } - ( sym: 267; act: 136 ), + ( sym: 273; act: 138 ), { 97: } - ( sym: 285; act: 137 ), - ( sym: 261; act: -151 ), - ( sym: 263; act: -151 ), - ( sym: 267; act: -151 ), + ( sym: 304; act: 139 ), + ( sym: 267; act: -160 ), + ( sym: 269; act: -160 ), + ( sym: 273; act: -160 ), { 98: } { 99: } - ( sym: 260; act: 138 ), - ( sym: 261; act: 121 ), + ( sym: 266; act: 140 ), + ( sym: 267; act: 122 ), { 100: } - ( sym: 262; act: 81 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 82 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 87 ), + ( sym: 268; act: 81 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 82 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 87 ), { 101: } - ( sym: 260; act: 140 ), + ( sym: 266; act: 142 ), { 102: } - ( sym: 263; act: 141 ), + ( sym: 269; act: 143 ), { 103: } - ( sym: 318; act: 142 ), - ( sym: 319; act: 143 ), - ( sym: 263; act: -152 ), - ( sym: 286; act: -152 ), + ( sym: 324; act: 144 ), + ( sym: 325; act: 145 ), + ( sym: 269; act: -161 ), + ( sym: 291; act: -161 ), { 104: } { 105: } - ( sym: 286; act: 144 ), + ( sym: 291; act: 146 ), { 106: } - ( sym: 262; act: 145 ), - ( sym: 264; act: 146 ), - ( sym: 259; act: -130 ), - ( sym: 260; act: -130 ), - ( sym: 261; act: -130 ), - ( sym: 263; act: -130 ), - ( sym: 265; act: -130 ), - ( sym: 267; act: -130 ), - ( sym: 286; act: -130 ), - ( sym: 296; act: -130 ), - ( sym: 300; act: -130 ), - ( sym: 301; act: -130 ), - ( sym: 302; act: -130 ), - ( sym: 303; act: -130 ), - ( sym: 304; act: -130 ), - ( sym: 305; act: -130 ), - ( sym: 306; act: -130 ), - ( sym: 307; act: -130 ), - ( sym: 308; act: -130 ), - ( sym: 309; act: -130 ), - ( sym: 310; act: -130 ), - ( sym: 311; act: -130 ), - ( sym: 312; act: -130 ), - ( sym: 313; act: -130 ), - ( sym: 314; act: -130 ), - ( sym: 315; act: -130 ), - ( sym: 318; act: -130 ), - ( sym: 319; act: -130 ), + ( sym: 268; act: 147 ), + ( sym: 270; act: 148 ), + ( sym: 265; act: -139 ), + ( sym: 266; act: -139 ), + ( sym: 267; act: -139 ), + ( sym: 269; act: -139 ), + ( sym: 271; act: -139 ), + ( sym: 272; act: -139 ), + ( sym: 273; act: -139 ), + ( sym: 291; act: -139 ), + ( sym: 301; act: -139 ), + ( sym: 304; act: -139 ), + ( sym: 306; act: -139 ), + ( sym: 307; act: -139 ), + ( sym: 308; act: -139 ), + ( sym: 309; act: -139 ), + ( sym: 310; act: -139 ), + ( sym: 311; act: -139 ), + ( sym: 312; act: -139 ), + ( sym: 313; act: -139 ), + ( sym: 314; act: -139 ), + ( sym: 315; act: -139 ), + ( sym: 316; act: -139 ), + ( sym: 317; act: -139 ), + ( sym: 318; act: -139 ), + ( sym: 319; act: -139 ), + ( sym: 320; act: -139 ), + ( sym: 321; act: -139 ), + ( sym: 324; act: -139 ), + ( sym: 325; act: -139 ), { 107: } - ( sym: 262; act: 107 ), - ( sym: 268; act: 20 ), - ( sym: 269; act: 21 ), - ( sym: 270; act: 22 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 281; act: 31 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 313; act: 153 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), + ( sym: 268; act: 107 ), + ( sym: 274; act: 20 ), + ( sym: 275; act: 21 ), + ( sym: 276; act: 22 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 287; act: 31 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 319; act: 155 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 108: } { 109: } { 110: } { 111: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 112: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 113: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 114: } { 115: } { 116: } - ( sym: 262; act: 81 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 82 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 87 ), + ( sym: 268; act: 81 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 82 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 87 ), { 117: } { 118: } - ( sym: 263; act: 161 ), - ( sym: 268; act: 20 ), - ( sym: 269; act: 21 ), - ( sym: 270; act: 22 ), - ( sym: 271; act: 23 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 162 ), - ( sym: 281; act: 31 ), - ( sym: 298; act: 163 ), - ( sym: 321; act: 32 ), + ( sym: 269; act: 163 ), + ( sym: 274; act: 20 ), + ( sym: 275; act: 21 ), + ( sym: 276; act: 22 ), + ( sym: 277; act: 23 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 164 ), + ( sym: 287; act: 31 ), + ( sym: 303; act: 165 ), + ( sym: 327; act: 32 ), { 119: } - ( sym: 262; act: 107 ), - ( sym: 265; act: 166 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), + ( sym: 268; act: 107 ), + ( sym: 271; act: 168 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 120: } - ( sym: 260; act: 167 ), { 121: } - ( sym: 262; act: 81 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 82 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 87 ), + ( sym: 266; act: 169 ), { 122: } - ( sym: 262; act: 169 ), + ( sym: 268; act: 81 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 82 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 87 ), { 123: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), + ( sym: 257; act: 174 ), + ( sym: 266; act: 175 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), + ( sym: 273; act: -26 ), { 124: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), + ( sym: 268; act: 176 ), { 125: } - ( sym: 261; act: 172 ), - ( sym: 260; act: -74 ), - ( sym: 296; act: -74 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 126: } - ( sym: 262; act: 118 ), - ( sym: 263; act: 173 ), - ( sym: 264; act: 119 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 127: } - ( sym: 262; act: 118 ), - ( sym: 264; act: 119 ), - ( sym: 260; act: -86 ), - ( sym: 261; act: -86 ), - ( sym: 263; act: -86 ), - ( sym: 296; act: -86 ), + ( sym: 267; act: 179 ), + ( sym: 266; act: -82 ), + ( sym: 272; act: -82 ), + ( sym: 301; act: -82 ), { 128: } - ( sym: 264; act: 119 ), - ( sym: 260; act: -89 ), - ( sym: 261; act: -89 ), - ( sym: 262; act: -89 ), - ( sym: 263; act: -89 ), - ( sym: 296; act: -89 ), + ( sym: 268; act: 118 ), + ( sym: 269; act: 180 ), + ( sym: 270; act: 119 ), { 129: } - ( sym: 262; act: 118 ), - ( sym: 264; act: 119 ), - ( sym: 260; act: -88 ), - ( sym: 261; act: -88 ), - ( sym: 263; act: -88 ), - ( sym: 296; act: -88 ), + ( sym: 268; act: 118 ), + ( sym: 270; act: 119 ), + ( sym: 266; act: -94 ), + ( sym: 267; act: -94 ), + ( sym: 269; act: -94 ), + ( sym: 272; act: -94 ), + ( sym: 301; act: -94 ), { 130: } + ( sym: 270; act: 119 ), + ( sym: 266; act: -97 ), + ( sym: 267; act: -97 ), + ( sym: 268; act: -97 ), + ( sym: 269; act: -97 ), + ( sym: 272; act: -97 ), + ( sym: 301; act: -97 ), { 131: } + ( sym: 268; act: 118 ), + ( sym: 270; act: 119 ), + ( sym: 266; act: -96 ), + ( sym: 267; act: -96 ), + ( sym: 269; act: -96 ), + ( sym: 272; act: -96 ), + ( sym: 301; act: -96 ), { 132: } { 133: } - ( sym: 260; act: 174 ), - ( sym: 261; act: 121 ), { 134: } { 135: } - ( sym: 271; act: 23 ), - ( sym: 263; act: -149 ), - ( sym: 267; act: -149 ), + ( sym: 266; act: 181 ), + ( sym: 267; act: 122 ), { 136: } { 137: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), + ( sym: 277; act: 23 ), + ( sym: 269; act: -158 ), + ( sym: 273; act: -158 ), { 138: } { 139: } - ( sym: 262; act: 118 ), - ( sym: 263; act: 177 ), - ( sym: 264; act: 119 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 140: } { 141: } - ( sym: 287; act: 180 ), - ( sym: 262; act: -3 ), + ( sym: 268; act: 118 ), + ( sym: 269; act: 184 ), + ( sym: 270; act: 119 ), { 142: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), { 143: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), + ( sym: 292; act: 187 ), + ( sym: 268; act: -3 ), { 144: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 145: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), - ( sym: 263; act: -157 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 146: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), - ( sym: 265; act: -157 ), { 147: } - ( sym: 318; act: 142 ), - ( sym: 319; act: 143 ), - ( sym: 259; act: -126 ), - ( sym: 260; act: -126 ), - ( sym: 261; act: -126 ), - ( sym: 262; act: -126 ), - ( sym: 263; act: -126 ), - ( sym: 264; act: -126 ), - ( sym: 265; act: -126 ), - ( sym: 267; act: -126 ), - ( sym: 286; act: -126 ), - ( sym: 296; act: -126 ), - ( sym: 300; act: -126 ), - ( sym: 301; act: -126 ), - ( sym: 302; act: -126 ), - ( sym: 303; act: -126 ), - ( sym: 304; act: -126 ), - ( sym: 305; act: -126 ), - ( sym: 306; act: -126 ), - ( sym: 307; act: -126 ), - ( sym: 308; act: -126 ), - ( sym: 309; act: -126 ), - ( sym: 310; act: -126 ), - ( sym: 311; act: -126 ), - ( sym: 312; act: -126 ), - ( sym: 313; act: -126 ), - ( sym: 314; act: -126 ), - ( sym: 315; act: -126 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), + ( sym: 269; act: -166 ), { 148: } - ( sym: 263; act: 187 ), - ( sym: 300; act: -109 ), - ( sym: 301; act: -109 ), - ( sym: 302; act: -109 ), - ( sym: 303; act: -109 ), - ( sym: 304; act: -109 ), - ( sym: 305; act: -109 ), - ( sym: 306; act: -109 ), - ( sym: 307; act: -109 ), - ( sym: 308; act: -109 ), - ( sym: 309; act: -109 ), - ( sym: 310; act: -109 ), - ( sym: 311; act: -109 ), - ( sym: 312; act: -109 ), - ( sym: 313; act: -109 ), - ( sym: 314; act: -109 ), - ( sym: 315; act: -109 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), + ( sym: 271; act: -166 ), { 149: } - ( sym: 300; act: 188 ), - ( sym: 301; act: 189 ), - ( sym: 302; act: 190 ), - ( sym: 303; act: 191 ), - ( sym: 304; act: 192 ), - ( sym: 305; act: 193 ), - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), + ( sym: 324; act: 144 ), + ( sym: 325; act: 145 ), + ( sym: 265; act: -135 ), + ( sym: 266; act: -135 ), + ( sym: 267; act: -135 ), + ( sym: 268; act: -135 ), + ( sym: 269; act: -135 ), + ( sym: 270; act: -135 ), + ( sym: 271; act: -135 ), + ( sym: 272; act: -135 ), + ( sym: 273; act: -135 ), + ( sym: 291; act: -135 ), + ( sym: 301; act: -135 ), + ( sym: 304; act: -135 ), + ( sym: 306; act: -135 ), + ( sym: 307; act: -135 ), + ( sym: 308; act: -135 ), + ( sym: 309; act: -135 ), + ( sym: 310; act: -135 ), + ( sym: 311; act: -135 ), + ( sym: 312; act: -135 ), + ( sym: 313; act: -135 ), + ( sym: 314; act: -135 ), + ( sym: 315; act: -135 ), + ( sym: 316; act: -135 ), + ( sym: 317; act: -135 ), + ( sym: 318; act: -135 ), + ( sym: 319; act: -135 ), + ( sym: 320; act: -135 ), + ( sym: 321; act: -135 ), { 150: } - ( sym: 263; act: -70 ), - ( sym: 282; act: -70 ), - ( sym: 283; act: -70 ), - ( sym: 284; act: -70 ), - ( sym: 313; act: -70 ), - ( sym: 300; act: -131 ), - ( sym: 301; act: -131 ), - ( sym: 302; act: -131 ), - ( sym: 303; act: -131 ), - ( sym: 304; act: -131 ), - ( sym: 305; act: -131 ), - ( sym: 306; act: -131 ), - ( sym: 307; act: -131 ), - ( sym: 308; act: -131 ), - ( sym: 309; act: -131 ), - ( sym: 310; act: -131 ), - ( sym: 311; act: -131 ), - ( sym: 312; act: -131 ), - ( sym: 314; act: -131 ), - ( sym: 315; act: -131 ), - ( sym: 318; act: -131 ), - ( sym: 319; act: -131 ), -{ 151: } - ( sym: 263; act: 205 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 313; act: 206 ), -{ 152: } - ( sym: 262; act: 145 ), - ( sym: 263; act: 207 ), - ( sym: 264; act: 146 ), - ( sym: 282; act: -71 ), - ( sym: 283; act: -71 ), - ( sym: 284; act: -71 ), - ( sym: 313; act: -71 ), - ( sym: 300; act: -130 ), - ( sym: 301; act: -130 ), - ( sym: 302; act: -130 ), - ( sym: 303; act: -130 ), - ( sym: 304; act: -130 ), - ( sym: 305; act: -130 ), - ( sym: 306; act: -130 ), - ( sym: 307; act: -130 ), - ( sym: 308; act: -130 ), - ( sym: 309; act: -130 ), - ( sym: 310; act: -130 ), - ( sym: 311; act: -130 ), - ( sym: 312; act: -130 ), - ( sym: 314; act: -130 ), - ( sym: 315; act: -130 ), - ( sym: 318; act: -130 ), - ( sym: 319; act: -130 ), -{ 153: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 154: } - ( sym: 318; act: 142 ), - ( sym: 319; act: 143 ), - ( sym: 259; act: -137 ), - ( sym: 260; act: -137 ), - ( sym: 261; act: -137 ), - ( sym: 262; act: -137 ), - ( sym: 263; act: -137 ), - ( sym: 264; act: -137 ), - ( sym: 265; act: -137 ), - ( sym: 267; act: -137 ), - ( sym: 286; act: -137 ), - ( sym: 296; act: -137 ), - ( sym: 300; act: -137 ), - ( sym: 301; act: -137 ), - ( sym: 302; act: -137 ), - ( sym: 303; act: -137 ), - ( sym: 304; act: -137 ), - ( sym: 305; act: -137 ), - ( sym: 306; act: -137 ), - ( sym: 307; act: -137 ), - ( sym: 308; act: -137 ), - ( sym: 309; act: -137 ), - ( sym: 310; act: -137 ), - ( sym: 311; act: -137 ), - ( sym: 312; act: -137 ), - ( sym: 313; act: -137 ), - ( sym: 314; act: -137 ), - ( sym: 315; act: -137 ), -{ 155: } - ( sym: 318; act: 142 ), - ( sym: 319; act: 143 ), - ( sym: 259; act: -136 ), - ( sym: 260; act: -136 ), - ( sym: 261; act: -136 ), - ( sym: 262; act: -136 ), - ( sym: 263; act: -136 ), - ( sym: 264; act: -136 ), - ( sym: 265; act: -136 ), - ( sym: 267; act: -136 ), - ( sym: 286; act: -136 ), - ( sym: 296; act: -136 ), - ( sym: 300; act: -136 ), - ( sym: 301; act: -136 ), - ( sym: 302; act: -136 ), - ( sym: 303; act: -136 ), - ( sym: 304; act: -136 ), - ( sym: 305; act: -136 ), - ( sym: 306; act: -136 ), - ( sym: 307; act: -136 ), - ( sym: 308; act: -136 ), - ( sym: 309; act: -136 ), - ( sym: 310; act: -136 ), - ( sym: 311; act: -136 ), - ( sym: 312; act: -136 ), - ( sym: 313; act: -136 ), - ( sym: 314; act: -136 ), - ( sym: 315; act: -136 ), -{ 156: } - ( sym: 318; act: 142 ), - ( sym: 319; act: 143 ), - ( sym: 259; act: -138 ), - ( sym: 260; act: -138 ), - ( sym: 261; act: -138 ), - ( sym: 262; act: -138 ), - ( sym: 263; act: -138 ), - ( sym: 264; act: -138 ), - ( sym: 265; act: -138 ), - ( sym: 267; act: -138 ), - ( sym: 286; act: -138 ), - ( sym: 296; act: -138 ), - ( sym: 300; act: -138 ), - ( sym: 301; act: -138 ), - ( sym: 302; act: -138 ), - ( sym: 303; act: -138 ), - ( sym: 304; act: -138 ), - ( sym: 305; act: -138 ), - ( sym: 306; act: -138 ), - ( sym: 307; act: -138 ), - ( sym: 308; act: -138 ), - ( sym: 309; act: -138 ), - ( sym: 310; act: -138 ), - ( sym: 311; act: -138 ), - ( sym: 312; act: -138 ), - ( sym: 313; act: -138 ), - ( sym: 314; act: -138 ), - ( sym: 315; act: -138 ), -{ 157: } - ( sym: 262; act: 118 ), - ( sym: 264; act: 119 ), - ( sym: 260; act: -87 ), - ( sym: 261; act: -87 ), - ( sym: 263; act: -87 ), - ( sym: 296; act: -87 ), -{ 158: } - ( sym: 261; act: 209 ), - ( sym: 263; act: -79 ), -{ 159: } - ( sym: 263; act: 210 ), -{ 160: } - ( sym: 262; act: 214 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 215 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 216 ), - ( sym: 261; act: -108 ), - ( sym: 263; act: -108 ), - ( sym: 264; act: -108 ), -{ 161: } -{ 162: } - ( sym: 263; act: 217 ), - ( sym: 261; act: -67 ), - ( sym: 262; act: -67 ), - ( sym: 264; act: -67 ), - ( sym: 271; act: -67 ), - ( sym: 281; act: -67 ), - ( sym: 282; act: -67 ), - ( sym: 283; act: -67 ), - ( sym: 284; act: -67 ), - ( sym: 308; act: -67 ), - ( sym: 313; act: -67 ), -{ 163: } -{ 164: } -{ 165: } - ( sym: 265; act: 218 ), - ( sym: 300; act: 188 ), - ( sym: 301; act: 189 ), - ( sym: 302; act: 190 ), - ( sym: 303; act: 191 ), - ( sym: 304; act: 192 ), - ( sym: 305; act: 193 ), - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), -{ 166: } -{ 167: } -{ 168: } - ( sym: 262; act: 118 ), - ( sym: 264; act: 119 ), - ( sym: 260; act: -72 ), - ( sym: 261; act: -72 ), - ( sym: 296; act: -72 ), -{ 169: } - ( sym: 271; act: 23 ), -{ 170: } - ( sym: 300; act: 188 ), - ( sym: 301; act: 189 ), - ( sym: 302; act: 190 ), - ( sym: 303; act: 191 ), - ( sym: 304; act: 192 ), - ( sym: 305; act: 193 ), - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 260; act: -91 ), - ( sym: 261; act: -91 ), - ( sym: 262; act: -91 ), - ( sym: 263; act: -91 ), - ( sym: 264; act: -91 ), - ( sym: 296; act: -91 ), -{ 171: } - ( sym: 300; act: 188 ), - ( sym: 301; act: 189 ), - ( sym: 302; act: 190 ), - ( sym: 303; act: 191 ), - ( sym: 304; act: 192 ), - ( sym: 305; act: 193 ), - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 260; act: -90 ), - ( sym: 261; act: -90 ), - ( sym: 262; act: -90 ), - ( sym: 263; act: -90 ), - ( sym: 264; act: -90 ), - ( sym: 296; act: -90 ), -{ 172: } - ( sym: 256; act: 80 ), - ( sym: 262; act: 81 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 82 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 87 ), -{ 173: } -{ 174: } -{ 175: } -{ 176: } - ( sym: 300; act: 188 ), - ( sym: 301; act: 189 ), - ( sym: 302; act: 190 ), - ( sym: 303; act: 191 ), - ( sym: 304; act: 192 ), - ( sym: 305; act: 193 ), - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 261; act: -150 ), - ( sym: 263; act: -150 ), - ( sym: 267; act: -150 ), -{ 177: } - ( sym: 287; act: 222 ), - ( sym: 262; act: -3 ), -{ 178: } - ( sym: 286; act: 223 ), -{ 179: } - ( sym: 262; act: 224 ), -{ 180: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 181: } -{ 182: } -{ 183: } - ( sym: 261; act: 226 ), - ( sym: 263; act: -156 ), - ( sym: 265; act: -156 ), -{ 184: } - ( sym: 263; act: 227 ), -{ 185: } - ( sym: 300; act: 188 ), - ( sym: 301; act: 189 ), - ( sym: 302; act: 190 ), - ( sym: 303; act: 191 ), - ( sym: 304; act: 192 ), - ( sym: 305; act: 193 ), - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 261; act: -158 ), - ( sym: 263; act: -158 ), - ( sym: 265; act: -158 ), -{ 186: } - ( sym: 265; act: 228 ), -{ 187: } -{ 188: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 189: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 190: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 191: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 192: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 193: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 194: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 195: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 196: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 197: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 198: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 199: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 200: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 201: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 202: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 203: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 204: } - ( sym: 313; act: 246 ), -{ 205: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 206: } - ( sym: 263; act: 248 ), -{ 207: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), - ( sym: 259; act: -129 ), - ( sym: 260; act: -129 ), - ( sym: 261; act: -129 ), - ( sym: 263; act: -129 ), - ( sym: 264; act: -129 ), - ( sym: 265; act: -129 ), - ( sym: 267; act: -129 ), - ( sym: 286; act: -129 ), - ( sym: 296; act: -129 ), - ( sym: 300; act: -129 ), - ( sym: 301; act: -129 ), - ( sym: 302; act: -129 ), - ( sym: 303; act: -129 ), - ( sym: 304; act: -129 ), - ( sym: 305; act: -129 ), - ( sym: 306; act: -129 ), - ( sym: 307; act: -129 ), - ( sym: 309; act: -129 ), - ( sym: 311; act: -129 ), - ( sym: 312; act: -129 ), - ( sym: 313; act: -129 ), - ( sym: 314; act: -129 ), - ( sym: 318; act: -129 ), - ( sym: 319; act: -129 ), -{ 208: } - ( sym: 263; act: 251 ), - ( sym: 318; act: 142 ), - ( sym: 319; act: 143 ), -{ 209: } - ( sym: 268; act: 20 ), - ( sym: 269; act: 21 ), - ( sym: 270; act: 22 ), - ( sym: 271; act: 23 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 281; act: 31 ), - ( sym: 298; act: 163 ), - ( sym: 321; act: 32 ), - ( sym: 263; act: -82 ), -{ 210: } -{ 211: } - ( sym: 313; act: 253 ), -{ 212: } - ( sym: 262; act: 255 ), - ( sym: 264; act: 256 ), - ( sym: 261; act: -78 ), - ( sym: 263; act: -78 ), -{ 213: } - ( sym: 262; act: 118 ), - ( sym: 264; act: 257 ), - ( sym: 261; act: -76 ), - ( sym: 263; act: -76 ), -{ 214: } - ( sym: 262; act: 214 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 215 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 260 ), - ( sym: 263; act: -108 ), - ( sym: 264; act: -108 ), -{ 215: } - ( sym: 262; act: 214 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 215 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 260 ), - ( sym: 261; act: -108 ), - ( sym: 263; act: -108 ), - ( sym: 264; act: -108 ), -{ 216: } - ( sym: 262; act: 214 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 215 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 260 ), - ( sym: 261; act: -108 ), - ( sym: 263; act: -108 ), - ( sym: 264; act: -108 ), -{ 217: } -{ 218: } -{ 219: } - ( sym: 263; act: 265 ), -{ 220: } -{ 221: } - ( sym: 262; act: 266 ), -{ 222: } -{ 223: } -{ 224: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 225: } -{ 226: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), - ( sym: 263; act: -157 ), - ( sym: 265; act: -157 ), -{ 227: } -{ 228: } -{ 229: } - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 259; act: -110 ), - ( sym: 260; act: -110 ), - ( sym: 261; act: -110 ), - ( sym: 262; act: -110 ), - ( sym: 263; act: -110 ), - ( sym: 264; act: -110 ), - ( sym: 265; act: -110 ), - ( sym: 267; act: -110 ), - ( sym: 286; act: -110 ), - ( sym: 296; act: -110 ), - ( sym: 300; act: -110 ), - ( sym: 301; act: -110 ), - ( sym: 302; act: -110 ), - ( sym: 303; act: -110 ), - ( sym: 304; act: -110 ), - ( sym: 305; act: -110 ), - ( sym: 318; act: -110 ), - ( sym: 319; act: -110 ), -{ 230: } - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 259; act: -111 ), - ( sym: 260; act: -111 ), - ( sym: 261; act: -111 ), - ( sym: 262; act: -111 ), - ( sym: 263; act: -111 ), - ( sym: 264; act: -111 ), - ( sym: 265; act: -111 ), - ( sym: 267; act: -111 ), - ( sym: 286; act: -111 ), - ( sym: 296; act: -111 ), - ( sym: 300; act: -111 ), - ( sym: 301; act: -111 ), - ( sym: 302; act: -111 ), - ( sym: 303; act: -111 ), - ( sym: 304; act: -111 ), - ( sym: 305; act: -111 ), - ( sym: 318; act: -111 ), - ( sym: 319; act: -111 ), -{ 231: } - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 259; act: -112 ), - ( sym: 260; act: -112 ), - ( sym: 261; act: -112 ), - ( sym: 262; act: -112 ), - ( sym: 263; act: -112 ), - ( sym: 264; act: -112 ), - ( sym: 265; act: -112 ), - ( sym: 267; act: -112 ), - ( sym: 286; act: -112 ), - ( sym: 296; act: -112 ), - ( sym: 300; act: -112 ), - ( sym: 301; act: -112 ), - ( sym: 302; act: -112 ), - ( sym: 303; act: -112 ), - ( sym: 304; act: -112 ), - ( sym: 305; act: -112 ), - ( sym: 318; act: -112 ), - ( sym: 319; act: -112 ), -{ 232: } - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 259; act: -114 ), - ( sym: 260; act: -114 ), - ( sym: 261; act: -114 ), - ( sym: 262; act: -114 ), - ( sym: 263; act: -114 ), - ( sym: 264; act: -114 ), - ( sym: 265; act: -114 ), - ( sym: 267; act: -114 ), - ( sym: 286; act: -114 ), - ( sym: 296; act: -114 ), - ( sym: 300; act: -114 ), - ( sym: 301; act: -114 ), - ( sym: 302; act: -114 ), - ( sym: 303; act: -114 ), - ( sym: 304; act: -114 ), - ( sym: 305; act: -114 ), - ( sym: 318; act: -114 ), - ( sym: 319; act: -114 ), -{ 233: } - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 259; act: -113 ), - ( sym: 260; act: -113 ), - ( sym: 261; act: -113 ), - ( sym: 262; act: -113 ), - ( sym: 263; act: -113 ), - ( sym: 264; act: -113 ), - ( sym: 265; act: -113 ), - ( sym: 267; act: -113 ), - ( sym: 286; act: -113 ), - ( sym: 296; act: -113 ), - ( sym: 300; act: -113 ), - ( sym: 301; act: -113 ), - ( sym: 302; act: -113 ), - ( sym: 303; act: -113 ), - ( sym: 304; act: -113 ), - ( sym: 305; act: -113 ), - ( sym: 318; act: -113 ), - ( sym: 319; act: -113 ), -{ 234: } - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 259; act: -115 ), - ( sym: 260; act: -115 ), - ( sym: 261; act: -115 ), - ( sym: 262; act: -115 ), - ( sym: 263; act: -115 ), - ( sym: 264; act: -115 ), - ( sym: 265; act: -115 ), - ( sym: 267; act: -115 ), - ( sym: 286; act: -115 ), - ( sym: 296; act: -115 ), - ( sym: 300; act: -115 ), - ( sym: 301; act: -115 ), - ( sym: 302; act: -115 ), - ( sym: 303; act: -115 ), - ( sym: 304; act: -115 ), - ( sym: 305; act: -115 ), - ( sym: 318; act: -115 ), - ( sym: 319; act: -115 ), -{ 235: } -{ 236: } - ( sym: 259; act: 269 ), - ( sym: 300; act: 188 ), - ( sym: 301; act: 189 ), - ( sym: 302; act: 190 ), - ( sym: 303; act: 191 ), - ( sym: 304; act: 192 ), - ( sym: 305; act: 193 ), - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), -{ 237: } - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 259; act: -120 ), - ( sym: 260; act: -120 ), - ( sym: 261; act: -120 ), - ( sym: 262; act: -120 ), - ( sym: 263; act: -120 ), - ( sym: 264; act: -120 ), - ( sym: 265; act: -120 ), - ( sym: 267; act: -120 ), - ( sym: 286; act: -120 ), - ( sym: 296; act: -120 ), - ( sym: 300; act: -120 ), - ( sym: 301; act: -120 ), - ( sym: 302; act: -120 ), - ( sym: 303; act: -120 ), - ( sym: 304; act: -120 ), - ( sym: 305; act: -120 ), - ( sym: 306; act: -120 ), - ( sym: 307; act: -120 ), - ( sym: 318; act: -120 ), - ( sym: 319; act: -120 ), -{ 238: } - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 259; act: -121 ), - ( sym: 260; act: -121 ), - ( sym: 261; act: -121 ), - ( sym: 262; act: -121 ), - ( sym: 263; act: -121 ), - ( sym: 264; act: -121 ), - ( sym: 265; act: -121 ), - ( sym: 267; act: -121 ), - ( sym: 286; act: -121 ), - ( sym: 296; act: -121 ), - ( sym: 300; act: -121 ), - ( sym: 301; act: -121 ), - ( sym: 302; act: -121 ), - ( sym: 303; act: -121 ), - ( sym: 304; act: -121 ), - ( sym: 305; act: -121 ), - ( sym: 306; act: -121 ), - ( sym: 307; act: -121 ), - ( sym: 308; act: -121 ), - ( sym: 318; act: -121 ), - ( sym: 319; act: -121 ), -{ 239: } - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 259; act: -116 ), - ( sym: 260; act: -116 ), - ( sym: 261; act: -116 ), - ( sym: 262; act: -116 ), - ( sym: 263; act: -116 ), - ( sym: 264; act: -116 ), - ( sym: 265; act: -116 ), - ( sym: 267; act: -116 ), - ( sym: 286; act: -116 ), - ( sym: 296; act: -116 ), - ( sym: 300; act: -116 ), - ( sym: 301; act: -116 ), - ( sym: 302; act: -116 ), - ( sym: 303; act: -116 ), - ( sym: 304; act: -116 ), - ( sym: 305; act: -116 ), - ( sym: 306; act: -116 ), - ( sym: 307; act: -116 ), - ( sym: 308; act: -116 ), - ( sym: 309; act: -116 ), - ( sym: 310; act: -116 ), - ( sym: 318; act: -116 ), - ( sym: 319; act: -116 ), -{ 240: } - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 259; act: -117 ), - ( sym: 260; act: -117 ), - ( sym: 261; act: -117 ), - ( sym: 262; act: -117 ), - ( sym: 263; act: -117 ), - ( sym: 264; act: -117 ), - ( sym: 265; act: -117 ), - ( sym: 267; act: -117 ), - ( sym: 286; act: -117 ), - ( sym: 296; act: -117 ), - ( sym: 300; act: -117 ), - ( sym: 301; act: -117 ), - ( sym: 302; act: -117 ), - ( sym: 303; act: -117 ), + ( sym: 269; act: 194 ), ( sym: 304; act: -117 ), - ( sym: 305; act: -117 ), ( sym: 306; act: -117 ), ( sym: 307; act: -117 ), ( sym: 308; act: -117 ), ( sym: 309; act: -117 ), ( sym: 310; act: -117 ), + ( sym: 311; act: -117 ), + ( sym: 312; act: -117 ), + ( sym: 313; act: -117 ), + ( sym: 314; act: -117 ), + ( sym: 315; act: -117 ), + ( sym: 316; act: -117 ), + ( sym: 317; act: -117 ), ( sym: 318; act: -117 ), ( sym: 319; act: -117 ), -{ 241: } - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 259; act: -124 ), - ( sym: 260; act: -124 ), - ( sym: 261; act: -124 ), - ( sym: 262; act: -124 ), - ( sym: 263; act: -124 ), - ( sym: 264; act: -124 ), - ( sym: 265; act: -124 ), - ( sym: 267; act: -124 ), - ( sym: 286; act: -124 ), - ( sym: 296; act: -124 ), - ( sym: 300; act: -124 ), - ( sym: 301; act: -124 ), - ( sym: 302; act: -124 ), - ( sym: 303; act: -124 ), - ( sym: 304; act: -124 ), - ( sym: 305; act: -124 ), - ( sym: 306; act: -124 ), - ( sym: 307; act: -124 ), - ( sym: 308; act: -124 ), - ( sym: 309; act: -124 ), - ( sym: 310; act: -124 ), - ( sym: 311; act: -124 ), - ( sym: 312; act: -124 ), - ( sym: 318; act: -124 ), - ( sym: 319; act: -124 ), -{ 242: } - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 259; act: -123 ), - ( sym: 260; act: -123 ), - ( sym: 261; act: -123 ), - ( sym: 262; act: -123 ), - ( sym: 263; act: -123 ), - ( sym: 264; act: -123 ), - ( sym: 265; act: -123 ), - ( sym: 267; act: -123 ), - ( sym: 286; act: -123 ), - ( sym: 296; act: -123 ), - ( sym: 300; act: -123 ), - ( sym: 301; act: -123 ), - ( sym: 302; act: -123 ), - ( sym: 303; act: -123 ), - ( sym: 304; act: -123 ), - ( sym: 305; act: -123 ), - ( sym: 306; act: -123 ), - ( sym: 307; act: -123 ), - ( sym: 308; act: -123 ), - ( sym: 309; act: -123 ), - ( sym: 310; act: -123 ), - ( sym: 311; act: -123 ), - ( sym: 312; act: -123 ), - ( sym: 318; act: -123 ), - ( sym: 319; act: -123 ), -{ 243: } - ( sym: 315; act: 203 ), - ( sym: 259; act: -118 ), - ( sym: 260; act: -118 ), - ( sym: 261; act: -118 ), - ( sym: 262; act: -118 ), - ( sym: 263; act: -118 ), - ( sym: 264; act: -118 ), - ( sym: 265; act: -118 ), - ( sym: 267; act: -118 ), - ( sym: 286; act: -118 ), - ( sym: 296; act: -118 ), - ( sym: 300; act: -118 ), - ( sym: 301; act: -118 ), - ( sym: 302; act: -118 ), - ( sym: 303; act: -118 ), - ( sym: 304; act: -118 ), - ( sym: 305; act: -118 ), - ( sym: 306; act: -118 ), - ( sym: 307; act: -118 ), - ( sym: 308; act: -118 ), - ( sym: 309; act: -118 ), - ( sym: 310; act: -118 ), - ( sym: 311; act: -118 ), - ( sym: 312; act: -118 ), - ( sym: 313; act: -118 ), - ( sym: 314; act: -118 ), - ( sym: 318; act: -118 ), - ( sym: 319; act: -118 ), -{ 244: } - ( sym: 315; act: 203 ), - ( sym: 259; act: -119 ), - ( sym: 260; act: -119 ), - ( sym: 261; act: -119 ), - ( sym: 262; act: -119 ), - ( sym: 263; act: -119 ), - ( sym: 264; act: -119 ), - ( sym: 265; act: -119 ), - ( sym: 267; act: -119 ), - ( sym: 286; act: -119 ), - ( sym: 296; act: -119 ), - ( sym: 300; act: -119 ), - ( sym: 301; act: -119 ), - ( sym: 302; act: -119 ), - ( sym: 303; act: -119 ), - ( sym: 304; act: -119 ), - ( sym: 305; act: -119 ), - ( sym: 306; act: -119 ), - ( sym: 307; act: -119 ), - ( sym: 308; act: -119 ), - ( sym: 309; act: -119 ), - ( sym: 310; act: -119 ), - ( sym: 311; act: -119 ), - ( sym: 312; act: -119 ), - ( sym: 313; act: -119 ), - ( sym: 314; act: -119 ), - ( sym: 318; act: -119 ), - ( sym: 319; act: -119 ), -{ 245: } - ( sym: 315; act: 203 ), - ( sym: 259; act: -122 ), - ( sym: 260; act: -122 ), - ( sym: 261; act: -122 ), - ( sym: 262; act: -122 ), - ( sym: 263; act: -122 ), - ( sym: 264; act: -122 ), - ( sym: 265; act: -122 ), - ( sym: 267; act: -122 ), - ( sym: 286; act: -122 ), - ( sym: 296; act: -122 ), - ( sym: 300; act: -122 ), - ( sym: 301; act: -122 ), - ( sym: 302; act: -122 ), - ( sym: 303; act: -122 ), - ( sym: 304; act: -122 ), - ( sym: 305; act: -122 ), - ( sym: 306; act: -122 ), - ( sym: 307; act: -122 ), - ( sym: 308; act: -122 ), - ( sym: 309; act: -122 ), - ( sym: 310; act: -122 ), - ( sym: 311; act: -122 ), - ( sym: 312; act: -122 ), - ( sym: 313; act: -122 ), - ( sym: 314; act: -122 ), - ( sym: 318; act: -122 ), - ( sym: 319; act: -122 ), -{ 246: } - ( sym: 263; act: 270 ), -{ 247: } - ( sym: 318; act: 142 ), - ( sym: 319; act: 143 ), - ( sym: 259; act: -140 ), - ( sym: 260; act: -140 ), - ( sym: 261; act: -140 ), - ( sym: 262; act: -140 ), - ( sym: 263; act: -140 ), - ( sym: 264; act: -140 ), - ( sym: 265; act: -140 ), - ( sym: 267; act: -140 ), - ( sym: 286; act: -140 ), - ( sym: 296; act: -140 ), - ( sym: 300; act: -140 ), - ( sym: 301; act: -140 ), - ( sym: 302; act: -140 ), - ( sym: 303; act: -140 ), + ( sym: 320; act: -117 ), + ( sym: 321; act: -117 ), +{ 151: } + ( sym: 269; act: -78 ), + ( sym: 288; act: -78 ), + ( sym: 289; act: -78 ), + ( sym: 290; act: -78 ), + ( sym: 319; act: -78 ), ( sym: 304; act: -140 ), - ( sym: 305; act: -140 ), ( sym: 306; act: -140 ), ( sym: 307; act: -140 ), ( sym: 308; act: -140 ), @@ -5050,42 +4072,1408 @@ yya : array [1..yynacts] of YYARec = ( ( sym: 313; act: -140 ), ( sym: 314; act: -140 ), ( sym: 315; act: -140 ), + ( sym: 316; act: -140 ), + ( sym: 317; act: -140 ), + ( sym: 318; act: -140 ), + ( sym: 320; act: -140 ), + ( sym: 321; act: -140 ), + ( sym: 324; act: -140 ), + ( sym: 325; act: -140 ), +{ 152: } + ( sym: 269; act: 196 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 319; act: 197 ), +{ 153: } + ( sym: 304; act: 198 ), + ( sym: 306; act: 199 ), + ( sym: 307; act: 200 ), + ( sym: 308; act: 201 ), + ( sym: 309; act: 202 ), + ( sym: 310; act: 203 ), + ( sym: 311; act: 204 ), + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), +{ 154: } + ( sym: 268; act: 147 ), + ( sym: 269; act: 215 ), + ( sym: 270; act: 148 ), + ( sym: 288; act: -79 ), + ( sym: 289; act: -79 ), + ( sym: 290; act: -79 ), + ( sym: 319; act: -79 ), + ( sym: 304; act: -139 ), + ( sym: 306; act: -139 ), + ( sym: 307; act: -139 ), + ( sym: 308; act: -139 ), + ( sym: 309; act: -139 ), + ( sym: 310; act: -139 ), + ( sym: 311; act: -139 ), + ( sym: 312; act: -139 ), + ( sym: 313; act: -139 ), + ( sym: 314; act: -139 ), + ( sym: 315; act: -139 ), + ( sym: 316; act: -139 ), + ( sym: 317; act: -139 ), + ( sym: 318; act: -139 ), + ( sym: 320; act: -139 ), + ( sym: 321; act: -139 ), + ( sym: 324; act: -139 ), + ( sym: 325; act: -139 ), +{ 155: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 156: } + ( sym: 324; act: 144 ), + ( sym: 325; act: 145 ), + ( sym: 265; act: -146 ), + ( sym: 266; act: -146 ), + ( sym: 267; act: -146 ), + ( sym: 268; act: -146 ), + ( sym: 269; act: -146 ), + ( sym: 270; act: -146 ), + ( sym: 271; act: -146 ), + ( sym: 272; act: -146 ), + ( sym: 273; act: -146 ), + ( sym: 291; act: -146 ), + ( sym: 301; act: -146 ), + ( sym: 304; act: -146 ), + ( sym: 306; act: -146 ), + ( sym: 307; act: -146 ), + ( sym: 308; act: -146 ), + ( sym: 309; act: -146 ), + ( sym: 310; act: -146 ), + ( sym: 311; act: -146 ), + ( sym: 312; act: -146 ), + ( sym: 313; act: -146 ), + ( sym: 314; act: -146 ), + ( sym: 315; act: -146 ), + ( sym: 316; act: -146 ), + ( sym: 317; act: -146 ), + ( sym: 318; act: -146 ), + ( sym: 319; act: -146 ), + ( sym: 320; act: -146 ), + ( sym: 321; act: -146 ), +{ 157: } + ( sym: 324; act: 144 ), + ( sym: 325; act: 145 ), + ( sym: 265; act: -145 ), + ( sym: 266; act: -145 ), + ( sym: 267; act: -145 ), + ( sym: 268; act: -145 ), + ( sym: 269; act: -145 ), + ( sym: 270; act: -145 ), + ( sym: 271; act: -145 ), + ( sym: 272; act: -145 ), + ( sym: 273; act: -145 ), + ( sym: 291; act: -145 ), + ( sym: 301; act: -145 ), + ( sym: 304; act: -145 ), + ( sym: 306; act: -145 ), + ( sym: 307; act: -145 ), + ( sym: 308; act: -145 ), + ( sym: 309; act: -145 ), + ( sym: 310; act: -145 ), + ( sym: 311; act: -145 ), + ( sym: 312; act: -145 ), + ( sym: 313; act: -145 ), + ( sym: 314; act: -145 ), + ( sym: 315; act: -145 ), + ( sym: 316; act: -145 ), + ( sym: 317; act: -145 ), + ( sym: 318; act: -145 ), + ( sym: 319; act: -145 ), + ( sym: 320; act: -145 ), + ( sym: 321; act: -145 ), +{ 158: } + ( sym: 324; act: 144 ), + ( sym: 325; act: 145 ), + ( sym: 265; act: -147 ), + ( sym: 266; act: -147 ), + ( sym: 267; act: -147 ), + ( sym: 268; act: -147 ), + ( sym: 269; act: -147 ), + ( sym: 270; act: -147 ), + ( sym: 271; act: -147 ), + ( sym: 272; act: -147 ), + ( sym: 273; act: -147 ), + ( sym: 291; act: -147 ), + ( sym: 301; act: -147 ), + ( sym: 304; act: -147 ), + ( sym: 306; act: -147 ), + ( sym: 307; act: -147 ), + ( sym: 308; act: -147 ), + ( sym: 309; act: -147 ), + ( sym: 310; act: -147 ), + ( sym: 311; act: -147 ), + ( sym: 312; act: -147 ), + ( sym: 313; act: -147 ), + ( sym: 314; act: -147 ), + ( sym: 315; act: -147 ), + ( sym: 316; act: -147 ), + ( sym: 317; act: -147 ), + ( sym: 318; act: -147 ), + ( sym: 319; act: -147 ), + ( sym: 320; act: -147 ), + ( sym: 321; act: -147 ), +{ 159: } + ( sym: 268; act: 118 ), + ( sym: 270; act: 119 ), + ( sym: 266; act: -95 ), + ( sym: 267; act: -95 ), + ( sym: 269; act: -95 ), + ( sym: 272; act: -95 ), + ( sym: 301; act: -95 ), +{ 160: } + ( sym: 267; act: 217 ), + ( sym: 269; act: -87 ), +{ 161: } + ( sym: 269; act: 218 ), +{ 162: } + ( sym: 268; act: 222 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 223 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 224 ), + ( sym: 267; act: -116 ), + ( sym: 269; act: -116 ), + ( sym: 270; act: -116 ), +{ 163: } +{ 164: } + ( sym: 269; act: 225 ), + ( sym: 267; act: -75 ), + ( sym: 268; act: -75 ), + ( sym: 270; act: -75 ), + ( sym: 277; act: -75 ), + ( sym: 287; act: -75 ), + ( sym: 288; act: -75 ), + ( sym: 289; act: -75 ), + ( sym: 290; act: -75 ), + ( sym: 314; act: -75 ), + ( sym: 319; act: -75 ), +{ 165: } +{ 166: } +{ 167: } + ( sym: 271; act: 226 ), + ( sym: 304; act: 198 ), + ( sym: 306; act: 199 ), + ( sym: 307; act: 200 ), + ( sym: 308; act: 201 ), + ( sym: 309; act: 202 ), + ( sym: 310; act: 203 ), + ( sym: 311; act: 204 ), + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), +{ 168: } +{ 169: } +{ 170: } + ( sym: 268; act: 118 ), + ( sym: 270; act: 119 ), + ( sym: 266; act: -80 ), + ( sym: 267; act: -80 ), + ( sym: 272; act: -80 ), + ( sym: 301; act: -80 ), +{ 171: } + ( sym: 273; act: 227 ), +{ 172: } + ( sym: 266; act: 228 ), + ( sym: 304; act: 198 ), + ( sym: 306; act: 199 ), + ( sym: 307; act: 200 ), + ( sym: 308; act: 201 ), + ( sym: 309; act: 202 ), + ( sym: 310; act: 203 ), + ( sym: 311; act: 204 ), + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), +{ 173: } + ( sym: 257; act: 174 ), + ( sym: 266; act: 175 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), + ( sym: 273; act: -24 ), +{ 174: } + ( sym: 268; act: 230 ), +{ 175: } +{ 176: } + ( sym: 277; act: 23 ), +{ 177: } + ( sym: 304; act: 198 ), + ( sym: 306; act: 199 ), + ( sym: 307; act: 200 ), + ( sym: 308; act: 201 ), + ( sym: 309; act: 202 ), + ( sym: 310; act: 203 ), + ( sym: 311; act: 204 ), + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 266; act: -99 ), + ( sym: 267; act: -99 ), + ( sym: 268; act: -99 ), + ( sym: 269; act: -99 ), + ( sym: 270; act: -99 ), + ( sym: 272; act: -99 ), + ( sym: 301; act: -99 ), +{ 178: } + ( sym: 304; act: 198 ), + ( sym: 306; act: 199 ), + ( sym: 307; act: 200 ), + ( sym: 308; act: 201 ), + ( sym: 309; act: 202 ), + ( sym: 310; act: 203 ), + ( sym: 311; act: 204 ), + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 266; act: -98 ), + ( sym: 267; act: -98 ), + ( sym: 268; act: -98 ), + ( sym: 269; act: -98 ), + ( sym: 270; act: -98 ), + ( sym: 272; act: -98 ), + ( sym: 301; act: -98 ), +{ 179: } + ( sym: 256; act: 80 ), + ( sym: 268; act: 81 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 82 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 87 ), +{ 180: } +{ 181: } +{ 182: } +{ 183: } + ( sym: 304; act: 198 ), + ( sym: 306; act: 199 ), + ( sym: 307; act: 200 ), + ( sym: 308; act: 201 ), + ( sym: 309; act: 202 ), + ( sym: 310; act: 203 ), + ( sym: 311; act: 204 ), + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 267; act: -159 ), + ( sym: 269; act: -159 ), + ( sym: 273; act: -159 ), +{ 184: } + ( sym: 292; act: 234 ), + ( sym: 268; act: -3 ), +{ 185: } + ( sym: 291; act: 235 ), +{ 186: } + ( sym: 268; act: 236 ), +{ 187: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 188: } +{ 189: } +{ 190: } + ( sym: 267; act: 238 ), + ( sym: 269; act: -165 ), + ( sym: 271; act: -165 ), +{ 191: } + ( sym: 269; act: 239 ), +{ 192: } + ( sym: 304; act: 198 ), + ( sym: 306; act: 199 ), + ( sym: 307; act: 200 ), + ( sym: 308; act: 201 ), + ( sym: 309; act: 202 ), + ( sym: 310; act: 203 ), + ( sym: 311; act: 204 ), + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 267; act: -167 ), + ( sym: 269; act: -167 ), + ( sym: 271; act: -167 ), +{ 193: } + ( sym: 271; act: 240 ), +{ 194: } +{ 195: } + ( sym: 319; act: 241 ), +{ 196: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 197: } + ( sym: 269; act: 243 ), +{ 198: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 199: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 200: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 201: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 202: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 203: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 204: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 205: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 206: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 207: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 208: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 209: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 210: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 211: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 212: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 213: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 214: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 215: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), + ( sym: 265; act: -138 ), + ( sym: 266; act: -138 ), + ( sym: 267; act: -138 ), + ( sym: 269; act: -138 ), + ( sym: 270; act: -138 ), + ( sym: 271; act: -138 ), + ( sym: 272; act: -138 ), + ( sym: 273; act: -138 ), + ( sym: 291; act: -138 ), + ( sym: 301; act: -138 ), + ( sym: 304; act: -138 ), + ( sym: 306; act: -138 ), + ( sym: 307; act: -138 ), + ( sym: 308; act: -138 ), + ( sym: 309; act: -138 ), + ( sym: 310; act: -138 ), + ( sym: 311; act: -138 ), + ( sym: 312; act: -138 ), + ( sym: 313; act: -138 ), + ( sym: 315; act: -138 ), + ( sym: 317; act: -138 ), + ( sym: 318; act: -138 ), + ( sym: 319; act: -138 ), + ( sym: 320; act: -138 ), + ( sym: 324; act: -138 ), + ( sym: 325; act: -138 ), +{ 216: } + ( sym: 269; act: 264 ), + ( sym: 324; act: 144 ), + ( sym: 325; act: 145 ), +{ 217: } + ( sym: 274; act: 20 ), + ( sym: 275; act: 21 ), + ( sym: 276; act: 22 ), + ( sym: 277; act: 23 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 287; act: 31 ), + ( sym: 303; act: 165 ), + ( sym: 327; act: 32 ), + ( sym: 269; act: -90 ), +{ 218: } +{ 219: } + ( sym: 319; act: 266 ), +{ 220: } + ( sym: 268; act: 268 ), + ( sym: 270; act: 269 ), + ( sym: 267; act: -86 ), + ( sym: 269; act: -86 ), +{ 221: } + ( sym: 268; act: 118 ), + ( sym: 270; act: 270 ), + ( sym: 267; act: -84 ), + ( sym: 269; act: -84 ), +{ 222: } + ( sym: 268; act: 222 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 223 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 273 ), + ( sym: 269; act: -116 ), + ( sym: 270; act: -116 ), +{ 223: } + ( sym: 268; act: 222 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 223 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 273 ), + ( sym: 267; act: -116 ), + ( sym: 269; act: -116 ), + ( sym: 270; act: -116 ), +{ 224: } + ( sym: 268; act: 222 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 223 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 273 ), + ( sym: 267; act: -116 ), + ( sym: 269; act: -116 ), + ( sym: 270; act: -116 ), +{ 225: } +{ 226: } +{ 227: } +{ 228: } +{ 229: } +{ 230: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 231: } + ( sym: 269; act: 279 ), +{ 232: } +{ 233: } + ( sym: 268; act: 280 ), +{ 234: } +{ 235: } +{ 236: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 237: } +{ 238: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), + ( sym: 269; act: -166 ), + ( sym: 271; act: -166 ), +{ 239: } +{ 240: } +{ 241: } + ( sym: 269; act: 283 ), +{ 242: } + ( sym: 324; act: 144 ), + ( sym: 325; act: 145 ), + ( sym: 265; act: -149 ), + ( sym: 266; act: -149 ), + ( sym: 267; act: -149 ), + ( sym: 268; act: -149 ), + ( sym: 269; act: -149 ), + ( sym: 270; act: -149 ), + ( sym: 271; act: -149 ), + ( sym: 272; act: -149 ), + ( sym: 273; act: -149 ), + ( sym: 291; act: -149 ), + ( sym: 301; act: -149 ), + ( sym: 304; act: -149 ), + ( sym: 306; act: -149 ), + ( sym: 307; act: -149 ), + ( sym: 308; act: -149 ), + ( sym: 309; act: -149 ), + ( sym: 310; act: -149 ), + ( sym: 311; act: -149 ), + ( sym: 312; act: -149 ), + ( sym: 313; act: -149 ), + ( sym: 314; act: -149 ), + ( sym: 315; act: -149 ), + ( sym: 316; act: -149 ), + ( sym: 317; act: -149 ), + ( sym: 318; act: -149 ), + ( sym: 319; act: -149 ), + ( sym: 320; act: -149 ), + ( sym: 321; act: -149 ), +{ 243: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), +{ 244: } + ( sym: 304; act: 198 ), + ( sym: 306; act: 199 ), + ( sym: 307; act: 200 ), + ( sym: 308; act: 201 ), + ( sym: 309; act: 202 ), + ( sym: 310; act: 203 ), + ( sym: 311; act: 204 ), + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -118 ), + ( sym: 266; act: -118 ), + ( sym: 267; act: -118 ), + ( sym: 268; act: -118 ), + ( sym: 269; act: -118 ), + ( sym: 270; act: -118 ), + ( sym: 271; act: -118 ), + ( sym: 272; act: -118 ), + ( sym: 273; act: -118 ), + ( sym: 291; act: -118 ), + ( sym: 301; act: -118 ), + ( sym: 324; act: -118 ), + ( sym: 325; act: -118 ), +{ 245: } + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -119 ), + ( sym: 266; act: -119 ), + ( sym: 267; act: -119 ), + ( sym: 268; act: -119 ), + ( sym: 269; act: -119 ), + ( sym: 270; act: -119 ), + ( sym: 271; act: -119 ), + ( sym: 272; act: -119 ), + ( sym: 273; act: -119 ), + ( sym: 291; act: -119 ), + ( sym: 301; act: -119 ), + ( sym: 304; act: -119 ), + ( sym: 306; act: -119 ), + ( sym: 307; act: -119 ), + ( sym: 308; act: -119 ), + ( sym: 309; act: -119 ), + ( sym: 310; act: -119 ), + ( sym: 311; act: -119 ), + ( sym: 324; act: -119 ), + ( sym: 325; act: -119 ), +{ 246: } + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -120 ), + ( sym: 266; act: -120 ), + ( sym: 267; act: -120 ), + ( sym: 268; act: -120 ), + ( sym: 269; act: -120 ), + ( sym: 270; act: -120 ), + ( sym: 271; act: -120 ), + ( sym: 272; act: -120 ), + ( sym: 273; act: -120 ), + ( sym: 291; act: -120 ), + ( sym: 301; act: -120 ), + ( sym: 304; act: -120 ), + ( sym: 306; act: -120 ), + ( sym: 307; act: -120 ), + ( sym: 308; act: -120 ), + ( sym: 309; act: -120 ), + ( sym: 310; act: -120 ), + ( sym: 311; act: -120 ), + ( sym: 324; act: -120 ), + ( sym: 325; act: -120 ), +{ 247: } + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -121 ), + ( sym: 266; act: -121 ), + ( sym: 267; act: -121 ), + ( sym: 268; act: -121 ), + ( sym: 269; act: -121 ), + ( sym: 270; act: -121 ), + ( sym: 271; act: -121 ), + ( sym: 272; act: -121 ), + ( sym: 273; act: -121 ), + ( sym: 291; act: -121 ), + ( sym: 301; act: -121 ), + ( sym: 304; act: -121 ), + ( sym: 306; act: -121 ), + ( sym: 307; act: -121 ), + ( sym: 308; act: -121 ), + ( sym: 309; act: -121 ), + ( sym: 310; act: -121 ), + ( sym: 311; act: -121 ), + ( sym: 324; act: -121 ), + ( sym: 325; act: -121 ), { 248: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -123 ), + ( sym: 266; act: -123 ), + ( sym: 267; act: -123 ), + ( sym: 268; act: -123 ), + ( sym: 269; act: -123 ), + ( sym: 270; act: -123 ), + ( sym: 271; act: -123 ), + ( sym: 272; act: -123 ), + ( sym: 273; act: -123 ), + ( sym: 291; act: -123 ), + ( sym: 301; act: -123 ), + ( sym: 304; act: -123 ), + ( sym: 306; act: -123 ), + ( sym: 307; act: -123 ), + ( sym: 308; act: -123 ), + ( sym: 309; act: -123 ), + ( sym: 310; act: -123 ), + ( sym: 311; act: -123 ), + ( sym: 324; act: -123 ), + ( sym: 325; act: -123 ), { 249: } + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -122 ), + ( sym: 266; act: -122 ), + ( sym: 267; act: -122 ), + ( sym: 268; act: -122 ), + ( sym: 269; act: -122 ), + ( sym: 270; act: -122 ), + ( sym: 271; act: -122 ), + ( sym: 272; act: -122 ), + ( sym: 273; act: -122 ), + ( sym: 291; act: -122 ), + ( sym: 301; act: -122 ), + ( sym: 304; act: -122 ), + ( sym: 306; act: -122 ), + ( sym: 307; act: -122 ), + ( sym: 308; act: -122 ), + ( sym: 309; act: -122 ), + ( sym: 310; act: -122 ), + ( sym: 311; act: -122 ), + ( sym: 324; act: -122 ), + ( sym: 325; act: -122 ), { 250: } - ( sym: 318; act: 142 ), - ( sym: 319; act: 143 ), - ( sym: 259; act: -128 ), - ( sym: 260; act: -128 ), - ( sym: 261; act: -128 ), - ( sym: 262; act: -128 ), - ( sym: 263; act: -128 ), - ( sym: 264; act: -128 ), + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -124 ), + ( sym: 266; act: -124 ), + ( sym: 267; act: -124 ), + ( sym: 268; act: -124 ), + ( sym: 269; act: -124 ), + ( sym: 270; act: -124 ), + ( sym: 271; act: -124 ), + ( sym: 272; act: -124 ), + ( sym: 273; act: -124 ), + ( sym: 291; act: -124 ), + ( sym: 301; act: -124 ), + ( sym: 304; act: -124 ), + ( sym: 306; act: -124 ), + ( sym: 307; act: -124 ), + ( sym: 308; act: -124 ), + ( sym: 309; act: -124 ), + ( sym: 310; act: -124 ), + ( sym: 311; act: -124 ), + ( sym: 324; act: -124 ), + ( sym: 325; act: -124 ), +{ 251: } +{ 252: } + ( sym: 265; act: 285 ), + ( sym: 304; act: 198 ), + ( sym: 306; act: 199 ), + ( sym: 307; act: 200 ), + ( sym: 308; act: 201 ), + ( sym: 309; act: 202 ), + ( sym: 310; act: 203 ), + ( sym: 311; act: 204 ), + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), +{ 253: } + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -129 ), + ( sym: 266; act: -129 ), + ( sym: 267; act: -129 ), + ( sym: 268; act: -129 ), + ( sym: 269; act: -129 ), + ( sym: 270; act: -129 ), + ( sym: 271; act: -129 ), + ( sym: 272; act: -129 ), + ( sym: 273; act: -129 ), + ( sym: 291; act: -129 ), + ( sym: 301; act: -129 ), + ( sym: 304; act: -129 ), + ( sym: 306; act: -129 ), + ( sym: 307; act: -129 ), + ( sym: 308; act: -129 ), + ( sym: 309; act: -129 ), + ( sym: 310; act: -129 ), + ( sym: 311; act: -129 ), + ( sym: 312; act: -129 ), + ( sym: 313; act: -129 ), + ( sym: 324; act: -129 ), + ( sym: 325; act: -129 ), +{ 254: } + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -130 ), + ( sym: 266; act: -130 ), + ( sym: 267; act: -130 ), + ( sym: 268; act: -130 ), + ( sym: 269; act: -130 ), + ( sym: 270; act: -130 ), + ( sym: 271; act: -130 ), + ( sym: 272; act: -130 ), + ( sym: 273; act: -130 ), + ( sym: 291; act: -130 ), + ( sym: 301; act: -130 ), + ( sym: 304; act: -130 ), + ( sym: 306; act: -130 ), + ( sym: 307; act: -130 ), + ( sym: 308; act: -130 ), + ( sym: 309; act: -130 ), + ( sym: 310; act: -130 ), + ( sym: 311; act: -130 ), + ( sym: 312; act: -130 ), + ( sym: 313; act: -130 ), + ( sym: 314; act: -130 ), + ( sym: 324; act: -130 ), + ( sym: 325; act: -130 ), +{ 255: } + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -125 ), + ( sym: 266; act: -125 ), + ( sym: 267; act: -125 ), + ( sym: 268; act: -125 ), + ( sym: 269; act: -125 ), + ( sym: 270; act: -125 ), + ( sym: 271; act: -125 ), + ( sym: 272; act: -125 ), + ( sym: 273; act: -125 ), + ( sym: 291; act: -125 ), + ( sym: 301; act: -125 ), + ( sym: 304; act: -125 ), + ( sym: 306; act: -125 ), + ( sym: 307; act: -125 ), + ( sym: 308; act: -125 ), + ( sym: 309; act: -125 ), + ( sym: 310; act: -125 ), + ( sym: 311; act: -125 ), + ( sym: 312; act: -125 ), + ( sym: 313; act: -125 ), + ( sym: 314; act: -125 ), + ( sym: 315; act: -125 ), + ( sym: 316; act: -125 ), + ( sym: 324; act: -125 ), + ( sym: 325; act: -125 ), +{ 256: } + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -126 ), + ( sym: 266; act: -126 ), + ( sym: 267; act: -126 ), + ( sym: 268; act: -126 ), + ( sym: 269; act: -126 ), + ( sym: 270; act: -126 ), + ( sym: 271; act: -126 ), + ( sym: 272; act: -126 ), + ( sym: 273; act: -126 ), + ( sym: 291; act: -126 ), + ( sym: 301; act: -126 ), + ( sym: 304; act: -126 ), + ( sym: 306; act: -126 ), + ( sym: 307; act: -126 ), + ( sym: 308; act: -126 ), + ( sym: 309; act: -126 ), + ( sym: 310; act: -126 ), + ( sym: 311; act: -126 ), + ( sym: 312; act: -126 ), + ( sym: 313; act: -126 ), + ( sym: 314; act: -126 ), + ( sym: 315; act: -126 ), + ( sym: 316; act: -126 ), + ( sym: 324; act: -126 ), + ( sym: 325; act: -126 ), +{ 257: } + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -133 ), + ( sym: 266; act: -133 ), + ( sym: 267; act: -133 ), + ( sym: 268; act: -133 ), + ( sym: 269; act: -133 ), + ( sym: 270; act: -133 ), + ( sym: 271; act: -133 ), + ( sym: 272; act: -133 ), + ( sym: 273; act: -133 ), + ( sym: 291; act: -133 ), + ( sym: 301; act: -133 ), + ( sym: 304; act: -133 ), + ( sym: 306; act: -133 ), + ( sym: 307; act: -133 ), + ( sym: 308; act: -133 ), + ( sym: 309; act: -133 ), + ( sym: 310; act: -133 ), + ( sym: 311; act: -133 ), + ( sym: 312; act: -133 ), + ( sym: 313; act: -133 ), + ( sym: 314; act: -133 ), + ( sym: 315; act: -133 ), + ( sym: 316; act: -133 ), + ( sym: 317; act: -133 ), + ( sym: 318; act: -133 ), + ( sym: 324; act: -133 ), + ( sym: 325; act: -133 ), +{ 258: } + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -132 ), + ( sym: 266; act: -132 ), + ( sym: 267; act: -132 ), + ( sym: 268; act: -132 ), + ( sym: 269; act: -132 ), + ( sym: 270; act: -132 ), + ( sym: 271; act: -132 ), + ( sym: 272; act: -132 ), + ( sym: 273; act: -132 ), + ( sym: 291; act: -132 ), + ( sym: 301; act: -132 ), + ( sym: 304; act: -132 ), + ( sym: 306; act: -132 ), + ( sym: 307; act: -132 ), + ( sym: 308; act: -132 ), + ( sym: 309; act: -132 ), + ( sym: 310; act: -132 ), + ( sym: 311; act: -132 ), + ( sym: 312; act: -132 ), + ( sym: 313; act: -132 ), + ( sym: 314; act: -132 ), + ( sym: 315; act: -132 ), + ( sym: 316; act: -132 ), + ( sym: 317; act: -132 ), + ( sym: 318; act: -132 ), + ( sym: 324; act: -132 ), + ( sym: 325; act: -132 ), +{ 259: } + ( sym: 321; act: 214 ), + ( sym: 265; act: -127 ), + ( sym: 266; act: -127 ), + ( sym: 267; act: -127 ), + ( sym: 268; act: -127 ), + ( sym: 269; act: -127 ), + ( sym: 270; act: -127 ), + ( sym: 271; act: -127 ), + ( sym: 272; act: -127 ), + ( sym: 273; act: -127 ), + ( sym: 291; act: -127 ), + ( sym: 301; act: -127 ), + ( sym: 304; act: -127 ), + ( sym: 306; act: -127 ), + ( sym: 307; act: -127 ), + ( sym: 308; act: -127 ), + ( sym: 309; act: -127 ), + ( sym: 310; act: -127 ), + ( sym: 311; act: -127 ), + ( sym: 312; act: -127 ), + ( sym: 313; act: -127 ), + ( sym: 314; act: -127 ), + ( sym: 315; act: -127 ), + ( sym: 316; act: -127 ), + ( sym: 317; act: -127 ), + ( sym: 318; act: -127 ), + ( sym: 319; act: -127 ), + ( sym: 320; act: -127 ), + ( sym: 324; act: -127 ), + ( sym: 325; act: -127 ), +{ 260: } + ( sym: 321; act: 214 ), ( sym: 265; act: -128 ), + ( sym: 266; act: -128 ), ( sym: 267; act: -128 ), - ( sym: 286; act: -128 ), - ( sym: 296; act: -128 ), - ( sym: 300; act: -128 ), + ( sym: 268; act: -128 ), + ( sym: 269; act: -128 ), + ( sym: 270; act: -128 ), + ( sym: 271; act: -128 ), + ( sym: 272; act: -128 ), + ( sym: 273; act: -128 ), + ( sym: 291; act: -128 ), ( sym: 301; act: -128 ), - ( sym: 302; act: -128 ), - ( sym: 303; act: -128 ), ( sym: 304; act: -128 ), - ( sym: 305; act: -128 ), ( sym: 306; act: -128 ), ( sym: 307; act: -128 ), ( sym: 308; act: -128 ), @@ -5096,323 +5484,439 @@ yya : array [1..yynacts] of YYARec = ( ( sym: 313; act: -128 ), ( sym: 314; act: -128 ), ( sym: 315; act: -128 ), -{ 251: } - ( sym: 287; act: 222 ), - ( sym: 262; act: -3 ), -{ 252: } -{ 253: } - ( sym: 262; act: 214 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 215 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 260 ), - ( sym: 261; act: -108 ), - ( sym: 263; act: -108 ), - ( sym: 264; act: -108 ), -{ 254: } -{ 255: } - ( sym: 263; act: 161 ), - ( sym: 268; act: 20 ), - ( sym: 269; act: 21 ), - ( sym: 270; act: 22 ), - ( sym: 271; act: 23 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 162 ), - ( sym: 281; act: 31 ), - ( sym: 298; act: 163 ), - ( sym: 321; act: 32 ), -{ 256: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 257: } - ( sym: 262; act: 107 ), - ( sym: 265; act: 277 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), -{ 258: } - ( sym: 262; act: 255 ), - ( sym: 263; act: 278 ), - ( sym: 264; act: 256 ), -{ 259: } - ( sym: 262; act: 118 ), - ( sym: 263; act: 173 ), - ( sym: 264; act: 257 ), -{ 260: } - ( sym: 262; act: 214 ), - ( sym: 271; act: 23 ), - ( sym: 281; act: 215 ), - ( sym: 282; act: 83 ), - ( sym: 283; act: 84 ), - ( sym: 284; act: 85 ), - ( sym: 308; act: 86 ), - ( sym: 313; act: 260 ), - ( sym: 261; act: -108 ), - ( sym: 263; act: -108 ), - ( sym: 264; act: -108 ), + ( sym: 316; act: -128 ), + ( sym: 317; act: -128 ), + ( sym: 318; act: -128 ), + ( sym: 319; act: -128 ), + ( sym: 320; act: -128 ), + ( sym: 324; act: -128 ), + ( sym: 325; act: -128 ), { 261: } - ( sym: 262; act: 255 ), - ( sym: 264; act: 256 ), - ( sym: 261; act: -100 ), - ( sym: 263; act: -100 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -131 ), + ( sym: 266; act: -131 ), + ( sym: 267; act: -131 ), + ( sym: 268; act: -131 ), + ( sym: 269; act: -131 ), + ( sym: 270; act: -131 ), + ( sym: 271; act: -131 ), + ( sym: 272; act: -131 ), + ( sym: 273; act: -131 ), + ( sym: 291; act: -131 ), + ( sym: 301; act: -131 ), + ( sym: 304; act: -131 ), + ( sym: 306; act: -131 ), + ( sym: 307; act: -131 ), + ( sym: 308; act: -131 ), + ( sym: 309; act: -131 ), + ( sym: 310; act: -131 ), + ( sym: 311; act: -131 ), + ( sym: 312; act: -131 ), + ( sym: 313; act: -131 ), + ( sym: 314; act: -131 ), + ( sym: 315; act: -131 ), + ( sym: 316; act: -131 ), + ( sym: 317; act: -131 ), + ( sym: 318; act: -131 ), + ( sym: 319; act: -131 ), + ( sym: 320; act: -131 ), + ( sym: 324; act: -131 ), + ( sym: 325; act: -131 ), { 262: } - ( sym: 262; act: 118 ), - ( sym: 264; act: 257 ), - ( sym: 261; act: -86 ), - ( sym: 263; act: -86 ), { 263: } - ( sym: 264; act: 256 ), - ( sym: 261; act: -102 ), - ( sym: 262; act: -102 ), - ( sym: 263; act: -102 ), + ( sym: 324; act: 144 ), + ( sym: 325; act: 145 ), + ( sym: 265; act: -137 ), + ( sym: 266; act: -137 ), + ( sym: 267; act: -137 ), + ( sym: 268; act: -137 ), + ( sym: 269; act: -137 ), + ( sym: 270; act: -137 ), + ( sym: 271; act: -137 ), + ( sym: 272; act: -137 ), + ( sym: 273; act: -137 ), + ( sym: 291; act: -137 ), + ( sym: 301; act: -137 ), + ( sym: 304; act: -137 ), + ( sym: 306; act: -137 ), + ( sym: 307; act: -137 ), + ( sym: 308; act: -137 ), + ( sym: 309; act: -137 ), + ( sym: 310; act: -137 ), + ( sym: 311; act: -137 ), + ( sym: 312; act: -137 ), + ( sym: 313; act: -137 ), + ( sym: 314; act: -137 ), + ( sym: 315; act: -137 ), + ( sym: 316; act: -137 ), + ( sym: 317; act: -137 ), + ( sym: 318; act: -137 ), + ( sym: 319; act: -137 ), + ( sym: 320; act: -137 ), + ( sym: 321; act: -137 ), { 264: } - ( sym: 262; act: 118 ), - ( sym: 264; act: 257 ), - ( sym: 261; act: -77 ), - ( sym: 263; act: -77 ), + ( sym: 292; act: 234 ), + ( sym: 268; act: -3 ), { 265: } { 266: } - ( sym: 268; act: 20 ), - ( sym: 269; act: 21 ), - ( sym: 270; act: 22 ), - ( sym: 271; act: 23 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 281; act: 31 ), - ( sym: 298; act: 163 ), - ( sym: 321; act: 32 ), - ( sym: 263; act: -82 ), + ( sym: 268; act: 222 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 223 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 273 ), + ( sym: 267; act: -116 ), + ( sym: 269; act: -116 ), + ( sym: 270; act: -116 ), { 267: } - ( sym: 263; act: 281 ), { 268: } + ( sym: 269; act: 163 ), + ( sym: 274; act: 20 ), + ( sym: 275; act: 21 ), + ( sym: 276; act: 22 ), + ( sym: 277; act: 23 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 164 ), + ( sym: 287; act: 31 ), + ( sym: 303; act: 165 ), + ( sym: 327; act: 32 ), { 269: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 270: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), + ( sym: 268; act: 107 ), + ( sym: 271; act: 291 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 271: } - ( sym: 318; act: 142 ), - ( sym: 319; act: 143 ), - ( sym: 259; act: -141 ), - ( sym: 260; act: -141 ), - ( sym: 261; act: -141 ), - ( sym: 262; act: -141 ), - ( sym: 263; act: -141 ), - ( sym: 264; act: -141 ), - ( sym: 265; act: -141 ), - ( sym: 267; act: -141 ), - ( sym: 286; act: -141 ), - ( sym: 296; act: -141 ), - ( sym: 300; act: -141 ), - ( sym: 301; act: -141 ), - ( sym: 302; act: -141 ), - ( sym: 303; act: -141 ), - ( sym: 304; act: -141 ), - ( sym: 305; act: -141 ), - ( sym: 306; act: -141 ), - ( sym: 307; act: -141 ), - ( sym: 308; act: -141 ), - ( sym: 309; act: -141 ), - ( sym: 310; act: -141 ), - ( sym: 311; act: -141 ), - ( sym: 312; act: -141 ), - ( sym: 313; act: -141 ), - ( sym: 314; act: -141 ), - ( sym: 315; act: -141 ), + ( sym: 268; act: 268 ), + ( sym: 269; act: 292 ), + ( sym: 270; act: 269 ), { 272: } - ( sym: 262; act: 284 ), + ( sym: 268; act: 118 ), + ( sym: 269; act: 180 ), + ( sym: 270; act: 270 ), { 273: } - ( sym: 262; act: 255 ), - ( sym: 264; act: 256 ), - ( sym: 261; act: -101 ), - ( sym: 263; act: -101 ), + ( sym: 268; act: 222 ), + ( sym: 277; act: 23 ), + ( sym: 287; act: 223 ), + ( sym: 288; act: 83 ), + ( sym: 289; act: 84 ), + ( sym: 290; act: 85 ), + ( sym: 314; act: 86 ), + ( sym: 319; act: 273 ), + ( sym: 267; act: -116 ), + ( sym: 269; act: -116 ), + ( sym: 270; act: -116 ), { 274: } - ( sym: 262; act: 118 ), - ( sym: 264; act: 257 ), - ( sym: 261; act: -87 ), - ( sym: 263; act: -87 ), + ( sym: 268; act: 268 ), + ( sym: 270; act: 269 ), + ( sym: 267; act: -108 ), + ( sym: 269; act: -108 ), { 275: } - ( sym: 263; act: 285 ), + ( sym: 268; act: 118 ), + ( sym: 270; act: 270 ), + ( sym: 267; act: -94 ), + ( sym: 269; act: -94 ), { 276: } - ( sym: 265; act: 286 ), - ( sym: 300; act: 188 ), - ( sym: 301; act: 189 ), - ( sym: 302; act: 190 ), - ( sym: 303; act: 191 ), - ( sym: 304; act: 192 ), - ( sym: 305; act: 193 ), - ( sym: 306; act: 194 ), - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), + ( sym: 270; act: 269 ), + ( sym: 267; act: -110 ), + ( sym: 268; act: -110 ), + ( sym: 269; act: -110 ), { 277: } + ( sym: 268; act: 118 ), + ( sym: 270; act: 270 ), + ( sym: 267; act: -85 ), + ( sym: 269; act: -85 ), { 278: } + ( sym: 269; act: 294 ), + ( sym: 304; act: 198 ), + ( sym: 306; act: 199 ), + ( sym: 307; act: 200 ), + ( sym: 308; act: 201 ), + ( sym: 309; act: 202 ), + ( sym: 310; act: 203 ), + ( sym: 311; act: 204 ), + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), { 279: } - ( sym: 262; act: 118 ), - ( sym: 264; act: 257 ), - ( sym: 261; act: -88 ), - ( sym: 263; act: -88 ), { 280: } - ( sym: 263; act: 287 ), + ( sym: 274; act: 20 ), + ( sym: 275; act: 21 ), + ( sym: 276; act: 22 ), + ( sym: 277; act: 23 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 287; act: 31 ), + ( sym: 303; act: 165 ), + ( sym: 327; act: 32 ), + ( sym: 269; act: -90 ), { 281: } + ( sym: 269; act: 296 ), { 282: } - ( sym: 307; act: 195 ), - ( sym: 308; act: 196 ), - ( sym: 309; act: 197 ), - ( sym: 310; act: 198 ), - ( sym: 311; act: 199 ), - ( sym: 312; act: 200 ), - ( sym: 313; act: 201 ), - ( sym: 314; act: 202 ), - ( sym: 315; act: 203 ), - ( sym: 259; act: -127 ), - ( sym: 260; act: -127 ), - ( sym: 261; act: -127 ), - ( sym: 262; act: -127 ), - ( sym: 263; act: -127 ), - ( sym: 264; act: -127 ), - ( sym: 265; act: -127 ), - ( sym: 267; act: -127 ), - ( sym: 286; act: -127 ), - ( sym: 296; act: -127 ), - ( sym: 300; act: -127 ), - ( sym: 301; act: -127 ), - ( sym: 302; act: -127 ), - ( sym: 303; act: -127 ), - ( sym: 304; act: -127 ), - ( sym: 305; act: -127 ), - ( sym: 306; act: -127 ), - ( sym: 318; act: -127 ), - ( sym: 319; act: -127 ), { 283: } - ( sym: 318; act: 142 ), - ( sym: 319; act: 143 ), - ( sym: 259; act: -142 ), - ( sym: 260; act: -142 ), - ( sym: 261; act: -142 ), - ( sym: 262; act: -142 ), - ( sym: 263; act: -142 ), - ( sym: 264; act: -142 ), - ( sym: 265; act: -142 ), - ( sym: 267; act: -142 ), - ( sym: 286; act: -142 ), - ( sym: 296; act: -142 ), - ( sym: 300; act: -142 ), - ( sym: 301; act: -142 ), - ( sym: 302; act: -142 ), - ( sym: 303; act: -142 ), - ( sym: 304; act: -142 ), - ( sym: 305; act: -142 ), - ( sym: 306; act: -142 ), - ( sym: 307; act: -142 ), - ( sym: 308; act: -142 ), - ( sym: 309; act: -142 ), - ( sym: 310; act: -142 ), - ( sym: 311; act: -142 ), - ( sym: 312; act: -142 ), - ( sym: 313; act: -142 ), - ( sym: 314; act: -142 ), - ( sym: 315; act: -142 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 284: } - ( sym: 262; act: 107 ), - ( sym: 271; act: 23 ), - ( sym: 272; act: 108 ), - ( sym: 273; act: 109 ), - ( sym: 274; act: 24 ), - ( sym: 275; act: 25 ), - ( sym: 276; act: 26 ), - ( sym: 277; act: 27 ), - ( sym: 278; act: 28 ), - ( sym: 279; act: 29 ), - ( sym: 280; act: 30 ), - ( sym: 308; act: 111 ), - ( sym: 310; act: 112 ), - ( sym: 315; act: 113 ), - ( sym: 321; act: 32 ), - ( sym: 263; act: -157 ), + ( sym: 324; act: 144 ), + ( sym: 325; act: 145 ), + ( sym: 265; act: -150 ), + ( sym: 266; act: -150 ), + ( sym: 267; act: -150 ), + ( sym: 268; act: -150 ), + ( sym: 269; act: -150 ), + ( sym: 270; act: -150 ), + ( sym: 271; act: -150 ), + ( sym: 272; act: -150 ), + ( sym: 273; act: -150 ), + ( sym: 291; act: -150 ), + ( sym: 301; act: -150 ), + ( sym: 304; act: -150 ), + ( sym: 306; act: -150 ), + ( sym: 307; act: -150 ), + ( sym: 308; act: -150 ), + ( sym: 309; act: -150 ), + ( sym: 310; act: -150 ), + ( sym: 311; act: -150 ), + ( sym: 312; act: -150 ), + ( sym: 313; act: -150 ), + ( sym: 314; act: -150 ), + ( sym: 315; act: -150 ), + ( sym: 316; act: -150 ), + ( sym: 317; act: -150 ), + ( sym: 318; act: -150 ), + ( sym: 319; act: -150 ), + ( sym: 320; act: -150 ), + ( sym: 321; act: -150 ), { 285: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), { 286: } + ( sym: 268; act: 299 ), { 287: } - ( sym: 260; act: 289 ), + ( sym: 268; act: 268 ), + ( sym: 270; act: 269 ), + ( sym: 267; act: -109 ), + ( sym: 269; act: -109 ), { 288: } - ( sym: 263; act: 290 ) + ( sym: 268; act: 118 ), + ( sym: 270; act: 270 ), + ( sym: 267; act: -95 ), + ( sym: 269; act: -95 ), { 289: } + ( sym: 269; act: 300 ), { 290: } + ( sym: 271; act: 301 ), + ( sym: 304; act: 198 ), + ( sym: 306; act: 199 ), + ( sym: 307; act: 200 ), + ( sym: 308; act: 201 ), + ( sym: 309; act: 202 ), + ( sym: 310; act: 203 ), + ( sym: 311; act: 204 ), + ( sym: 312; act: 205 ), + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), +{ 291: } +{ 292: } +{ 293: } + ( sym: 268; act: 118 ), + ( sym: 270; act: 270 ), + ( sym: 267; act: -96 ), + ( sym: 269; act: -96 ), +{ 294: } + ( sym: 257; act: 174 ), + ( sym: 266; act: 175 ), + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), + ( sym: 273; act: -26 ), +{ 295: } + ( sym: 269; act: 303 ), +{ 296: } +{ 297: } + ( sym: 324; act: 144 ), + ( sym: 325; act: 145 ), + ( sym: 265; act: -151 ), + ( sym: 266; act: -151 ), + ( sym: 267; act: -151 ), + ( sym: 268; act: -151 ), + ( sym: 269; act: -151 ), + ( sym: 270; act: -151 ), + ( sym: 271; act: -151 ), + ( sym: 272; act: -151 ), + ( sym: 273; act: -151 ), + ( sym: 291; act: -151 ), + ( sym: 301; act: -151 ), + ( sym: 304; act: -151 ), + ( sym: 306; act: -151 ), + ( sym: 307; act: -151 ), + ( sym: 308; act: -151 ), + ( sym: 309; act: -151 ), + ( sym: 310; act: -151 ), + ( sym: 311; act: -151 ), + ( sym: 312; act: -151 ), + ( sym: 313; act: -151 ), + ( sym: 314; act: -151 ), + ( sym: 315; act: -151 ), + ( sym: 316; act: -151 ), + ( sym: 317; act: -151 ), + ( sym: 318; act: -151 ), + ( sym: 319; act: -151 ), + ( sym: 320; act: -151 ), + ( sym: 321; act: -151 ), +{ 298: } + ( sym: 313; act: 206 ), + ( sym: 314; act: 207 ), + ( sym: 315; act: 208 ), + ( sym: 316; act: 209 ), + ( sym: 317; act: 210 ), + ( sym: 318; act: 211 ), + ( sym: 319; act: 212 ), + ( sym: 320; act: 213 ), + ( sym: 321; act: 214 ), + ( sym: 265; act: -136 ), + ( sym: 266; act: -136 ), + ( sym: 267; act: -136 ), + ( sym: 268; act: -136 ), + ( sym: 269; act: -136 ), + ( sym: 270; act: -136 ), + ( sym: 271; act: -136 ), + ( sym: 272; act: -136 ), + ( sym: 273; act: -136 ), + ( sym: 291; act: -136 ), + ( sym: 301; act: -136 ), + ( sym: 304; act: -136 ), + ( sym: 306; act: -136 ), + ( sym: 307; act: -136 ), + ( sym: 308; act: -136 ), + ( sym: 309; act: -136 ), + ( sym: 310; act: -136 ), + ( sym: 311; act: -136 ), + ( sym: 312; act: -136 ), + ( sym: 324; act: -136 ), + ( sym: 325; act: -136 ), +{ 299: } + ( sym: 268; act: 107 ), + ( sym: 277; act: 23 ), + ( sym: 278; act: 108 ), + ( sym: 279; act: 109 ), + ( sym: 280; act: 24 ), + ( sym: 281; act: 25 ), + ( sym: 282; act: 26 ), + ( sym: 283; act: 27 ), + ( sym: 284; act: 28 ), + ( sym: 285; act: 29 ), + ( sym: 286; act: 30 ), + ( sym: 314; act: 111 ), + ( sym: 316; act: 112 ), + ( sym: 321; act: 113 ), + ( sym: 327; act: 32 ), + ( sym: 269; act: -166 ), +{ 300: } +{ 301: } +{ 302: } +{ 303: } + ( sym: 266; act: 305 ), +{ 304: } + ( sym: 269; act: 306 ) +{ 305: } +{ 306: } ); yyg : array [1..yyngotos] of YYARec = ( { 0: } - ( sym: -14; act: 1 ), + ( sym: -18; act: 1 ), ( sym: -8; act: 2 ), ( sym: -7; act: 3 ), ( sym: -6; act: 4 ), @@ -5420,15 +5924,15 @@ yyg : array [1..yyngotos] of YYARec = ( ( sym: -2; act: 6 ), { 1: } { 2: } - ( sym: -25; act: 15 ), - ( sym: -23; act: 16 ), - ( sym: -14; act: 17 ), - ( sym: -12; act: 18 ), + ( sym: -29; act: 15 ), + ( sym: -27; act: 16 ), + ( sym: -18; act: 17 ), + ( sym: -16; act: 18 ), ( sym: -11; act: 19 ), { 3: } { 4: } { 5: } - ( sym: -14; act: 1 ), + ( sym: -18; act: 1 ), ( sym: -8; act: 2 ), ( sym: -7; act: 33 ), ( sym: -6; act: 34 ), @@ -5436,10 +5940,10 @@ yyg : array [1..yyngotos] of YYARec = ( { 7: } ( sym: -5; act: 35 ), { 8: } - ( sym: -25; act: 15 ), - ( sym: -23; act: 16 ), - ( sym: -14; act: 17 ), - ( sym: -12; act: 36 ), + ( sym: -29; act: 15 ), + ( sym: -27; act: 16 ), + ( sym: -18; act: 17 ), + ( sym: -16; act: 36 ), ( sym: -11; act: 37 ), { 9: } ( sym: -11; act: 39 ), @@ -5458,31 +5962,31 @@ yyg : array [1..yyngotos] of YYARec = ( ( sym: -9; act: 43 ), { 19: } { 20: } - ( sym: -20; act: 51 ), + ( sym: -24; act: 51 ), ( sym: -11; act: 40 ), { 21: } - ( sym: -20; act: 54 ), + ( sym: -24; act: 54 ), ( sym: -11; act: 41 ), { 22: } - ( sym: -22; act: 55 ), + ( sym: -26; act: 55 ), ( sym: -11; act: 42 ), { 23: } { 24: } { 25: } - ( sym: -25; act: 59 ), + ( sym: -29; act: 59 ), { 26: } { 27: } { 28: } { 29: } { 30: } { 31: } - ( sym: -25; act: 15 ), - ( sym: -23; act: 16 ), - ( sym: -14; act: 17 ), - ( sym: -12; act: 62 ), + ( sym: -29; act: 15 ), + ( sym: -27; act: 16 ), + ( sym: -18; act: 17 ), + ( sym: -16; act: 62 ), ( sym: -11; act: 19 ), { 32: } - ( sym: -25; act: 63 ), + ( sym: -29; act: 63 ), { 33: } { 34: } { 35: } @@ -5490,19 +5994,19 @@ yyg : array [1..yyngotos] of YYARec = ( ( sym: -9; act: 66 ), { 37: } { 38: } - ( sym: -20; act: 51 ), + ( sym: -24; act: 51 ), ( sym: -11; act: 69 ), { 39: } { 40: } - ( sym: -20; act: 73 ), + ( sym: -24; act: 73 ), { 41: } - ( sym: -20; act: 74 ), + ( sym: -24; act: 74 ), { 42: } - ( sym: -22; act: 75 ), + ( sym: -26; act: 75 ), { 43: } - ( sym: -28; act: 76 ), - ( sym: -15; act: 77 ), - ( sym: -13; act: 78 ), + ( sym: -32; act: 76 ), + ( sym: -19; act: 77 ), + ( sym: -17; act: 78 ), ( sym: -11; act: 79 ), { 44: } { 45: } @@ -5515,20 +6019,20 @@ yyg : array [1..yyngotos] of YYARec = ( { 52: } ( sym: -5; act: 89 ), { 53: } - ( sym: -25; act: 15 ), - ( sym: -24; act: 90 ), - ( sym: -23; act: 16 ), - ( sym: -21; act: 91 ), - ( sym: -14; act: 17 ), - ( sym: -12; act: 92 ), + ( sym: -29; act: 15 ), + ( sym: -28; act: 90 ), + ( sym: -27; act: 16 ), + ( sym: -25; act: 91 ), + ( sym: -18; act: 17 ), + ( sym: -16; act: 92 ), ( sym: -11; act: 19 ), { 54: } { 55: } { 56: } ( sym: -5; act: 94 ), { 57: } - ( sym: -37; act: 95 ), - ( sym: -17; act: 96 ), + ( sym: -40; act: 95 ), + ( sym: -21; act: 96 ), ( sym: -11; act: 97 ), { 58: } { 59: } @@ -5539,72 +6043,73 @@ yyg : array [1..yyngotos] of YYARec = ( { 64: } { 65: } { 66: } - ( sym: -28; act: 76 ), - ( sym: -15; act: 77 ), - ( sym: -13; act: 99 ), + ( sym: -32; act: 76 ), + ( sym: -19; act: 77 ), + ( sym: -17; act: 99 ), ( sym: -11; act: 79 ), { 67: } ( sym: -9; act: 100 ), { 68: } { 69: } - ( sym: -20; act: 73 ), + ( sym: -24; act: 73 ), ( sym: -11; act: 101 ), { 70: } - ( sym: -37; act: 95 ), - ( sym: -17; act: 102 ), + ( sym: -40; act: 95 ), + ( sym: -21; act: 102 ), ( sym: -11; act: 97 ), { 71: } { 72: } - ( sym: -34; act: 103 ), - ( sym: -25; act: 104 ), - ( sym: -19; act: 105 ), + ( sym: -37; act: 103 ), + ( sym: -29; act: 104 ), + ( sym: -23; act: 105 ), ( sym: -11; act: 106 ), { 73: } { 74: } { 75: } { 76: } { 77: } - ( sym: -31; act: 117 ), + ( sym: -34; act: 117 ), { 78: } - ( sym: -10; act: 120 ), + ( sym: -15; act: 120 ), + ( sym: -10; act: 121 ), { 79: } - ( sym: -30; act: 123 ), + ( sym: -33; act: 125 ), { 80: } - ( sym: -5; act: 125 ), + ( sym: -5; act: 127 ), { 81: } - ( sym: -28; act: 76 ), - ( sym: -15; act: 126 ), + ( sym: -32; act: 76 ), + ( sym: -19; act: 128 ), ( sym: -11; act: 79 ), { 82: } - ( sym: -28; act: 76 ), - ( sym: -15; act: 127 ), + ( sym: -32; act: 76 ), + ( sym: -19; act: 129 ), ( sym: -11; act: 79 ), { 83: } { 84: } { 85: } { 86: } - ( sym: -28; act: 76 ), - ( sym: -15; act: 128 ), + ( sym: -32; act: 76 ), + ( sym: -19; act: 130 ), ( sym: -11; act: 79 ), { 87: } - ( sym: -28; act: 76 ), - ( sym: -15; act: 129 ), + ( sym: -32; act: 76 ), + ( sym: -19; act: 131 ), ( sym: -11; act: 79 ), { 88: } { 89: } { 90: } - ( sym: -25; act: 15 ), - ( sym: -24; act: 90 ), - ( sym: -23; act: 16 ), - ( sym: -21; act: 131 ), - ( sym: -14; act: 17 ), - ( sym: -12; act: 92 ), + ( sym: -29; act: 15 ), + ( sym: -28; act: 90 ), + ( sym: -27; act: 16 ), + ( sym: -25; act: 133 ), + ( sym: -18; act: 17 ), + ( sym: -16; act: 92 ), ( sym: -11; act: 19 ), { 91: } { 92: } - ( sym: -28; act: 76 ), - ( sym: -15; act: 77 ), - ( sym: -13; act: 133 ), + ( sym: -32; act: 76 ), + ( sym: -19; act: 77 ), + ( sym: -17; act: 135 ), ( sym: -11; act: 79 ), { 93: } { 94: } @@ -5614,8 +6119,8 @@ yyg : array [1..yyngotos] of YYARec = ( { 98: } { 99: } { 100: } - ( sym: -28; act: 76 ), - ( sym: -15; act: 139 ), + ( sym: -32; act: 76 ), + ( sym: -19; act: 141 ), ( sym: -11; act: 79 ), { 101: } { 102: } @@ -5624,473 +6129,520 @@ yyg : array [1..yyngotos] of YYARec = ( { 105: } { 106: } { 107: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 148 ), - ( sym: -29; act: 149 ), - ( sym: -25; act: 150 ), - ( sym: -23; act: 16 ), - ( sym: -14; act: 17 ), - ( sym: -12; act: 151 ), - ( sym: -11; act: 152 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 150 ), + ( sym: -29; act: 151 ), + ( sym: -27; act: 16 ), + ( sym: -18; act: 17 ), + ( sym: -16; act: 152 ), + ( sym: -13; act: 153 ), + ( sym: -11; act: 154 ), { 108: } { 109: } { 110: } { 111: } - ( sym: -34; act: 154 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 156 ), + ( sym: -29; act: 104 ), ( sym: -11; act: 106 ), { 112: } - ( sym: -34; act: 155 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 157 ), + ( sym: -29; act: 104 ), ( sym: -11; act: 106 ), { 113: } - ( sym: -34; act: 156 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 158 ), + ( sym: -29; act: 104 ), ( sym: -11; act: 106 ), { 114: } { 115: } { 116: } - ( sym: -28; act: 76 ), - ( sym: -15; act: 157 ), + ( sym: -32; act: 76 ), + ( sym: -19; act: 159 ), ( sym: -11; act: 79 ), { 117: } { 118: } - ( sym: -26; act: 158 ), - ( sym: -25; act: 15 ), - ( sym: -23; act: 16 ), - ( sym: -16; act: 159 ), - ( sym: -14; act: 17 ), - ( sym: -12; act: 160 ), + ( sym: -30; act: 160 ), + ( sym: -29; act: 15 ), + ( sym: -27; act: 16 ), + ( sym: -20; act: 161 ), + ( sym: -18; act: 17 ), + ( sym: -16; act: 162 ), ( sym: -11; act: 19 ), { 119: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 165 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 167 ), ( sym: -11; act: 106 ), { 120: } { 121: } - ( sym: -28; act: 76 ), - ( sym: -15; act: 168 ), - ( sym: -11; act: 79 ), { 122: } + ( sym: -32; act: 76 ), + ( sym: -19; act: 170 ), + ( sym: -11; act: 79 ), { 123: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 170 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -14; act: 171 ), + ( sym: -13; act: 172 ), + ( sym: -12; act: 173 ), ( sym: -11; act: 106 ), { 124: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 171 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 125: } + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 177 ), + ( sym: -11; act: 106 ), { 126: } - ( sym: -31; act: 117 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 178 ), + ( sym: -11; act: 106 ), { 127: } - ( sym: -31; act: 117 ), { 128: } - ( sym: -31; act: 117 ), + ( sym: -34; act: 117 ), { 129: } - ( sym: -31; act: 117 ), + ( sym: -34; act: 117 ), { 130: } + ( sym: -34; act: 117 ), { 131: } + ( sym: -34; act: 117 ), { 132: } { 133: } { 134: } { 135: } - ( sym: -37; act: 95 ), - ( sym: -17; act: 175 ), - ( sym: -11; act: 97 ), { 136: } { 137: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 176 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), + ( sym: -40; act: 95 ), + ( sym: -21; act: 182 ), + ( sym: -11; act: 97 ), { 138: } { 139: } - ( sym: -31; act: 117 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 183 ), + ( sym: -11; act: 106 ), { 140: } { 141: } - ( sym: -18; act: 178 ), - ( sym: -4; act: 179 ), + ( sym: -34; act: 117 ), { 142: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 181 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 143: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 182 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), + ( sym: -22; act: 185 ), + ( sym: -4; act: 186 ), { 144: } + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 188 ), + ( sym: -11; act: 106 ), { 145: } - ( sym: -38; act: 183 ), - ( sym: -36; act: 184 ), - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 185 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 189 ), ( sym: -11; act: 106 ), { 146: } - ( sym: -38; act: 183 ), - ( sym: -36; act: 186 ), - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 185 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 147: } + ( sym: -41; act: 190 ), + ( sym: -39; act: 191 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 192 ), + ( sym: -11; act: 106 ), { 148: } + ( sym: -41; act: 190 ), + ( sym: -39; act: 193 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 192 ), + ( sym: -11; act: 106 ), { 149: } { 150: } { 151: } - ( sym: -28; act: 204 ), { 152: } + ( sym: -32; act: 195 ), { 153: } - ( sym: -34; act: 208 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 154: } { 155: } + ( sym: -37; act: 216 ), + ( sym: -29; act: 104 ), + ( sym: -11; act: 106 ), { 156: } { 157: } - ( sym: -31; act: 117 ), { 158: } { 159: } + ( sym: -34; act: 117 ), { 160: } - ( sym: -28; act: 211 ), - ( sym: -27; act: 212 ), - ( sym: -15; act: 213 ), - ( sym: -11; act: 79 ), { 161: } { 162: } + ( sym: -32; act: 219 ), + ( sym: -31; act: 220 ), + ( sym: -19; act: 221 ), + ( sym: -11; act: 79 ), { 163: } { 164: } { 165: } { 166: } { 167: } { 168: } - ( sym: -31; act: 117 ), { 169: } - ( sym: -11; act: 219 ), { 170: } + ( sym: -34; act: 117 ), { 171: } { 172: } - ( sym: -28; act: 76 ), - ( sym: -15; act: 77 ), - ( sym: -13; act: 220 ), - ( sym: -11; act: 79 ), { 173: } + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -14; act: 229 ), + ( sym: -13; act: 172 ), + ( sym: -12; act: 173 ), + ( sym: -11; act: 106 ), { 174: } { 175: } { 176: } + ( sym: -11; act: 231 ), { 177: } - ( sym: -4; act: 221 ), { 178: } { 179: } + ( sym: -32; act: 76 ), + ( sym: -19; act: 77 ), + ( sym: -17; act: 232 ), + ( sym: -11; act: 79 ), { 180: } - ( sym: -34; act: 103 ), - ( sym: -25; act: 104 ), - ( sym: -19; act: 225 ), - ( sym: -11; act: 106 ), { 181: } { 182: } { 183: } { 184: } + ( sym: -4; act: 233 ), { 185: } { 186: } { 187: } + ( sym: -37; act: 103 ), + ( sym: -29; act: 104 ), + ( sym: -23; act: 237 ), + ( sym: -11; act: 106 ), { 188: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 229 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 189: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 230 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 190: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 231 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 191: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 232 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 192: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 233 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 193: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 234 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 194: } - ( sym: -34; act: 147 ), - ( sym: -33; act: 235 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 236 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 195: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 237 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 196: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 238 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 242 ), + ( sym: -29; act: 104 ), ( sym: -11; act: 106 ), { 197: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 239 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 198: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 240 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 244 ), ( sym: -11; act: 106 ), { 199: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 241 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 245 ), ( sym: -11; act: 106 ), { 200: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 242 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 246 ), ( sym: -11; act: 106 ), { 201: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 243 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 247 ), ( sym: -11; act: 106 ), { 202: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 244 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 248 ), ( sym: -11; act: 106 ), { 203: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 245 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 249 ), ( sym: -11; act: 106 ), { 204: } + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 250 ), + ( sym: -11; act: 106 ), { 205: } - ( sym: -34; act: 247 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 149 ), + ( sym: -36; act: 251 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 252 ), ( sym: -11; act: 106 ), { 206: } + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 253 ), + ( sym: -11; act: 106 ), { 207: } - ( sym: -35; act: 249 ), - ( sym: -34; act: 250 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 254 ), ( sym: -11; act: 106 ), { 208: } + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 255 ), + ( sym: -11; act: 106 ), { 209: } - ( sym: -26; act: 158 ), - ( sym: -25; act: 15 ), - ( sym: -23; act: 16 ), - ( sym: -16; act: 252 ), - ( sym: -14; act: 17 ), - ( sym: -12; act: 160 ), - ( sym: -11; act: 19 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 256 ), + ( sym: -11; act: 106 ), { 210: } + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 257 ), + ( sym: -11; act: 106 ), { 211: } + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 258 ), + ( sym: -11; act: 106 ), { 212: } - ( sym: -31; act: 254 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 259 ), + ( sym: -11; act: 106 ), { 213: } - ( sym: -31; act: 117 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 260 ), + ( sym: -11; act: 106 ), { 214: } - ( sym: -28; act: 211 ), - ( sym: -27; act: 258 ), - ( sym: -15; act: 259 ), - ( sym: -11; act: 79 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 261 ), + ( sym: -11; act: 106 ), { 215: } - ( sym: -28; act: 211 ), - ( sym: -27; act: 261 ), - ( sym: -15; act: 262 ), - ( sym: -11; act: 79 ), + ( sym: -38; act: 262 ), + ( sym: -37; act: 263 ), + ( sym: -29; act: 104 ), + ( sym: -11; act: 106 ), { 216: } - ( sym: -28; act: 211 ), - ( sym: -27; act: 263 ), - ( sym: -15; act: 264 ), - ( sym: -11; act: 79 ), { 217: } + ( sym: -30; act: 160 ), + ( sym: -29; act: 15 ), + ( sym: -27; act: 16 ), + ( sym: -20; act: 265 ), + ( sym: -18; act: 17 ), + ( sym: -16; act: 162 ), + ( sym: -11; act: 19 ), { 218: } { 219: } { 220: } + ( sym: -34; act: 267 ), { 221: } + ( sym: -34; act: 117 ), { 222: } + ( sym: -32; act: 219 ), + ( sym: -31; act: 271 ), + ( sym: -19; act: 272 ), + ( sym: -11; act: 79 ), { 223: } + ( sym: -32; act: 219 ), + ( sym: -31; act: 274 ), + ( sym: -19; act: 275 ), + ( sym: -11; act: 79 ), { 224: } - ( sym: -34; act: 103 ), - ( sym: -25; act: 104 ), - ( sym: -19; act: 267 ), - ( sym: -11; act: 106 ), + ( sym: -32; act: 219 ), + ( sym: -31; act: 276 ), + ( sym: -19; act: 277 ), + ( sym: -11; act: 79 ), { 225: } { 226: } - ( sym: -38; act: 183 ), - ( sym: -36; act: 268 ), - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 185 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 227: } { 228: } { 229: } { 230: } + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 278 ), + ( sym: -11; act: 106 ), { 231: } { 232: } { 233: } { 234: } { 235: } { 236: } + ( sym: -37; act: 103 ), + ( sym: -29; act: 104 ), + ( sym: -23; act: 281 ), + ( sym: -11; act: 106 ), { 237: } { 238: } + ( sym: -41; act: 190 ), + ( sym: -39; act: 282 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 192 ), + ( sym: -11; act: 106 ), { 239: } { 240: } { 241: } { 242: } { 243: } + ( sym: -37; act: 284 ), + ( sym: -29; act: 104 ), + ( sym: -11; act: 106 ), { 244: } { 245: } { 246: } { 247: } { 248: } - ( sym: -34; act: 271 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 249: } { 250: } { 251: } - ( sym: -4; act: 272 ), { 252: } { 253: } - ( sym: -28; act: 211 ), - ( sym: -27; act: 273 ), - ( sym: -15; act: 274 ), - ( sym: -11; act: 79 ), { 254: } { 255: } - ( sym: -26; act: 158 ), - ( sym: -25; act: 15 ), - ( sym: -23; act: 16 ), - ( sym: -16; act: 275 ), - ( sym: -14; act: 17 ), - ( sym: -12; act: 160 ), - ( sym: -11; act: 19 ), { 256: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 276 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 257: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 165 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ), { 258: } - ( sym: -31; act: 254 ), { 259: } - ( sym: -31; act: 117 ), { 260: } - ( sym: -28; act: 211 ), - ( sym: -27; act: 263 ), - ( sym: -15; act: 279 ), - ( sym: -11; act: 79 ), { 261: } - ( sym: -31; act: 254 ), { 262: } - ( sym: -31; act: 117 ), { 263: } - ( sym: -31; act: 254 ), { 264: } - ( sym: -31; act: 117 ), + ( sym: -4; act: 286 ), { 265: } { 266: } - ( sym: -26; act: 158 ), - ( sym: -25; act: 15 ), - ( sym: -23; act: 16 ), - ( sym: -16; act: 280 ), - ( sym: -14; act: 17 ), - ( sym: -12; act: 160 ), - ( sym: -11; act: 19 ), + ( sym: -32; act: 219 ), + ( sym: -31; act: 287 ), + ( sym: -19; act: 288 ), + ( sym: -11; act: 79 ), { 267: } { 268: } + ( sym: -30; act: 160 ), + ( sym: -29; act: 15 ), + ( sym: -27; act: 16 ), + ( sym: -20; act: 289 ), + ( sym: -18; act: 17 ), + ( sym: -16; act: 162 ), + ( sym: -11; act: 19 ), { 269: } - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 282 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 290 ), ( sym: -11; act: 106 ), { 270: } - ( sym: -34; act: 283 ), - ( sym: -25; act: 104 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 167 ), ( sym: -11; act: 106 ), { 271: } + ( sym: -34; act: 267 ), { 272: } + ( sym: -34; act: 117 ), { 273: } - ( sym: -31; act: 254 ), + ( sym: -32; act: 219 ), + ( sym: -31; act: 276 ), + ( sym: -19; act: 293 ), + ( sym: -11; act: 79 ), { 274: } - ( sym: -31; act: 117 ), + ( sym: -34; act: 267 ), { 275: } + ( sym: -34; act: 117 ), { 276: } + ( sym: -34; act: 267 ), { 277: } + ( sym: -34; act: 117 ), { 278: } { 279: } - ( sym: -31; act: 117 ), { 280: } + ( sym: -30; act: 160 ), + ( sym: -29; act: 15 ), + ( sym: -27; act: 16 ), + ( sym: -20; act: 295 ), + ( sym: -18; act: 17 ), + ( sym: -16; act: 162 ), + ( sym: -11; act: 19 ), { 281: } { 282: } { 283: } + ( sym: -37; act: 297 ), + ( sym: -29; act: 104 ), + ( sym: -11; act: 106 ), { 284: } - ( sym: -38; act: 183 ), - ( sym: -36; act: 288 ), - ( sym: -34; act: 147 ), - ( sym: -32; act: 164 ), - ( sym: -29; act: 185 ), - ( sym: -25; act: 104 ), - ( sym: -11; act: 106 ) { 285: } + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 298 ), + ( sym: -11; act: 106 ), { 286: } { 287: } + ( sym: -34; act: 267 ), { 288: } + ( sym: -34; act: 117 ), { 289: } { 290: } +{ 291: } +{ 292: } +{ 293: } + ( sym: -34; act: 117 ), +{ 294: } + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -14; act: 302 ), + ( sym: -13; act: 172 ), + ( sym: -12; act: 173 ), + ( sym: -11; act: 106 ), +{ 295: } +{ 296: } +{ 297: } +{ 298: } +{ 299: } + ( sym: -41; act: 190 ), + ( sym: -39; act: 304 ), + ( sym: -37; act: 149 ), + ( sym: -35; act: 166 ), + ( sym: -29; act: 104 ), + ( sym: -13; act: 192 ), + ( sym: -11; act: 106 ) +{ 300: } +{ 301: } +{ 302: } +{ 303: } +{ 304: } +{ 305: } +{ 306: } ); yyd : array [0..yynstates-1] of Integer = ( @@ -6108,23 +6660,23 @@ yyd : array [0..yynstates-1] of Integer = ( { 11: } 0, { 12: } 0, { 13: } -9, -{ 14: } -22, -{ 15: } -70, -{ 16: } -52, -{ 17: } -51, +{ 14: } -30, +{ 15: } -78, +{ 16: } -60, +{ 17: } -59, { 18: } 0, -{ 19: } -71, +{ 19: } -79, { 20: } 0, { 21: } 0, { 22: } 0, -{ 23: } -56, +{ 23: } -64, { 24: } 0, { 25: } 0, { 26: } 0, -{ 27: } -59, -{ 28: } -66, -{ 29: } -68, -{ 30: } -67, +{ 27: } -67, +{ 28: } -74, +{ 29: } -76, +{ 30: } -75, { 31: } 0, { 32: } 0, { 33: } -6, @@ -6149,27 +6701,27 @@ yyd : array [0..yynstates-1] of Integer = ( { 52: } -4, { 53: } 0, { 54: } 0, -{ 55: } -50, +{ 55: } -58, { 56: } -4, { 57: } 0, -{ 58: } -65, -{ 59: } -58, +{ 58: } -73, +{ 59: } -66, { 60: } 0, -{ 61: } -61, -{ 62: } -45, -{ 63: } -57, -{ 64: } -27, -{ 65: } -32, +{ 61: } -69, +{ 62: } -53, +{ 63: } -65, +{ 64: } -35, +{ 65: } -40, { 66: } 0, { 67: } 0, -{ 68: } -26, +{ 68: } -34, { 69: } 0, { 70: } 0, -{ 71: } -30, +{ 71: } -38, { 72: } 0, { 73: } 0, { 74: } 0, -{ 75: } -43, +{ 75: } -51, { 76: } 0, { 77: } 0, { 78: } 0, @@ -6177,44 +6729,44 @@ yyd : array [0..yynstates-1] of Integer = ( { 80: } -4, { 81: } 0, { 82: } 0, -{ 83: } -83, -{ 84: } -85, -{ 85: } -84, +{ 83: } -91, +{ 84: } -93, +{ 85: } -92, { 86: } 0, { 87: } 0, -{ 88: } -48, +{ 88: } -56, { 89: } 0, { 90: } 0, { 91: } 0, { 92: } 0, -{ 93: } -46, +{ 93: } -54, { 94: } 0, { 95: } 0, { 96: } 0, { 97: } 0, -{ 98: } -63, +{ 98: } -71, { 99: } 0, { 100: } 0, { 101: } 0, { 102: } 0, { 103: } 0, -{ 104: } -131, +{ 104: } -140, { 105: } 0, { 106: } 0, { 107: } 0, -{ 108: } -133, -{ 109: } -132, -{ 110: } -29, +{ 108: } -142, +{ 109: } -141, +{ 110: } -37, { 111: } 0, { 112: } 0, { 113: } 0, -{ 114: } -37, -{ 115: } -39, +{ 114: } -45, +{ 115: } -47, { 116: } 0, -{ 117: } -94, +{ 117: } -102, { 118: } 0, { 119: } 0, -{ 120: } 0, +{ 120: } -28, { 121: } 0, { 122: } 0, { 123: } 0, @@ -6224,23 +6776,23 @@ yyd : array [0..yynstates-1] of Integer = ( { 127: } 0, { 128: } 0, { 129: } 0, -{ 130: } -34, -{ 131: } -53, -{ 132: } -33, -{ 133: } 0, -{ 134: } -36, +{ 130: } 0, +{ 131: } 0, +{ 132: } -42, +{ 133: } -61, +{ 134: } -41, { 135: } 0, -{ 136: } -35, +{ 136: } -44, { 137: } 0, -{ 138: } -25, +{ 138: } -43, { 139: } 0, -{ 140: } -23, +{ 140: } -33, { 141: } 0, -{ 142: } 0, +{ 142: } -31, { 143: } 0, -{ 144: } -31, +{ 144: } 0, { 145: } 0, -{ 146: } 0, +{ 146: } -39, { 147: } 0, { 148: } 0, { 149: } 0, @@ -6255,40 +6807,40 @@ yyd : array [0..yynstates-1] of Integer = ( { 158: } 0, { 159: } 0, { 160: } 0, -{ 161: } -98, +{ 161: } 0, { 162: } 0, -{ 163: } -81, -{ 164: } -109, -{ 165: } 0, -{ 166: } -96, -{ 167: } -21, -{ 168: } 0, -{ 169: } 0, +{ 163: } -106, +{ 164: } 0, +{ 165: } -89, +{ 166: } -117, +{ 167: } 0, +{ 168: } -104, +{ 169: } -29, { 170: } 0, { 171: } 0, { 172: } 0, -{ 173: } -97, -{ 174: } -55, -{ 175: } -147, +{ 173: } 0, +{ 174: } 0, +{ 175: } -25, { 176: } 0, { 177: } 0, { 178: } 0, { 179: } 0, -{ 180: } 0, -{ 181: } -134, -{ 182: } -135, +{ 180: } -105, +{ 181: } -63, +{ 182: } -156, { 183: } 0, { 184: } 0, { 185: } 0, { 186: } 0, -{ 187: } -144, -{ 188: } 0, -{ 189: } 0, +{ 187: } 0, +{ 188: } -143, +{ 189: } -144, { 190: } 0, { 191: } 0, { 192: } 0, { 193: } 0, -{ 194: } 0, +{ 194: } -153, { 195: } 0, { 196: } 0, { 197: } 0, @@ -6304,37 +6856,37 @@ yyd : array [0..yynstates-1] of Integer = ( { 207: } 0, { 208: } 0, { 209: } 0, -{ 210: } -93, +{ 210: } 0, { 211: } 0, { 212: } 0, { 213: } 0, { 214: } 0, { 215: } 0, { 216: } 0, -{ 217: } -99, -{ 218: } -95, +{ 217: } 0, +{ 218: } -101, { 219: } 0, -{ 220: } -73, +{ 220: } 0, { 221: } 0, -{ 222: } -2, -{ 223: } -28, +{ 222: } 0, +{ 223: } 0, { 224: } 0, -{ 225: } -153, -{ 226: } 0, -{ 227: } -143, -{ 228: } -146, -{ 229: } 0, +{ 225: } -107, +{ 226: } -103, +{ 227: } -27, +{ 228: } -21, +{ 229: } -23, { 230: } 0, { 231: } 0, -{ 232: } 0, +{ 232: } -81, { 233: } 0, -{ 234: } 0, -{ 235: } -125, +{ 234: } -2, +{ 235: } -36, { 236: } 0, -{ 237: } 0, +{ 237: } -162, { 238: } 0, -{ 239: } 0, -{ 240: } 0, +{ 239: } -152, +{ 240: } -155, { 241: } 0, { 242: } 0, { 243: } 0, @@ -6343,12 +6895,12 @@ yyd : array [0..yynstates-1] of Integer = ( { 246: } 0, { 247: } 0, { 248: } 0, -{ 249: } -139, +{ 249: } 0, { 250: } 0, -{ 251: } 0, -{ 252: } -80, +{ 251: } -134, +{ 252: } 0, { 253: } 0, -{ 254: } -104, +{ 254: } 0, { 255: } 0, { 256: } 0, { 257: } 0, @@ -6356,13 +6908,13 @@ yyd : array [0..yynstates-1] of Integer = ( { 259: } 0, { 260: } 0, { 261: } 0, -{ 262: } 0, +{ 262: } -148, { 263: } 0, { 264: } 0, -{ 265: } -19, +{ 265: } -88, { 266: } 0, -{ 267: } 0, -{ 268: } -155, +{ 267: } -112, +{ 268: } 0, { 269: } 0, { 270: } 0, { 271: } 0, @@ -6371,20 +6923,36 @@ yyd : array [0..yynstates-1] of Integer = ( { 274: } 0, { 275: } 0, { 276: } 0, -{ 277: } -96, -{ 278: } -107, -{ 279: } 0, +{ 277: } 0, +{ 278: } 0, +{ 279: } -19, { 280: } 0, -{ 281: } -154, -{ 282: } 0, +{ 281: } 0, +{ 282: } -164, { 283: } 0, { 284: } 0, -{ 285: } -103, -{ 286: } -105, +{ 285: } 0, +{ 286: } 0, { 287: } 0, { 288: } 0, -{ 289: } -24, -{ 290: } -145 +{ 289: } 0, +{ 290: } 0, +{ 291: } -104, +{ 292: } -115, +{ 293: } 0, +{ 294: } 0, +{ 295: } 0, +{ 296: } -163, +{ 297: } 0, +{ 298: } 0, +{ 299: } 0, +{ 300: } -111, +{ 301: } -113, +{ 302: } -22, +{ 303: } 0, +{ 304: } 0, +{ 305: } -32, +{ 306: } -154 ); yyal : array [0..yynstates-1] of Integer = ( @@ -6413,272 +6981,288 @@ yyal : array [0..yynstates-1] of Integer = ( { 22: } 90, { 23: } 93, { 24: } 93, -{ 25: } 135, -{ 26: } 184, -{ 27: } 227, -{ 28: } 227, -{ 29: } 227, -{ 30: } 227, -{ 31: } 227, -{ 32: } 240, -{ 33: } 248, -{ 34: } 248, -{ 35: } 248, -{ 36: } 250, -{ 37: } 266, -{ 38: } 283, -{ 39: } 286, -{ 40: } 289, -{ 41: } 310, -{ 42: } 331, -{ 43: } 352, -{ 44: } 361, -{ 45: } 361, -{ 46: } 361, -{ 47: } 361, -{ 48: } 361, -{ 49: } 361, -{ 50: } 361, -{ 51: } 361, -{ 52: } 381, -{ 53: } 381, -{ 54: } 394, -{ 55: } 414, -{ 56: } 414, -{ 57: } 414, -{ 58: } 416, -{ 59: } 416, -{ 60: } 416, -{ 61: } 458, -{ 62: } 458, -{ 63: } 458, -{ 64: } 458, -{ 65: } 458, -{ 66: } 458, -{ 67: } 467, -{ 68: } 482, -{ 69: } 482, -{ 70: } 499, -{ 71: } 501, -{ 72: } 501, -{ 73: } 517, -{ 74: } 538, -{ 75: } 559, -{ 76: } 559, -{ 77: } 560, -{ 78: } 565, -{ 79: } 568, -{ 80: } 575, -{ 81: } 575, -{ 82: } 583, -{ 83: } 591, -{ 84: } 591, -{ 85: } 591, -{ 86: } 591, -{ 87: } 599, -{ 88: } 607, -{ 89: } 607, -{ 90: } 608, -{ 91: } 622, -{ 92: } 623, -{ 93: } 632, -{ 94: } 632, -{ 95: } 633, -{ 96: } 636, -{ 97: } 637, -{ 98: } 641, -{ 99: } 641, -{ 100: } 643, -{ 101: } 651, -{ 102: } 652, -{ 103: } 653, -{ 104: } 657, -{ 105: } 657, -{ 106: } 658, -{ 107: } 686, -{ 108: } 706, -{ 109: } 706, -{ 110: } 706, -{ 111: } 706, -{ 112: } 721, -{ 113: } 736, -{ 114: } 751, -{ 115: } 751, -{ 116: } 751, -{ 117: } 759, -{ 118: } 759, -{ 119: } 774, -{ 120: } 790, -{ 121: } 791, -{ 122: } 799, -{ 123: } 800, -{ 124: } 815, -{ 125: } 830, -{ 126: } 833, -{ 127: } 836, -{ 128: } 842, -{ 129: } 848, -{ 130: } 854, -{ 131: } 854, -{ 132: } 854, -{ 133: } 854, -{ 134: } 856, -{ 135: } 856, -{ 136: } 859, -{ 137: } 859, -{ 138: } 874, -{ 139: } 874, -{ 140: } 877, -{ 141: } 877, -{ 142: } 879, -{ 143: } 894, -{ 144: } 909, -{ 145: } 909, -{ 146: } 925, -{ 147: } 941, -{ 148: } 969, -{ 149: } 986, -{ 150: } 1002, +{ 25: } 137, +{ 26: } 188, +{ 27: } 233, +{ 28: } 233, +{ 29: } 233, +{ 30: } 233, +{ 31: } 233, +{ 32: } 246, +{ 33: } 254, +{ 34: } 254, +{ 35: } 254, +{ 36: } 256, +{ 37: } 272, +{ 38: } 289, +{ 39: } 292, +{ 40: } 295, +{ 41: } 316, +{ 42: } 337, +{ 43: } 358, +{ 44: } 367, +{ 45: } 367, +{ 46: } 367, +{ 47: } 367, +{ 48: } 367, +{ 49: } 367, +{ 50: } 367, +{ 51: } 367, +{ 52: } 387, +{ 53: } 387, +{ 54: } 400, +{ 55: } 420, +{ 56: } 420, +{ 57: } 420, +{ 58: } 422, +{ 59: } 422, +{ 60: } 422, +{ 61: } 466, +{ 62: } 466, +{ 63: } 466, +{ 64: } 466, +{ 65: } 466, +{ 66: } 466, +{ 67: } 475, +{ 68: } 490, +{ 69: } 490, +{ 70: } 507, +{ 71: } 509, +{ 72: } 509, +{ 73: } 525, +{ 74: } 546, +{ 75: } 567, +{ 76: } 567, +{ 77: } 568, +{ 78: } 574, +{ 79: } 578, +{ 80: } 586, +{ 81: } 586, +{ 82: } 594, +{ 83: } 602, +{ 84: } 602, +{ 85: } 602, +{ 86: } 602, +{ 87: } 610, +{ 88: } 618, +{ 89: } 618, +{ 90: } 619, +{ 91: } 633, +{ 92: } 634, +{ 93: } 643, +{ 94: } 643, +{ 95: } 644, +{ 96: } 647, +{ 97: } 648, +{ 98: } 652, +{ 99: } 652, +{ 100: } 654, +{ 101: } 662, +{ 102: } 663, +{ 103: } 664, +{ 104: } 668, +{ 105: } 668, +{ 106: } 669, +{ 107: } 699, +{ 108: } 719, +{ 109: } 719, +{ 110: } 719, +{ 111: } 719, +{ 112: } 734, +{ 113: } 749, +{ 114: } 764, +{ 115: } 764, +{ 116: } 764, +{ 117: } 772, +{ 118: } 772, +{ 119: } 787, +{ 120: } 803, +{ 121: } 803, +{ 122: } 804, +{ 123: } 812, +{ 124: } 830, +{ 125: } 831, +{ 126: } 846, +{ 127: } 861, +{ 128: } 865, +{ 129: } 868, +{ 130: } 875, +{ 131: } 882, +{ 132: } 889, +{ 133: } 889, +{ 134: } 889, +{ 135: } 889, +{ 136: } 891, +{ 137: } 891, +{ 138: } 894, +{ 139: } 894, +{ 140: } 909, +{ 141: } 909, +{ 142: } 912, +{ 143: } 912, +{ 144: } 914, +{ 145: } 929, +{ 146: } 944, +{ 147: } 944, +{ 148: } 960, +{ 149: } 976, +{ 150: } 1006, { 151: } 1024, -{ 152: } 1029, -{ 153: } 1053, -{ 154: } 1068, -{ 155: } 1096, -{ 156: } 1124, -{ 157: } 1152, -{ 158: } 1158, -{ 159: } 1160, -{ 160: } 1161, -{ 161: } 1172, -{ 162: } 1172, -{ 163: } 1183, -{ 164: } 1183, -{ 165: } 1183, -{ 166: } 1200, -{ 167: } 1200, -{ 168: } 1200, -{ 169: } 1205, -{ 170: } 1206, -{ 171: } 1228, -{ 172: } 1250, -{ 173: } 1259, -{ 174: } 1259, -{ 175: } 1259, -{ 176: } 1259, -{ 177: } 1278, -{ 178: } 1280, -{ 179: } 1281, -{ 180: } 1282, -{ 181: } 1297, -{ 182: } 1297, -{ 183: } 1297, -{ 184: } 1300, -{ 185: } 1301, -{ 186: } 1320, -{ 187: } 1321, -{ 188: } 1321, -{ 189: } 1336, -{ 190: } 1351, -{ 191: } 1366, -{ 192: } 1381, -{ 193: } 1396, -{ 194: } 1411, -{ 195: } 1426, -{ 196: } 1441, -{ 197: } 1456, -{ 198: } 1471, -{ 199: } 1486, -{ 200: } 1501, -{ 201: } 1516, -{ 202: } 1531, -{ 203: } 1546, -{ 204: } 1561, -{ 205: } 1562, -{ 206: } 1577, -{ 207: } 1578, -{ 208: } 1617, -{ 209: } 1620, -{ 210: } 1635, -{ 211: } 1635, -{ 212: } 1636, -{ 213: } 1640, -{ 214: } 1644, -{ 215: } 1654, -{ 216: } 1665, -{ 217: } 1676, -{ 218: } 1676, -{ 219: } 1676, -{ 220: } 1677, -{ 221: } 1677, -{ 222: } 1678, -{ 223: } 1678, -{ 224: } 1678, -{ 225: } 1693, -{ 226: } 1693, -{ 227: } 1710, -{ 228: } 1710, -{ 229: } 1710, -{ 230: } 1738, -{ 231: } 1766, -{ 232: } 1794, -{ 233: } 1822, -{ 234: } 1850, -{ 235: } 1878, -{ 236: } 1878, -{ 237: } 1895, -{ 238: } 1923, -{ 239: } 1951, -{ 240: } 1979, -{ 241: } 2007, -{ 242: } 2035, -{ 243: } 2063, -{ 244: } 2091, -{ 245: } 2119, -{ 246: } 2147, -{ 247: } 2148, -{ 248: } 2176, -{ 249: } 2191, -{ 250: } 2191, -{ 251: } 2219, -{ 252: } 2221, -{ 253: } 2221, -{ 254: } 2232, -{ 255: } 2232, -{ 256: } 2247, -{ 257: } 2262, -{ 258: } 2278, -{ 259: } 2281, -{ 260: } 2284, -{ 261: } 2295, -{ 262: } 2299, -{ 263: } 2303, -{ 264: } 2307, -{ 265: } 2311, -{ 266: } 2311, -{ 267: } 2326, -{ 268: } 2327, -{ 269: } 2327, -{ 270: } 2342, -{ 271: } 2357, -{ 272: } 2385, -{ 273: } 2386, -{ 274: } 2390, -{ 275: } 2394, -{ 276: } 2395, -{ 277: } 2412, -{ 278: } 2412, -{ 279: } 2412, -{ 280: } 2416, -{ 281: } 2417, -{ 282: } 2417, -{ 283: } 2445, -{ 284: } 2473, -{ 285: } 2489, -{ 286: } 2489, -{ 287: } 2489, -{ 288: } 2490, -{ 289: } 2491, -{ 290: } 2491 +{ 152: } 1047, +{ 153: } 1052, +{ 154: } 1069, +{ 155: } 1094, +{ 156: } 1109, +{ 157: } 1139, +{ 158: } 1169, +{ 159: } 1199, +{ 160: } 1206, +{ 161: } 1208, +{ 162: } 1209, +{ 163: } 1220, +{ 164: } 1220, +{ 165: } 1231, +{ 166: } 1231, +{ 167: } 1231, +{ 168: } 1249, +{ 169: } 1249, +{ 170: } 1249, +{ 171: } 1255, +{ 172: } 1256, +{ 173: } 1274, +{ 174: } 1292, +{ 175: } 1293, +{ 176: } 1293, +{ 177: } 1294, +{ 178: } 1318, +{ 179: } 1342, +{ 180: } 1351, +{ 181: } 1351, +{ 182: } 1351, +{ 183: } 1351, +{ 184: } 1371, +{ 185: } 1373, +{ 186: } 1374, +{ 187: } 1375, +{ 188: } 1390, +{ 189: } 1390, +{ 190: } 1390, +{ 191: } 1393, +{ 192: } 1394, +{ 193: } 1414, +{ 194: } 1415, +{ 195: } 1415, +{ 196: } 1416, +{ 197: } 1431, +{ 198: } 1432, +{ 199: } 1447, +{ 200: } 1462, +{ 201: } 1477, +{ 202: } 1492, +{ 203: } 1507, +{ 204: } 1522, +{ 205: } 1537, +{ 206: } 1552, +{ 207: } 1567, +{ 208: } 1582, +{ 209: } 1597, +{ 210: } 1612, +{ 211: } 1627, +{ 212: } 1642, +{ 213: } 1657, +{ 214: } 1672, +{ 215: } 1687, +{ 216: } 1728, +{ 217: } 1731, +{ 218: } 1746, +{ 219: } 1746, +{ 220: } 1747, +{ 221: } 1751, +{ 222: } 1755, +{ 223: } 1765, +{ 224: } 1776, +{ 225: } 1787, +{ 226: } 1787, +{ 227: } 1787, +{ 228: } 1787, +{ 229: } 1787, +{ 230: } 1787, +{ 231: } 1802, +{ 232: } 1803, +{ 233: } 1803, +{ 234: } 1804, +{ 235: } 1804, +{ 236: } 1804, +{ 237: } 1819, +{ 238: } 1819, +{ 239: } 1836, +{ 240: } 1836, +{ 241: } 1836, +{ 242: } 1837, +{ 243: } 1867, +{ 244: } 1882, +{ 245: } 1912, +{ 246: } 1942, +{ 247: } 1972, +{ 248: } 2002, +{ 249: } 2032, +{ 250: } 2062, +{ 251: } 2092, +{ 252: } 2092, +{ 253: } 2110, +{ 254: } 2140, +{ 255: } 2170, +{ 256: } 2200, +{ 257: } 2230, +{ 258: } 2260, +{ 259: } 2290, +{ 260: } 2320, +{ 261: } 2350, +{ 262: } 2380, +{ 263: } 2380, +{ 264: } 2410, +{ 265: } 2412, +{ 266: } 2412, +{ 267: } 2423, +{ 268: } 2423, +{ 269: } 2438, +{ 270: } 2453, +{ 271: } 2469, +{ 272: } 2472, +{ 273: } 2475, +{ 274: } 2486, +{ 275: } 2490, +{ 276: } 2494, +{ 277: } 2498, +{ 278: } 2502, +{ 279: } 2520, +{ 280: } 2520, +{ 281: } 2535, +{ 282: } 2536, +{ 283: } 2536, +{ 284: } 2551, +{ 285: } 2581, +{ 286: } 2596, +{ 287: } 2597, +{ 288: } 2601, +{ 289: } 2605, +{ 290: } 2606, +{ 291: } 2624, +{ 292: } 2624, +{ 293: } 2624, +{ 294: } 2628, +{ 295: } 2646, +{ 296: } 2647, +{ 297: } 2647, +{ 298: } 2677, +{ 299: } 2707, +{ 300: } 2723, +{ 301: } 2723, +{ 302: } 2723, +{ 303: } 2723, +{ 304: } 2724, +{ 305: } 2725, +{ 306: } 2725 ); yyah : array [0..yynstates-1] of Integer = ( @@ -6706,273 +7290,289 @@ yyah : array [0..yynstates-1] of Integer = ( { 21: } 89, { 22: } 92, { 23: } 92, -{ 24: } 134, -{ 25: } 183, -{ 26: } 226, -{ 27: } 226, -{ 28: } 226, -{ 29: } 226, -{ 30: } 226, -{ 31: } 239, -{ 32: } 247, -{ 33: } 247, -{ 34: } 247, -{ 35: } 249, -{ 36: } 265, -{ 37: } 282, -{ 38: } 285, -{ 39: } 288, -{ 40: } 309, -{ 41: } 330, -{ 42: } 351, -{ 43: } 360, -{ 44: } 360, -{ 45: } 360, -{ 46: } 360, -{ 47: } 360, -{ 48: } 360, -{ 49: } 360, -{ 50: } 360, -{ 51: } 380, -{ 52: } 380, -{ 53: } 393, -{ 54: } 413, -{ 55: } 413, -{ 56: } 413, -{ 57: } 415, -{ 58: } 415, -{ 59: } 415, -{ 60: } 457, -{ 61: } 457, -{ 62: } 457, -{ 63: } 457, -{ 64: } 457, -{ 65: } 457, -{ 66: } 466, -{ 67: } 481, -{ 68: } 481, -{ 69: } 498, -{ 70: } 500, -{ 71: } 500, -{ 72: } 516, -{ 73: } 537, -{ 74: } 558, -{ 75: } 558, -{ 76: } 559, -{ 77: } 564, -{ 78: } 567, -{ 79: } 574, -{ 80: } 574, -{ 81: } 582, -{ 82: } 590, -{ 83: } 590, -{ 84: } 590, -{ 85: } 590, -{ 86: } 598, -{ 87: } 606, -{ 88: } 606, -{ 89: } 607, -{ 90: } 621, -{ 91: } 622, -{ 92: } 631, -{ 93: } 631, -{ 94: } 632, -{ 95: } 635, -{ 96: } 636, -{ 97: } 640, -{ 98: } 640, -{ 99: } 642, -{ 100: } 650, -{ 101: } 651, -{ 102: } 652, -{ 103: } 656, -{ 104: } 656, -{ 105: } 657, -{ 106: } 685, -{ 107: } 705, -{ 108: } 705, -{ 109: } 705, -{ 110: } 705, -{ 111: } 720, -{ 112: } 735, -{ 113: } 750, -{ 114: } 750, -{ 115: } 750, -{ 116: } 758, -{ 117: } 758, -{ 118: } 773, -{ 119: } 789, -{ 120: } 790, -{ 121: } 798, -{ 122: } 799, -{ 123: } 814, -{ 124: } 829, -{ 125: } 832, -{ 126: } 835, -{ 127: } 841, -{ 128: } 847, -{ 129: } 853, -{ 130: } 853, -{ 131: } 853, -{ 132: } 853, -{ 133: } 855, -{ 134: } 855, -{ 135: } 858, -{ 136: } 858, -{ 137: } 873, -{ 138: } 873, -{ 139: } 876, -{ 140: } 876, -{ 141: } 878, -{ 142: } 893, -{ 143: } 908, -{ 144: } 908, -{ 145: } 924, -{ 146: } 940, -{ 147: } 968, -{ 148: } 985, -{ 149: } 1001, +{ 24: } 136, +{ 25: } 187, +{ 26: } 232, +{ 27: } 232, +{ 28: } 232, +{ 29: } 232, +{ 30: } 232, +{ 31: } 245, +{ 32: } 253, +{ 33: } 253, +{ 34: } 253, +{ 35: } 255, +{ 36: } 271, +{ 37: } 288, +{ 38: } 291, +{ 39: } 294, +{ 40: } 315, +{ 41: } 336, +{ 42: } 357, +{ 43: } 366, +{ 44: } 366, +{ 45: } 366, +{ 46: } 366, +{ 47: } 366, +{ 48: } 366, +{ 49: } 366, +{ 50: } 366, +{ 51: } 386, +{ 52: } 386, +{ 53: } 399, +{ 54: } 419, +{ 55: } 419, +{ 56: } 419, +{ 57: } 421, +{ 58: } 421, +{ 59: } 421, +{ 60: } 465, +{ 61: } 465, +{ 62: } 465, +{ 63: } 465, +{ 64: } 465, +{ 65: } 465, +{ 66: } 474, +{ 67: } 489, +{ 68: } 489, +{ 69: } 506, +{ 70: } 508, +{ 71: } 508, +{ 72: } 524, +{ 73: } 545, +{ 74: } 566, +{ 75: } 566, +{ 76: } 567, +{ 77: } 573, +{ 78: } 577, +{ 79: } 585, +{ 80: } 585, +{ 81: } 593, +{ 82: } 601, +{ 83: } 601, +{ 84: } 601, +{ 85: } 601, +{ 86: } 609, +{ 87: } 617, +{ 88: } 617, +{ 89: } 618, +{ 90: } 632, +{ 91: } 633, +{ 92: } 642, +{ 93: } 642, +{ 94: } 643, +{ 95: } 646, +{ 96: } 647, +{ 97: } 651, +{ 98: } 651, +{ 99: } 653, +{ 100: } 661, +{ 101: } 662, +{ 102: } 663, +{ 103: } 667, +{ 104: } 667, +{ 105: } 668, +{ 106: } 698, +{ 107: } 718, +{ 108: } 718, +{ 109: } 718, +{ 110: } 718, +{ 111: } 733, +{ 112: } 748, +{ 113: } 763, +{ 114: } 763, +{ 115: } 763, +{ 116: } 771, +{ 117: } 771, +{ 118: } 786, +{ 119: } 802, +{ 120: } 802, +{ 121: } 803, +{ 122: } 811, +{ 123: } 829, +{ 124: } 830, +{ 125: } 845, +{ 126: } 860, +{ 127: } 864, +{ 128: } 867, +{ 129: } 874, +{ 130: } 881, +{ 131: } 888, +{ 132: } 888, +{ 133: } 888, +{ 134: } 888, +{ 135: } 890, +{ 136: } 890, +{ 137: } 893, +{ 138: } 893, +{ 139: } 908, +{ 140: } 908, +{ 141: } 911, +{ 142: } 911, +{ 143: } 913, +{ 144: } 928, +{ 145: } 943, +{ 146: } 943, +{ 147: } 959, +{ 148: } 975, +{ 149: } 1005, { 150: } 1023, -{ 151: } 1028, -{ 152: } 1052, -{ 153: } 1067, -{ 154: } 1095, -{ 155: } 1123, -{ 156: } 1151, -{ 157: } 1157, -{ 158: } 1159, -{ 159: } 1160, -{ 160: } 1171, -{ 161: } 1171, -{ 162: } 1182, -{ 163: } 1182, -{ 164: } 1182, -{ 165: } 1199, -{ 166: } 1199, -{ 167: } 1199, -{ 168: } 1204, -{ 169: } 1205, -{ 170: } 1227, -{ 171: } 1249, -{ 172: } 1258, -{ 173: } 1258, -{ 174: } 1258, -{ 175: } 1258, -{ 176: } 1277, -{ 177: } 1279, -{ 178: } 1280, -{ 179: } 1281, -{ 180: } 1296, -{ 181: } 1296, -{ 182: } 1296, -{ 183: } 1299, -{ 184: } 1300, -{ 185: } 1319, -{ 186: } 1320, -{ 187: } 1320, -{ 188: } 1335, -{ 189: } 1350, -{ 190: } 1365, -{ 191: } 1380, -{ 192: } 1395, -{ 193: } 1410, -{ 194: } 1425, -{ 195: } 1440, -{ 196: } 1455, -{ 197: } 1470, -{ 198: } 1485, -{ 199: } 1500, -{ 200: } 1515, -{ 201: } 1530, -{ 202: } 1545, -{ 203: } 1560, -{ 204: } 1561, -{ 205: } 1576, -{ 206: } 1577, -{ 207: } 1616, -{ 208: } 1619, -{ 209: } 1634, -{ 210: } 1634, -{ 211: } 1635, -{ 212: } 1639, -{ 213: } 1643, -{ 214: } 1653, -{ 215: } 1664, -{ 216: } 1675, -{ 217: } 1675, -{ 218: } 1675, -{ 219: } 1676, -{ 220: } 1676, -{ 221: } 1677, -{ 222: } 1677, -{ 223: } 1677, -{ 224: } 1692, -{ 225: } 1692, -{ 226: } 1709, -{ 227: } 1709, -{ 228: } 1709, -{ 229: } 1737, -{ 230: } 1765, -{ 231: } 1793, -{ 232: } 1821, -{ 233: } 1849, -{ 234: } 1877, -{ 235: } 1877, -{ 236: } 1894, -{ 237: } 1922, -{ 238: } 1950, -{ 239: } 1978, -{ 240: } 2006, -{ 241: } 2034, -{ 242: } 2062, -{ 243: } 2090, -{ 244: } 2118, -{ 245: } 2146, -{ 246: } 2147, -{ 247: } 2175, -{ 248: } 2190, -{ 249: } 2190, -{ 250: } 2218, -{ 251: } 2220, -{ 252: } 2220, -{ 253: } 2231, -{ 254: } 2231, -{ 255: } 2246, -{ 256: } 2261, -{ 257: } 2277, -{ 258: } 2280, -{ 259: } 2283, -{ 260: } 2294, -{ 261: } 2298, -{ 262: } 2302, -{ 263: } 2306, -{ 264: } 2310, -{ 265: } 2310, -{ 266: } 2325, -{ 267: } 2326, -{ 268: } 2326, -{ 269: } 2341, -{ 270: } 2356, -{ 271: } 2384, -{ 272: } 2385, -{ 273: } 2389, -{ 274: } 2393, -{ 275: } 2394, -{ 276: } 2411, -{ 277: } 2411, -{ 278: } 2411, -{ 279: } 2415, -{ 280: } 2416, -{ 281: } 2416, -{ 282: } 2444, -{ 283: } 2472, -{ 284: } 2488, -{ 285: } 2488, -{ 286: } 2488, -{ 287: } 2489, -{ 288: } 2490, -{ 289: } 2490, -{ 290: } 2490 +{ 151: } 1046, +{ 152: } 1051, +{ 153: } 1068, +{ 154: } 1093, +{ 155: } 1108, +{ 156: } 1138, +{ 157: } 1168, +{ 158: } 1198, +{ 159: } 1205, +{ 160: } 1207, +{ 161: } 1208, +{ 162: } 1219, +{ 163: } 1219, +{ 164: } 1230, +{ 165: } 1230, +{ 166: } 1230, +{ 167: } 1248, +{ 168: } 1248, +{ 169: } 1248, +{ 170: } 1254, +{ 171: } 1255, +{ 172: } 1273, +{ 173: } 1291, +{ 174: } 1292, +{ 175: } 1292, +{ 176: } 1293, +{ 177: } 1317, +{ 178: } 1341, +{ 179: } 1350, +{ 180: } 1350, +{ 181: } 1350, +{ 182: } 1350, +{ 183: } 1370, +{ 184: } 1372, +{ 185: } 1373, +{ 186: } 1374, +{ 187: } 1389, +{ 188: } 1389, +{ 189: } 1389, +{ 190: } 1392, +{ 191: } 1393, +{ 192: } 1413, +{ 193: } 1414, +{ 194: } 1414, +{ 195: } 1415, +{ 196: } 1430, +{ 197: } 1431, +{ 198: } 1446, +{ 199: } 1461, +{ 200: } 1476, +{ 201: } 1491, +{ 202: } 1506, +{ 203: } 1521, +{ 204: } 1536, +{ 205: } 1551, +{ 206: } 1566, +{ 207: } 1581, +{ 208: } 1596, +{ 209: } 1611, +{ 210: } 1626, +{ 211: } 1641, +{ 212: } 1656, +{ 213: } 1671, +{ 214: } 1686, +{ 215: } 1727, +{ 216: } 1730, +{ 217: } 1745, +{ 218: } 1745, +{ 219: } 1746, +{ 220: } 1750, +{ 221: } 1754, +{ 222: } 1764, +{ 223: } 1775, +{ 224: } 1786, +{ 225: } 1786, +{ 226: } 1786, +{ 227: } 1786, +{ 228: } 1786, +{ 229: } 1786, +{ 230: } 1801, +{ 231: } 1802, +{ 232: } 1802, +{ 233: } 1803, +{ 234: } 1803, +{ 235: } 1803, +{ 236: } 1818, +{ 237: } 1818, +{ 238: } 1835, +{ 239: } 1835, +{ 240: } 1835, +{ 241: } 1836, +{ 242: } 1866, +{ 243: } 1881, +{ 244: } 1911, +{ 245: } 1941, +{ 246: } 1971, +{ 247: } 2001, +{ 248: } 2031, +{ 249: } 2061, +{ 250: } 2091, +{ 251: } 2091, +{ 252: } 2109, +{ 253: } 2139, +{ 254: } 2169, +{ 255: } 2199, +{ 256: } 2229, +{ 257: } 2259, +{ 258: } 2289, +{ 259: } 2319, +{ 260: } 2349, +{ 261: } 2379, +{ 262: } 2379, +{ 263: } 2409, +{ 264: } 2411, +{ 265: } 2411, +{ 266: } 2422, +{ 267: } 2422, +{ 268: } 2437, +{ 269: } 2452, +{ 270: } 2468, +{ 271: } 2471, +{ 272: } 2474, +{ 273: } 2485, +{ 274: } 2489, +{ 275: } 2493, +{ 276: } 2497, +{ 277: } 2501, +{ 278: } 2519, +{ 279: } 2519, +{ 280: } 2534, +{ 281: } 2535, +{ 282: } 2535, +{ 283: } 2550, +{ 284: } 2580, +{ 285: } 2595, +{ 286: } 2596, +{ 287: } 2600, +{ 288: } 2604, +{ 289: } 2605, +{ 290: } 2623, +{ 291: } 2623, +{ 292: } 2623, +{ 293: } 2627, +{ 294: } 2645, +{ 295: } 2646, +{ 296: } 2646, +{ 297: } 2676, +{ 298: } 2706, +{ 299: } 2722, +{ 300: } 2722, +{ 301: } 2722, +{ 302: } 2722, +{ 303: } 2723, +{ 304: } 2724, +{ 305: } 2724, +{ 306: } 2724 ); yygl : array [0..yynstates-1] of Integer = ( @@ -7055,218 +7655,234 @@ yygl : array [0..yynstates-1] of Integer = ( { 76: } 76, { 77: } 76, { 78: } 77, -{ 79: } 78, -{ 80: } 79, -{ 81: } 80, -{ 82: } 83, -{ 83: } 86, -{ 84: } 86, -{ 85: } 86, -{ 86: } 86, -{ 87: } 89, -{ 88: } 92, -{ 89: } 92, -{ 90: } 92, -{ 91: } 99, -{ 92: } 99, -{ 93: } 103, -{ 94: } 103, -{ 95: } 103, -{ 96: } 103, -{ 97: } 103, -{ 98: } 103, -{ 99: } 103, -{ 100: } 103, -{ 101: } 106, -{ 102: } 106, -{ 103: } 106, -{ 104: } 106, -{ 105: } 106, -{ 106: } 106, -{ 107: } 106, -{ 108: } 114, -{ 109: } 114, -{ 110: } 114, -{ 111: } 114, -{ 112: } 117, -{ 113: } 120, -{ 114: } 123, -{ 115: } 123, -{ 116: } 123, -{ 117: } 126, -{ 118: } 126, -{ 119: } 133, -{ 120: } 138, -{ 121: } 138, -{ 122: } 141, -{ 123: } 141, -{ 124: } 146, -{ 125: } 151, -{ 126: } 151, -{ 127: } 152, -{ 128: } 153, -{ 129: } 154, -{ 130: } 155, -{ 131: } 155, -{ 132: } 155, -{ 133: } 155, -{ 134: } 155, -{ 135: } 155, -{ 136: } 158, -{ 137: } 158, -{ 138: } 163, -{ 139: } 163, -{ 140: } 164, -{ 141: } 164, -{ 142: } 166, -{ 143: } 171, -{ 144: } 176, -{ 145: } 176, -{ 146: } 183, -{ 147: } 190, -{ 148: } 190, -{ 149: } 190, -{ 150: } 190, -{ 151: } 190, -{ 152: } 191, -{ 153: } 191, -{ 154: } 194, -{ 155: } 194, -{ 156: } 194, -{ 157: } 194, -{ 158: } 195, -{ 159: } 195, -{ 160: } 195, -{ 161: } 199, -{ 162: } 199, -{ 163: } 199, -{ 164: } 199, -{ 165: } 199, -{ 166: } 199, -{ 167: } 199, -{ 168: } 199, -{ 169: } 200, -{ 170: } 201, -{ 171: } 201, -{ 172: } 201, -{ 173: } 205, -{ 174: } 205, -{ 175: } 205, -{ 176: } 205, -{ 177: } 205, -{ 178: } 206, -{ 179: } 206, -{ 180: } 206, -{ 181: } 210, -{ 182: } 210, -{ 183: } 210, -{ 184: } 210, -{ 185: } 210, -{ 186: } 210, -{ 187: } 210, -{ 188: } 210, -{ 189: } 215, -{ 190: } 220, +{ 79: } 79, +{ 80: } 80, +{ 81: } 81, +{ 82: } 84, +{ 83: } 87, +{ 84: } 87, +{ 85: } 87, +{ 86: } 87, +{ 87: } 90, +{ 88: } 93, +{ 89: } 93, +{ 90: } 93, +{ 91: } 100, +{ 92: } 100, +{ 93: } 104, +{ 94: } 104, +{ 95: } 104, +{ 96: } 104, +{ 97: } 104, +{ 98: } 104, +{ 99: } 104, +{ 100: } 104, +{ 101: } 107, +{ 102: } 107, +{ 103: } 107, +{ 104: } 107, +{ 105: } 107, +{ 106: } 107, +{ 107: } 107, +{ 108: } 115, +{ 109: } 115, +{ 110: } 115, +{ 111: } 115, +{ 112: } 118, +{ 113: } 121, +{ 114: } 124, +{ 115: } 124, +{ 116: } 124, +{ 117: } 127, +{ 118: } 127, +{ 119: } 134, +{ 120: } 139, +{ 121: } 139, +{ 122: } 139, +{ 123: } 142, +{ 124: } 149, +{ 125: } 149, +{ 126: } 154, +{ 127: } 159, +{ 128: } 159, +{ 129: } 160, +{ 130: } 161, +{ 131: } 162, +{ 132: } 163, +{ 133: } 163, +{ 134: } 163, +{ 135: } 163, +{ 136: } 163, +{ 137: } 163, +{ 138: } 166, +{ 139: } 166, +{ 140: } 171, +{ 141: } 171, +{ 142: } 172, +{ 143: } 172, +{ 144: } 174, +{ 145: } 179, +{ 146: } 184, +{ 147: } 184, +{ 148: } 191, +{ 149: } 198, +{ 150: } 198, +{ 151: } 198, +{ 152: } 198, +{ 153: } 199, +{ 154: } 199, +{ 155: } 199, +{ 156: } 202, +{ 157: } 202, +{ 158: } 202, +{ 159: } 202, +{ 160: } 203, +{ 161: } 203, +{ 162: } 203, +{ 163: } 207, +{ 164: } 207, +{ 165: } 207, +{ 166: } 207, +{ 167: } 207, +{ 168: } 207, +{ 169: } 207, +{ 170: } 207, +{ 171: } 208, +{ 172: } 208, +{ 173: } 208, +{ 174: } 215, +{ 175: } 215, +{ 176: } 215, +{ 177: } 216, +{ 178: } 216, +{ 179: } 216, +{ 180: } 220, +{ 181: } 220, +{ 182: } 220, +{ 183: } 220, +{ 184: } 220, +{ 185: } 221, +{ 186: } 221, +{ 187: } 221, +{ 188: } 225, +{ 189: } 225, +{ 190: } 225, { 191: } 225, -{ 192: } 230, -{ 193: } 235, -{ 194: } 240, -{ 195: } 246, -{ 196: } 251, -{ 197: } 256, -{ 198: } 261, -{ 199: } 266, -{ 200: } 271, -{ 201: } 276, -{ 202: } 281, -{ 203: } 286, -{ 204: } 291, -{ 205: } 291, -{ 206: } 294, -{ 207: } 294, -{ 208: } 298, -{ 209: } 298, -{ 210: } 305, -{ 211: } 305, -{ 212: } 305, -{ 213: } 306, -{ 214: } 307, -{ 215: } 311, -{ 216: } 315, -{ 217: } 319, -{ 218: } 319, -{ 219: } 319, -{ 220: } 319, -{ 221: } 319, -{ 222: } 319, -{ 223: } 319, -{ 224: } 319, -{ 225: } 323, -{ 226: } 323, -{ 227: } 330, -{ 228: } 330, -{ 229: } 330, -{ 230: } 330, -{ 231: } 330, -{ 232: } 330, -{ 233: } 330, -{ 234: } 330, -{ 235: } 330, -{ 236: } 330, -{ 237: } 330, -{ 238: } 330, -{ 239: } 330, -{ 240: } 330, -{ 241: } 330, -{ 242: } 330, -{ 243: } 330, -{ 244: } 330, -{ 245: } 330, -{ 246: } 330, -{ 247: } 330, -{ 248: } 330, -{ 249: } 333, -{ 250: } 333, -{ 251: } 333, -{ 252: } 334, -{ 253: } 334, -{ 254: } 338, -{ 255: } 338, -{ 256: } 345, -{ 257: } 350, -{ 258: } 355, -{ 259: } 356, -{ 260: } 357, -{ 261: } 361, -{ 262: } 362, -{ 263: } 363, -{ 264: } 364, -{ 265: } 365, -{ 266: } 365, -{ 267: } 372, -{ 268: } 372, -{ 269: } 372, -{ 270: } 377, +{ 192: } 225, +{ 193: } 225, +{ 194: } 225, +{ 195: } 225, +{ 196: } 225, +{ 197: } 228, +{ 198: } 228, +{ 199: } 233, +{ 200: } 238, +{ 201: } 243, +{ 202: } 248, +{ 203: } 253, +{ 204: } 258, +{ 205: } 263, +{ 206: } 269, +{ 207: } 274, +{ 208: } 279, +{ 209: } 284, +{ 210: } 289, +{ 211: } 294, +{ 212: } 299, +{ 213: } 304, +{ 214: } 309, +{ 215: } 314, +{ 216: } 318, +{ 217: } 318, +{ 218: } 325, +{ 219: } 325, +{ 220: } 325, +{ 221: } 326, +{ 222: } 327, +{ 223: } 331, +{ 224: } 335, +{ 225: } 339, +{ 226: } 339, +{ 227: } 339, +{ 228: } 339, +{ 229: } 339, +{ 230: } 339, +{ 231: } 344, +{ 232: } 344, +{ 233: } 344, +{ 234: } 344, +{ 235: } 344, +{ 236: } 344, +{ 237: } 348, +{ 238: } 348, +{ 239: } 355, +{ 240: } 355, +{ 241: } 355, +{ 242: } 355, +{ 243: } 355, +{ 244: } 358, +{ 245: } 358, +{ 246: } 358, +{ 247: } 358, +{ 248: } 358, +{ 249: } 358, +{ 250: } 358, +{ 251: } 358, +{ 252: } 358, +{ 253: } 358, +{ 254: } 358, +{ 255: } 358, +{ 256: } 358, +{ 257: } 358, +{ 258: } 358, +{ 259: } 358, +{ 260: } 358, +{ 261: } 358, +{ 262: } 358, +{ 263: } 358, +{ 264: } 358, +{ 265: } 359, +{ 266: } 359, +{ 267: } 363, +{ 268: } 363, +{ 269: } 370, +{ 270: } 375, { 271: } 380, -{ 272: } 380, -{ 273: } 380, -{ 274: } 381, -{ 275: } 382, -{ 276: } 382, -{ 277: } 382, -{ 278: } 382, -{ 279: } 382, -{ 280: } 383, -{ 281: } 383, -{ 282: } 383, -{ 283: } 383, -{ 284: } 383, -{ 285: } 390, -{ 286: } 390, -{ 287: } 390, -{ 288: } 390, -{ 289: } 390, -{ 290: } 390 +{ 272: } 381, +{ 273: } 382, +{ 274: } 386, +{ 275: } 387, +{ 276: } 388, +{ 277: } 389, +{ 278: } 390, +{ 279: } 390, +{ 280: } 390, +{ 281: } 397, +{ 282: } 397, +{ 283: } 397, +{ 284: } 400, +{ 285: } 400, +{ 286: } 405, +{ 287: } 405, +{ 288: } 406, +{ 289: } 407, +{ 290: } 407, +{ 291: } 407, +{ 292: } 407, +{ 293: } 407, +{ 294: } 408, +{ 295: } 415, +{ 296: } 415, +{ 297: } 415, +{ 298: } 415, +{ 299: } 415, +{ 300: } 422, +{ 301: } 422, +{ 302: } 422, +{ 303: } 422, +{ 304: } 422, +{ 305: } 422, +{ 306: } 422 ); yygh : array [0..yynstates-1] of Integer = ( @@ -7348,219 +7964,235 @@ yygh : array [0..yynstates-1] of Integer = ( { 75: } 75, { 76: } 75, { 77: } 76, -{ 78: } 77, -{ 79: } 78, -{ 80: } 79, -{ 81: } 82, -{ 82: } 85, -{ 83: } 85, -{ 84: } 85, -{ 85: } 85, -{ 86: } 88, -{ 87: } 91, -{ 88: } 91, -{ 89: } 91, -{ 90: } 98, -{ 91: } 98, -{ 92: } 102, -{ 93: } 102, -{ 94: } 102, -{ 95: } 102, -{ 96: } 102, -{ 97: } 102, -{ 98: } 102, -{ 99: } 102, -{ 100: } 105, -{ 101: } 105, -{ 102: } 105, -{ 103: } 105, -{ 104: } 105, -{ 105: } 105, -{ 106: } 105, -{ 107: } 113, -{ 108: } 113, -{ 109: } 113, -{ 110: } 113, -{ 111: } 116, -{ 112: } 119, -{ 113: } 122, -{ 114: } 122, -{ 115: } 122, -{ 116: } 125, -{ 117: } 125, -{ 118: } 132, -{ 119: } 137, -{ 120: } 137, -{ 121: } 140, -{ 122: } 140, -{ 123: } 145, -{ 124: } 150, -{ 125: } 150, -{ 126: } 151, -{ 127: } 152, -{ 128: } 153, -{ 129: } 154, -{ 130: } 154, -{ 131: } 154, -{ 132: } 154, -{ 133: } 154, -{ 134: } 154, -{ 135: } 157, -{ 136: } 157, -{ 137: } 162, -{ 138: } 162, -{ 139: } 163, -{ 140: } 163, -{ 141: } 165, -{ 142: } 170, -{ 143: } 175, -{ 144: } 175, -{ 145: } 182, -{ 146: } 189, -{ 147: } 189, -{ 148: } 189, -{ 149: } 189, -{ 150: } 189, -{ 151: } 190, -{ 152: } 190, -{ 153: } 193, -{ 154: } 193, -{ 155: } 193, -{ 156: } 193, -{ 157: } 194, -{ 158: } 194, -{ 159: } 194, -{ 160: } 198, -{ 161: } 198, -{ 162: } 198, -{ 163: } 198, -{ 164: } 198, -{ 165: } 198, -{ 166: } 198, -{ 167: } 198, -{ 168: } 199, -{ 169: } 200, -{ 170: } 200, -{ 171: } 200, -{ 172: } 204, -{ 173: } 204, -{ 174: } 204, -{ 175: } 204, -{ 176: } 204, -{ 177: } 205, -{ 178: } 205, -{ 179: } 205, -{ 180: } 209, -{ 181: } 209, -{ 182: } 209, -{ 183: } 209, -{ 184: } 209, -{ 185: } 209, -{ 186: } 209, -{ 187: } 209, -{ 188: } 214, -{ 189: } 219, +{ 78: } 78, +{ 79: } 79, +{ 80: } 80, +{ 81: } 83, +{ 82: } 86, +{ 83: } 86, +{ 84: } 86, +{ 85: } 86, +{ 86: } 89, +{ 87: } 92, +{ 88: } 92, +{ 89: } 92, +{ 90: } 99, +{ 91: } 99, +{ 92: } 103, +{ 93: } 103, +{ 94: } 103, +{ 95: } 103, +{ 96: } 103, +{ 97: } 103, +{ 98: } 103, +{ 99: } 103, +{ 100: } 106, +{ 101: } 106, +{ 102: } 106, +{ 103: } 106, +{ 104: } 106, +{ 105: } 106, +{ 106: } 106, +{ 107: } 114, +{ 108: } 114, +{ 109: } 114, +{ 110: } 114, +{ 111: } 117, +{ 112: } 120, +{ 113: } 123, +{ 114: } 123, +{ 115: } 123, +{ 116: } 126, +{ 117: } 126, +{ 118: } 133, +{ 119: } 138, +{ 120: } 138, +{ 121: } 138, +{ 122: } 141, +{ 123: } 148, +{ 124: } 148, +{ 125: } 153, +{ 126: } 158, +{ 127: } 158, +{ 128: } 159, +{ 129: } 160, +{ 130: } 161, +{ 131: } 162, +{ 132: } 162, +{ 133: } 162, +{ 134: } 162, +{ 135: } 162, +{ 136: } 162, +{ 137: } 165, +{ 138: } 165, +{ 139: } 170, +{ 140: } 170, +{ 141: } 171, +{ 142: } 171, +{ 143: } 173, +{ 144: } 178, +{ 145: } 183, +{ 146: } 183, +{ 147: } 190, +{ 148: } 197, +{ 149: } 197, +{ 150: } 197, +{ 151: } 197, +{ 152: } 198, +{ 153: } 198, +{ 154: } 198, +{ 155: } 201, +{ 156: } 201, +{ 157: } 201, +{ 158: } 201, +{ 159: } 202, +{ 160: } 202, +{ 161: } 202, +{ 162: } 206, +{ 163: } 206, +{ 164: } 206, +{ 165: } 206, +{ 166: } 206, +{ 167: } 206, +{ 168: } 206, +{ 169: } 206, +{ 170: } 207, +{ 171: } 207, +{ 172: } 207, +{ 173: } 214, +{ 174: } 214, +{ 175: } 214, +{ 176: } 215, +{ 177: } 215, +{ 178: } 215, +{ 179: } 219, +{ 180: } 219, +{ 181: } 219, +{ 182: } 219, +{ 183: } 219, +{ 184: } 220, +{ 185: } 220, +{ 186: } 220, +{ 187: } 224, +{ 188: } 224, +{ 189: } 224, { 190: } 224, -{ 191: } 229, -{ 192: } 234, -{ 193: } 239, -{ 194: } 245, -{ 195: } 250, -{ 196: } 255, -{ 197: } 260, -{ 198: } 265, -{ 199: } 270, -{ 200: } 275, -{ 201: } 280, -{ 202: } 285, -{ 203: } 290, -{ 204: } 290, -{ 205: } 293, -{ 206: } 293, -{ 207: } 297, -{ 208: } 297, -{ 209: } 304, -{ 210: } 304, -{ 211: } 304, -{ 212: } 305, -{ 213: } 306, -{ 214: } 310, -{ 215: } 314, -{ 216: } 318, -{ 217: } 318, -{ 218: } 318, -{ 219: } 318, -{ 220: } 318, -{ 221: } 318, -{ 222: } 318, -{ 223: } 318, -{ 224: } 322, -{ 225: } 322, -{ 226: } 329, -{ 227: } 329, -{ 228: } 329, -{ 229: } 329, -{ 230: } 329, -{ 231: } 329, -{ 232: } 329, -{ 233: } 329, -{ 234: } 329, -{ 235: } 329, -{ 236: } 329, -{ 237: } 329, -{ 238: } 329, -{ 239: } 329, -{ 240: } 329, -{ 241: } 329, -{ 242: } 329, -{ 243: } 329, -{ 244: } 329, -{ 245: } 329, -{ 246: } 329, -{ 247: } 329, -{ 248: } 332, -{ 249: } 332, -{ 250: } 332, -{ 251: } 333, -{ 252: } 333, -{ 253: } 337, -{ 254: } 337, -{ 255: } 344, -{ 256: } 349, -{ 257: } 354, -{ 258: } 355, -{ 259: } 356, -{ 260: } 360, -{ 261: } 361, -{ 262: } 362, -{ 263: } 363, -{ 264: } 364, -{ 265: } 364, -{ 266: } 371, -{ 267: } 371, -{ 268: } 371, -{ 269: } 376, +{ 191: } 224, +{ 192: } 224, +{ 193: } 224, +{ 194: } 224, +{ 195: } 224, +{ 196: } 227, +{ 197: } 227, +{ 198: } 232, +{ 199: } 237, +{ 200: } 242, +{ 201: } 247, +{ 202: } 252, +{ 203: } 257, +{ 204: } 262, +{ 205: } 268, +{ 206: } 273, +{ 207: } 278, +{ 208: } 283, +{ 209: } 288, +{ 210: } 293, +{ 211: } 298, +{ 212: } 303, +{ 213: } 308, +{ 214: } 313, +{ 215: } 317, +{ 216: } 317, +{ 217: } 324, +{ 218: } 324, +{ 219: } 324, +{ 220: } 325, +{ 221: } 326, +{ 222: } 330, +{ 223: } 334, +{ 224: } 338, +{ 225: } 338, +{ 226: } 338, +{ 227: } 338, +{ 228: } 338, +{ 229: } 338, +{ 230: } 343, +{ 231: } 343, +{ 232: } 343, +{ 233: } 343, +{ 234: } 343, +{ 235: } 343, +{ 236: } 347, +{ 237: } 347, +{ 238: } 354, +{ 239: } 354, +{ 240: } 354, +{ 241: } 354, +{ 242: } 354, +{ 243: } 357, +{ 244: } 357, +{ 245: } 357, +{ 246: } 357, +{ 247: } 357, +{ 248: } 357, +{ 249: } 357, +{ 250: } 357, +{ 251: } 357, +{ 252: } 357, +{ 253: } 357, +{ 254: } 357, +{ 255: } 357, +{ 256: } 357, +{ 257: } 357, +{ 258: } 357, +{ 259: } 357, +{ 260: } 357, +{ 261: } 357, +{ 262: } 357, +{ 263: } 357, +{ 264: } 358, +{ 265: } 358, +{ 266: } 362, +{ 267: } 362, +{ 268: } 369, +{ 269: } 374, { 270: } 379, -{ 271: } 379, -{ 272: } 379, -{ 273: } 380, -{ 274: } 381, -{ 275: } 381, -{ 276: } 381, -{ 277: } 381, -{ 278: } 381, -{ 279: } 382, -{ 280: } 382, -{ 281: } 382, -{ 282: } 382, -{ 283: } 382, -{ 284: } 389, -{ 285: } 389, -{ 286: } 389, -{ 287: } 389, -{ 288: } 389, -{ 289: } 389, -{ 290: } 389 +{ 271: } 380, +{ 272: } 381, +{ 273: } 385, +{ 274: } 386, +{ 275: } 387, +{ 276: } 388, +{ 277: } 389, +{ 278: } 389, +{ 279: } 389, +{ 280: } 396, +{ 281: } 396, +{ 282: } 396, +{ 283: } 399, +{ 284: } 399, +{ 285: } 404, +{ 286: } 404, +{ 287: } 405, +{ 288: } 406, +{ 289: } 406, +{ 290: } 406, +{ 291: } 406, +{ 292: } 406, +{ 293: } 407, +{ 294: } 414, +{ 295: } 414, +{ 296: } 414, +{ 297: } 414, +{ 298: } 414, +{ 299: } 421, +{ 300: } 421, +{ 301: } 421, +{ 302: } 421, +{ 303: } 421, +{ 304: } 421, +{ 305: } 421, +{ 306: } 421 ); yyr : array [1..yynrules] of YYRRec = ( @@ -7584,144 +8216,153 @@ yyr : array [1..yynrules] of YYRRec = ( { 18: } ( len: 0; sym: -9 ), { 19: } ( len: 4; sym: -10 ), { 20: } ( len: 0; sym: -10 ), -{ 21: } ( len: 6; sym: -6 ), -{ 22: } ( len: 2; sym: -6 ), -{ 23: } ( len: 5; sym: -6 ), -{ 24: } ( len: 11; sym: -6 ), -{ 25: } ( len: 5; sym: -6 ), -{ 26: } ( len: 3; sym: -6 ), -{ 27: } ( len: 3; sym: -6 ), -{ 28: } ( len: 7; sym: -7 ), -{ 29: } ( len: 4; sym: -7 ), -{ 30: } ( len: 3; sym: -7 ), -{ 31: } ( len: 5; sym: -7 ), -{ 32: } ( len: 3; sym: -7 ), -{ 33: } ( len: 3; sym: -20 ), -{ 34: } ( len: 3; sym: -20 ), -{ 35: } ( len: 3; sym: -22 ), -{ 36: } ( len: 3; sym: -22 ), -{ 37: } ( len: 4; sym: -14 ), -{ 38: } ( len: 3; sym: -14 ), -{ 39: } ( len: 4; sym: -14 ), -{ 40: } ( len: 3; sym: -14 ), -{ 41: } ( len: 2; sym: -14 ), -{ 42: } ( len: 2; sym: -14 ), -{ 43: } ( len: 3; sym: -14 ), -{ 44: } ( len: 2; sym: -14 ), -{ 45: } ( len: 2; sym: -12 ), -{ 46: } ( len: 3; sym: -12 ), -{ 47: } ( len: 2; sym: -12 ), -{ 48: } ( len: 3; sym: -12 ), -{ 49: } ( len: 2; sym: -12 ), -{ 50: } ( len: 2; sym: -12 ), -{ 51: } ( len: 1; sym: -12 ), -{ 52: } ( len: 1; sym: -12 ), -{ 53: } ( len: 2; sym: -21 ), -{ 54: } ( len: 1; sym: -21 ), -{ 55: } ( len: 3; sym: -24 ), -{ 56: } ( len: 1; sym: -11 ), -{ 57: } ( len: 2; sym: -25 ), -{ 58: } ( len: 2; sym: -25 ), -{ 59: } ( len: 1; sym: -25 ), -{ 60: } ( len: 1; sym: -25 ), +{ 21: } ( len: 2; sym: -12 ), +{ 22: } ( len: 5; sym: -12 ), +{ 23: } ( len: 2; sym: -14 ), +{ 24: } ( len: 1; sym: -14 ), +{ 25: } ( len: 1; sym: -14 ), +{ 26: } ( len: 0; sym: -14 ), +{ 27: } ( len: 3; sym: -15 ), +{ 28: } ( len: 5; sym: -6 ), +{ 29: } ( len: 6; sym: -6 ), +{ 30: } ( len: 2; sym: -6 ), +{ 31: } ( len: 5; sym: -6 ), +{ 32: } ( len: 11; sym: -6 ), +{ 33: } ( len: 5; sym: -6 ), +{ 34: } ( len: 3; sym: -6 ), +{ 35: } ( len: 3; sym: -6 ), +{ 36: } ( len: 7; sym: -7 ), +{ 37: } ( len: 4; sym: -7 ), +{ 38: } ( len: 3; sym: -7 ), +{ 39: } ( len: 5; sym: -7 ), +{ 40: } ( len: 3; sym: -7 ), +{ 41: } ( len: 3; sym: -24 ), +{ 42: } ( len: 3; sym: -24 ), +{ 43: } ( len: 3; sym: -26 ), +{ 44: } ( len: 3; sym: -26 ), +{ 45: } ( len: 4; sym: -18 ), +{ 46: } ( len: 3; sym: -18 ), +{ 47: } ( len: 4; sym: -18 ), +{ 48: } ( len: 3; sym: -18 ), +{ 49: } ( len: 2; sym: -18 ), +{ 50: } ( len: 2; sym: -18 ), +{ 51: } ( len: 3; sym: -18 ), +{ 52: } ( len: 2; sym: -18 ), +{ 53: } ( len: 2; sym: -16 ), +{ 54: } ( len: 3; sym: -16 ), +{ 55: } ( len: 2; sym: -16 ), +{ 56: } ( len: 3; sym: -16 ), +{ 57: } ( len: 2; sym: -16 ), +{ 58: } ( len: 2; sym: -16 ), +{ 59: } ( len: 1; sym: -16 ), +{ 60: } ( len: 1; sym: -16 ), { 61: } ( len: 2; sym: -25 ), -{ 62: } ( len: 2; sym: -25 ), -{ 63: } ( len: 3; sym: -25 ), -{ 64: } ( len: 1; sym: -25 ), -{ 65: } ( len: 2; sym: -25 ), -{ 66: } ( len: 1; sym: -25 ), -{ 67: } ( len: 1; sym: -25 ), -{ 68: } ( len: 1; sym: -25 ), -{ 69: } ( len: 1; sym: -25 ), -{ 70: } ( len: 1; sym: -23 ), -{ 71: } ( len: 1; sym: -23 ), -{ 72: } ( len: 3; sym: -13 ), -{ 73: } ( len: 4; sym: -13 ), -{ 74: } ( len: 2; sym: -13 ), -{ 75: } ( len: 1; sym: -13 ), -{ 76: } ( len: 2; sym: -26 ), -{ 77: } ( len: 3; sym: -26 ), -{ 78: } ( len: 2; sym: -26 ), -{ 79: } ( len: 1; sym: -16 ), -{ 80: } ( len: 3; sym: -16 ), -{ 81: } ( len: 1; sym: -16 ), -{ 82: } ( len: 0; sym: -16 ), -{ 83: } ( len: 1; sym: -28 ), -{ 84: } ( len: 1; sym: -28 ), -{ 85: } ( len: 1; sym: -28 ), -{ 86: } ( len: 2; sym: -15 ), -{ 87: } ( len: 3; sym: -15 ), -{ 88: } ( len: 2; sym: -15 ), -{ 89: } ( len: 2; sym: -15 ), -{ 90: } ( len: 3; sym: -15 ), -{ 91: } ( len: 3; sym: -15 ), -{ 92: } ( len: 1; sym: -15 ), -{ 93: } ( len: 4; sym: -15 ), -{ 94: } ( len: 2; sym: -15 ), -{ 95: } ( len: 4; sym: -15 ), -{ 96: } ( len: 3; sym: -15 ), -{ 97: } ( len: 3; sym: -15 ), -{ 98: } ( len: 2; sym: -31 ), -{ 99: } ( len: 3; sym: -31 ), -{ 100: } ( len: 2; sym: -27 ), -{ 101: } ( len: 3; sym: -27 ), -{ 102: } ( len: 2; sym: -27 ), -{ 103: } ( len: 4; sym: -27 ), -{ 104: } ( len: 2; sym: -27 ), -{ 105: } ( len: 4; sym: -27 ), -{ 106: } ( len: 3; sym: -27 ), -{ 107: } ( len: 3; sym: -27 ), -{ 108: } ( len: 0; sym: -27 ), -{ 109: } ( len: 1; sym: -29 ), -{ 110: } ( len: 3; sym: -32 ), -{ 111: } ( len: 3; sym: -32 ), -{ 112: } ( len: 3; sym: -32 ), -{ 113: } ( len: 3; sym: -32 ), -{ 114: } ( len: 3; sym: -32 ), -{ 115: } ( len: 3; sym: -32 ), -{ 116: } ( len: 3; sym: -32 ), -{ 117: } ( len: 3; sym: -32 ), -{ 118: } ( len: 3; sym: -32 ), -{ 119: } ( len: 3; sym: -32 ), -{ 120: } ( len: 3; sym: -32 ), -{ 121: } ( len: 3; sym: -32 ), -{ 122: } ( len: 3; sym: -32 ), -{ 123: } ( len: 3; sym: -32 ), -{ 124: } ( len: 3; sym: -32 ), -{ 125: } ( len: 3; sym: -32 ), -{ 126: } ( len: 1; sym: -32 ), -{ 127: } ( len: 3; sym: -33 ), -{ 128: } ( len: 1; sym: -35 ), -{ 129: } ( len: 0; sym: -35 ), -{ 130: } ( len: 1; sym: -34 ), -{ 131: } ( len: 1; sym: -34 ), -{ 132: } ( len: 1; sym: -34 ), -{ 133: } ( len: 1; sym: -34 ), -{ 134: } ( len: 3; sym: -34 ), -{ 135: } ( len: 3; sym: -34 ), -{ 136: } ( len: 2; sym: -34 ), -{ 137: } ( len: 2; sym: -34 ), -{ 138: } ( len: 2; sym: -34 ), -{ 139: } ( len: 4; sym: -34 ), -{ 140: } ( len: 4; sym: -34 ), -{ 141: } ( len: 5; sym: -34 ), -{ 142: } ( len: 6; sym: -34 ), -{ 143: } ( len: 4; sym: -34 ), -{ 144: } ( len: 3; sym: -34 ), -{ 145: } ( len: 8; sym: -34 ), -{ 146: } ( len: 4; sym: -34 ), -{ 147: } ( len: 3; sym: -17 ), -{ 148: } ( len: 1; sym: -17 ), -{ 149: } ( len: 0; sym: -17 ), -{ 150: } ( len: 3; sym: -37 ), -{ 151: } ( len: 1; sym: -37 ), -{ 152: } ( len: 1; sym: -19 ), -{ 153: } ( len: 2; sym: -18 ), -{ 154: } ( len: 4; sym: -18 ), -{ 155: } ( len: 3; sym: -36 ), -{ 156: } ( len: 1; sym: -36 ), -{ 157: } ( len: 0; sym: -36 ), -{ 158: } ( len: 1; sym: -38 ) +{ 62: } ( len: 1; sym: -25 ), +{ 63: } ( len: 3; sym: -28 ), +{ 64: } ( len: 1; sym: -11 ), +{ 65: } ( len: 2; sym: -29 ), +{ 66: } ( len: 2; sym: -29 ), +{ 67: } ( len: 1; sym: -29 ), +{ 68: } ( len: 1; sym: -29 ), +{ 69: } ( len: 2; sym: -29 ), +{ 70: } ( len: 2; sym: -29 ), +{ 71: } ( len: 3; sym: -29 ), +{ 72: } ( len: 1; sym: -29 ), +{ 73: } ( len: 2; sym: -29 ), +{ 74: } ( len: 1; sym: -29 ), +{ 75: } ( len: 1; sym: -29 ), +{ 76: } ( len: 1; sym: -29 ), +{ 77: } ( len: 1; sym: -29 ), +{ 78: } ( len: 1; sym: -27 ), +{ 79: } ( len: 1; sym: -27 ), +{ 80: } ( len: 3; sym: -17 ), +{ 81: } ( len: 4; sym: -17 ), +{ 82: } ( len: 2; sym: -17 ), +{ 83: } ( len: 1; sym: -17 ), +{ 84: } ( len: 2; sym: -30 ), +{ 85: } ( len: 3; sym: -30 ), +{ 86: } ( len: 2; sym: -30 ), +{ 87: } ( len: 1; sym: -20 ), +{ 88: } ( len: 3; sym: -20 ), +{ 89: } ( len: 1; sym: -20 ), +{ 90: } ( len: 0; sym: -20 ), +{ 91: } ( len: 1; sym: -32 ), +{ 92: } ( len: 1; sym: -32 ), +{ 93: } ( len: 1; sym: -32 ), +{ 94: } ( len: 2; sym: -19 ), +{ 95: } ( len: 3; sym: -19 ), +{ 96: } ( len: 2; sym: -19 ), +{ 97: } ( len: 2; sym: -19 ), +{ 98: } ( len: 3; sym: -19 ), +{ 99: } ( len: 3; sym: -19 ), +{ 100: } ( len: 1; sym: -19 ), +{ 101: } ( len: 4; sym: -19 ), +{ 102: } ( len: 2; sym: -19 ), +{ 103: } ( len: 4; sym: -19 ), +{ 104: } ( len: 3; sym: -19 ), +{ 105: } ( len: 3; sym: -19 ), +{ 106: } ( len: 2; sym: -34 ), +{ 107: } ( len: 3; sym: -34 ), +{ 108: } ( len: 2; sym: -31 ), +{ 109: } ( len: 3; sym: -31 ), +{ 110: } ( len: 2; sym: -31 ), +{ 111: } ( len: 4; sym: -31 ), +{ 112: } ( len: 2; sym: -31 ), +{ 113: } ( len: 4; sym: -31 ), +{ 114: } ( len: 3; sym: -31 ), +{ 115: } ( len: 3; sym: -31 ), +{ 116: } ( len: 0; sym: -31 ), +{ 117: } ( len: 1; sym: -13 ), +{ 118: } ( len: 3; sym: -35 ), +{ 119: } ( len: 3; sym: -35 ), +{ 120: } ( len: 3; sym: -35 ), +{ 121: } ( len: 3; sym: -35 ), +{ 122: } ( len: 3; sym: -35 ), +{ 123: } ( len: 3; sym: -35 ), +{ 124: } ( len: 3; sym: -35 ), +{ 125: } ( len: 3; sym: -35 ), +{ 126: } ( len: 3; sym: -35 ), +{ 127: } ( len: 3; sym: -35 ), +{ 128: } ( len: 3; sym: -35 ), +{ 129: } ( len: 3; sym: -35 ), +{ 130: } ( len: 3; sym: -35 ), +{ 131: } ( len: 3; sym: -35 ), +{ 132: } ( len: 3; sym: -35 ), +{ 133: } ( len: 3; sym: -35 ), +{ 134: } ( len: 3; sym: -35 ), +{ 135: } ( len: 1; sym: -35 ), +{ 136: } ( len: 3; sym: -36 ), +{ 137: } ( len: 1; sym: -38 ), +{ 138: } ( len: 0; sym: -38 ), +{ 139: } ( len: 1; sym: -37 ), +{ 140: } ( len: 1; sym: -37 ), +{ 141: } ( len: 1; sym: -37 ), +{ 142: } ( len: 1; sym: -37 ), +{ 143: } ( len: 3; sym: -37 ), +{ 144: } ( len: 3; sym: -37 ), +{ 145: } ( len: 2; sym: -37 ), +{ 146: } ( len: 2; sym: -37 ), +{ 147: } ( len: 2; sym: -37 ), +{ 148: } ( len: 4; sym: -37 ), +{ 149: } ( len: 4; sym: -37 ), +{ 150: } ( len: 5; sym: -37 ), +{ 151: } ( len: 6; sym: -37 ), +{ 152: } ( len: 4; sym: -37 ), +{ 153: } ( len: 3; sym: -37 ), +{ 154: } ( len: 8; sym: -37 ), +{ 155: } ( len: 4; sym: -37 ), +{ 156: } ( len: 3; sym: -21 ), +{ 157: } ( len: 1; sym: -21 ), +{ 158: } ( len: 0; sym: -21 ), +{ 159: } ( len: 3; sym: -40 ), +{ 160: } ( len: 1; sym: -40 ), +{ 161: } ( len: 1; sym: -23 ), +{ 162: } ( len: 2; sym: -22 ), +{ 163: } ( len: 4; sym: -22 ), +{ 164: } ( len: 3; sym: -39 ), +{ 165: } ( len: 1; sym: -39 ), +{ 166: } ( len: 0; sym: -39 ), +{ 167: } ( len: 1; sym: -41 ) ); diff --git a/utils/h2pas/h2pas.y b/utils/h2pas/h2pas.y index 6648d1f5ac..a0ab7806cf 100644 --- a/utils/h2pas/h2pas.y +++ b/utils/h2pas/h2pas.y @@ -1,2699 +1,2944 @@ -%{ -program h2pas; - -(* - $Id: h2pas.y,v 1.10 2005/02/20 11:09:41 florian Exp $ - Copyright (c) 1998-2000 by Florian Klaempfl - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - ****************************************************************************) - - uses - SysUtils,classes, - options,scan,converu,lexlib,yacclib; - - type - YYSTYPE = presobject; - - const - SHORT_STR = 'smallint'; - USHORT_STR = 'word'; - INT_STR = 'longint'; - UINT_STR = 'dword'; - CHAR_STR = 'char'; - UCHAR_STR = 'byte'; { should we use byte or char for 'unsigned char' ?? } - INT64_STR = 'int64'; - QWORD_STR = 'qword'; - REAL_STR = 'double'; - WCHAR_STR = 'widechar'; - - var - hp,ph : presobject; - implemfile : text; (* file for implementation headers extern procs *) - IsExtern : boolean; - NeedEllipsisOverload : boolean; - must_write_packed_field : boolean; - tempfile : text; - No_pop : boolean; - s,TN,PN : String; - pointerprefix: boolean; - freedynlibproc, - loaddynlibproc : tstringlist; - - -(* $ define yydebug - compile with -dYYDEBUG to get debugging info *) - - const - (* number of a?b:c construction in one define *) - if_nb : longint = 0; - is_packed : boolean = false; - is_procvar : boolean = false; - - var space_array : array [0..255] of byte; - space_index : byte; - - { Used when PPointers is used - pointer type definitions } - PTypeList : TStringList; - - - procedure shift(space_number : byte); - var - i : byte; - begin - space_array[space_index]:=space_number; - inc(space_index); - for i:=1 to space_number do - aktspace:=aktspace+' '; - end; - - procedure popshift; - begin - dec(space_index); - if space_index<0 then - internalerror(20); - delete(aktspace,1,space_array[space_index]); - end; - - function str(i : longint) : string; - var - s : string; - begin - system.str(i,s); - str:=s; - end; - - function hexstr(i : cardinal) : string; - - const - HexTbl : array[0..15] of char='0123456789ABCDEF'; - var - str : string; - begin - str:=''; - while i<>0 do - begin - str:=hextbl[i and $F]+str; - i:=i shr 4; - end; - if str='' then str:='0'; - hexstr:='$'+str; - end; - - function uppercase(s : string) : string; - var - i : byte; - begin - for i:=1 to length(s) do - s[i]:=UpCase(s[i]); - uppercase:=s; - end; - - procedure write_type_specifier(var outfile:text; p : presobject);forward; - procedure write_p_a_def(var outfile:text; p,simple_type : presobject);forward; - procedure write_ifexpr(var outfile:text; p : presobject);forward; - procedure write_funexpr(var outfile:text; p : presobject);forward; - - procedure yymsg(const msg : string); - begin - writeln('line ',line_no,': ',msg); - end; - - - { This converts pascal reserved words to - the correct syntax. - } - function FixId(const s:string):string; - const - maxtokens = 14; - reservedid: array[1..maxtokens] of string[14] = - ( - 'CLASS', - 'DISPOSE', - 'FUNCTION', - 'FALSE', - 'LABEL', - 'NEW', - 'PROPERTY', - 'PROCEDURE', - 'RECORD', - 'REPEAT', - 'STRING', - 'TYPE', - 'TRUE', - 'UNTIL' - ); - var - b : boolean; - up : string; - i: integer; - begin - if s='' then - begin - FixId:=''; - exit; - end; - b:=false; - up:=Uppercase(s); - for i:=1 to maxtokens do - begin - if up=reservedid[i] then - begin - b:=true; - break; - end; - end; - if b then - FixId:='_'+s - else - FixId:=s; - end; - - - - function TypeName(const s:string):string; - var - i : longint; - begin - i:=1; - if RemoveUnderScore and (length(s)>1) and (s[1]='_') then - i:=2; - if PrependTypes then - TypeName:='T'+Copy(s,i,255) - else - TypeName:=Copy(s,i,255); - end; - - - function PointerName(const s:string):string; - var - i : longint; - begin - i:=1; - if RemoveUnderScore and (length(s)>1) and (s[1]='_') then - i:=2; - if UsePPointers then - begin - PointerName:='P'+Copy(s,i,255); - PTypeList.Add(PointerName); - end - else - PointerName:=Copy(s,i,255); - if PointerPrefix then - PTypeList.Add('P'+s); - end; - - - procedure write_packed_fields_info(var outfile:text; p : presobject; ph : string); - var - hp1,hp2,hp3 : presobject; - is_sized : boolean; - line : string; - flag_index : longint; - name : pchar; - ps : byte; - - begin - { write out the tempfile created } - close(tempfile); - reset(tempfile); - is_sized:=false; - flag_index:=0; - writeln(outfile); - writeln(outfile,aktspace,'const'); - shift(3); - while not eof(tempfile) do - begin - readln(tempfile,line); - ps:=pos('&',line); - if ps>0 then - line:=copy(line,1,ps-1)+ph+'_'+copy(line,ps+1,255); - writeln(outfile,aktspace,line); - end; - writeln(outfile); - close(tempfile); - rewrite(tempfile); - popshift; - (* walk through all members *) - hp1 := p^.p1; - while assigned(hp1) do - begin - (* hp2 is t_memberdec *) - hp2:=hp1^.p1; - (* hp3 is t_declist *) - hp3:=hp2^.p2; - while assigned(hp3) do - begin - if assigned(hp3^.p1^.p3) and - (hp3^.p1^.p3^.typ = t_size_specifier) then - begin - is_sized:=true; - name:=hp3^.p1^.p2^.p; - { get function in interface } - write(outfile,aktspace,'function ',name); - write(outfile,'(var a : ',ph,') : '); - shift(2); - write_p_a_def(outfile,hp3^.p1^.p1,hp2^.p1); - writeln(outfile,';'); - popshift; - { get function in implementation } - write(implemfile,aktspace,'function ',name); - write(implemfile,'(var a : ',ph,') : '); - if not compactmode then - shift(2); - write_p_a_def(implemfile,hp3^.p1^.p1,hp2^.p1); - writeln(implemfile,';'); - writeln(implemfile,aktspace,'begin'); - shift(3); - write(implemfile,aktspace,name,':=(a.flag',flag_index); - writeln(implemfile,' and bm_',ph,'_',name,') shr bp_',ph,'_',name,';'); - popshift; - writeln(implemfile,aktspace,'end;'); - if not compactmode then - popshift; - writeln(implemfile,''); - { set function in interface } - write(outfile,aktspace,'procedure set_',name); - write(outfile,'(var a : ',ph,'; __',name,' : '); - shift(2); - write_p_a_def(outfile,hp3^.p1^.p1,hp2^.p1); - writeln(outfile,');'); - popshift; - { set function in implementation } - write(implemfile,aktspace,'procedure set_',name); - write(implemfile,'(var a : ',ph,'; __',name,' : '); - if not compactmode then - shift(2); - write_p_a_def(implemfile,hp3^.p1^.p1,hp2^.p1); - writeln(implemfile,');'); - writeln(implemfile,aktspace,'begin'); - shift(3); - write(implemfile,aktspace,'a.flag',flag_index,':='); - write(implemfile,'a.flag',flag_index,' or '); - writeln(implemfile,'((__',name,' shl bp_',ph,'_',name,') and bm_',ph,'_',name,');'); - popshift; - writeln(implemfile,aktspace,'end;'); - if not compactmode then - popshift; - writeln(implemfile,''); - end - else if is_sized then - begin - is_sized:=false; - inc(flag_index); - end; - hp3:=hp3^.next; - end; - hp1:=hp1^.next; - end; - must_write_packed_field:=false; - block_type:=bt_no; - end; - - - procedure write_expr(var outfile:text; p : presobject); - begin - if assigned(p) then - begin - case p^.typ of - t_id, - t_ifexpr : - write(outfile,FixId(p^.p)); - t_funexprlist : - write_funexpr(outfile,p); - t_exprlist : - begin - if assigned(p^.p1) then - write_expr(outfile,p^.p1); - if assigned(p^.next) then - begin - write(', '); - write_expr(outfile,p^.next); - end; - end; - t_preop : begin - write(outfile,p^.p,'('); - write_expr(outfile,p^.p1); - write(outfile,')'); - flush(outfile); - end; - t_typespec : begin - write_type_specifier(outfile,p^.p1); - write(outfile,'('); - write_expr(outfile,p^.p2); - write(outfile,')'); - flush(outfile); - end; - t_bop : begin - if p^.p1^.typ<>t_id then - write(outfile,'('); - write_expr(outfile,p^.p1); - if p^.p1^.typ<>t_id then - write(outfile,')'); - write(outfile,p^.p); - if p^.p2^.typ<>t_id then - write(outfile,'('); - write_expr(outfile,p^.p2); - if p^.p2^.typ<>t_id then - write(outfile,')'); - flush(outfile); - end; - t_arrayop : - begin - write_expr(outfile,p^.p1); - write(outfile,p^.p,'['); - write_expr(outfile,p^.p2); - write(outfile,']'); - flush(outfile); - end; - t_callop : - begin - write_expr(outfile,p^.p1); - write(outfile,p^.p,'('); - write_expr(outfile,p^.p2); - write(outfile,')'); - flush(outfile); - end; - else internalerror(2); - end; - end; - end; - - procedure write_ifexpr(var outfile:text; p : presobject); - begin - flush(outfile); - write(outfile,'if '); - write_expr(outfile,p^.p1); - writeln(outfile,' then'); - write(outfile,aktspace,' '); - write(outfile,p^.p); - write(outfile,':='); - write_expr(outfile,p^.p2); - writeln(outfile); - writeln(outfile,aktspace,'else'); - write(outfile,aktspace,' '); - write(outfile,p^.p); - write(outfile,':='); - write_expr(outfile,p^.p3); - writeln(outfile,';'); - write(outfile,aktspace); - flush(outfile); - end; - - - procedure write_all_ifexpr(var outfile:text; p : presobject); - begin - if assigned(p) then - begin - case p^.typ of - t_id :; - t_preop : - write_all_ifexpr(outfile,p^.p1); - t_callop, - t_arrayop, - t_bop : - begin - write_all_ifexpr(outfile,p^.p1); - write_all_ifexpr(outfile,p^.p2); - end; - t_ifexpr : - begin - write_all_ifexpr(outfile,p^.p1); - write_all_ifexpr(outfile,p^.p2); - write_all_ifexpr(outfile,p^.p3); - write_ifexpr(outfile,p); - end; - t_typespec : - write_all_ifexpr(outfile,p^.p2); - t_funexprlist, - t_exprlist : - begin - if assigned(p^.p1) then - write_all_ifexpr(outfile,p^.p1); - if assigned(p^.next) then - write_all_ifexpr(outfile,p^.next); - end - else - internalerror(6); - end; - end; - end; - - procedure write_funexpr(var outfile:text; p : presobject); - var - i : longint; - - begin - if assigned(p) then - begin - case p^.typ of - t_ifexpr : - write(outfile,p^.p); - t_exprlist : - begin - write_expr(outfile,p^.p1); - if assigned(p^.next) then - begin - write(outfile,','); - write_funexpr(outfile,p^.next); - end - end; - t_funcname : - begin - if not compactmode then - shift(2); - if if_nb>0 then - begin - writeln(outfile,aktspace,'var'); - write(outfile,aktspace,' '); - for i:=1 to if_nb do - begin - write(outfile,'if_local',i); - if it_arglist then - internalerror(10); - (* is ellipsis ? *) - if not assigned(p^.p1^.p1) and - not assigned(p^.p1^.next) then - begin - write(outfile,'args:array of const'); - (* if variable number of args we must allways pop *) - no_pop:=false; - (* Needs 2 declarations, also one without args, becuase - in C you can omit the second parameter. Default parameter - doesn't help as that isn't possible with array of const *) - NeedEllipsisOverload:=true; - (* Remove this para *) - if assigned(lastp) then - lastp^.next:=nil; - dispose(p,done); - (* leave the loop as p isnot valid anymore *) - break; - end - (* we need to correct this in the pp file after *) - else - begin - (* generate a call by reference parameter ? *) - -// varpara:=usevarparas and -// assigned(p^.p1^.p2^.p1) and -// (p^.p1^.p2^.p1^.typ in [t_addrdef,t_pointerdef]) and -// assigned(p^.p1^.p2^.p1^.p1) and -// (p^.p1^.p2^.p1^.p1^.typ<>t_procdef); - varpara:=usevarparas and - assigned(p^.p1^.p1) and - (p^.p1^.p1^.typ in [t_addrdef,t_pointerdef]) and - assigned(p^.p1^.p1^.p1) and - (p^.p1^.p1^.p1^.typ<>t_procdef); - (* do not do it for char pointer !! *) - (* para : pchar; and var para : char; are *) - (* completely different in pascal *) - (* here we exclude all typename containing char *) - (* is this a good method ?? *) - if varpara and - (p^.p1^.p1^.typ=t_pointerdef) and - (p^.p1^.p1^.p1^.typ=t_id) and - (pos('CHAR',uppercase(p^.p1^.p1^.p1^.str))<>0) then - varpara:=false; - if varpara then - begin - write(outfile,'var '); - inc(len,4); - end; - - (* write new parameter name *) - if assigned(p^.p1^.p2^.p2) then - begin - hs:=FixId(p^.p1^.p2^.p2^.p); - write(outfile,hs); - inc(len,length(hs)); - end - else - begin - If removeUnderscore then - begin - Write (outfile,'para',para); - inc(Len,5); - end - else - begin - write(outfile,'_para',para); - inc(Len,6); - end; - end; - write(outfile,':'); - if varpara then - begin - write_p_a_def(outfile,p^.p1^.p2^.p1,p^.p1^.p1^.p1); - end - else - write_p_a_def(outfile,p^.p1^.p2^.p1,p^.p1^.p1); - - end; - lastp:=p; - p:=p^.next; - if assigned(p) then - begin - write(outfile,'; '); - { if len>40 then : too complicated to compute } - if (para mod 5) = 0 then - begin - writeln(outfile); - write(outfile,aktspace); - end; - end; - inc(para); - end; - write(outfile,')'); - flush(outfile); - in_args:=old_in_args; - popshift; - end; - - - - procedure write_p_a_def(var outfile:text; p,simple_type : presobject); - var - i : longint; - error : integer; - pointerwritten, - constant : boolean; - - begin - if not(assigned(p)) then - begin - write_type_specifier(outfile,simple_type); - exit; - end; - case p^.typ of - t_pointerdef : begin - (* procedure variable ? *) - if assigned(p^.p1) and (p^.p1^.typ=t_procdef) then - begin - is_procvar:=true; - (* distinguish between procedure and function *) - if (simple_type^.typ=t_void) and (p^.p1^.p1=nil) then - begin - write(outfile,'procedure '); - - shift(10); - (* write arguments *) - if assigned(p^.p1^.p2) then - write_args(outfile,p^.p1^.p2); - flush(outfile); - popshift; - end - else - begin - write(outfile,'function '); - shift(9); - (* write arguments *) - if assigned(p^.p1^.p2) then - write_args(outfile,p^.p1^.p2); - write(outfile,':'); - flush(outfile); - write_p_a_def(outfile,p^.p1^.p1,simple_type); - popshift; - end - end - else - begin - (* generate "pointer" ? *) - if (simple_type^.typ=t_void) and (p^.p1=nil) then - begin - write(outfile,'pointer'); - flush(outfile); - end - else - begin - pointerwritten:=false; - if (p^.p1=nil) and UsePPointers then - begin - if (simple_type^.typ=t_id) then - begin - write(outfile,PointerName(simple_type^.p)); - pointerwritten:=true; - end - { structure } - else if (simple_type^.typ in [t_uniondef,t_structdef]) and - (simple_type^.p1=nil) and (simple_type^.p2^.typ=t_id) then - begin - write(outfile,PointerName(simple_type^.p2^.p)); - pointerwritten:=true; - end; - end; - if not pointerwritten then - begin - if in_args then - begin - write(outfile,'P'); - pointerprefix:=true; - end - else - write(outfile,'^'); - write_p_a_def(outfile,p^.p1,simple_type); - pointerprefix:=false; - end; - end; - end; - end; - t_arraydef : begin - constant:=false; - if assigned(p^.p2) then - begin - if p^.p2^.typ=t_id then - begin - val(p^.p2^.str,i,error); - if error=0 then - begin - dec(i); - constant:=true; - end; - end; - if not constant then - begin - write(outfile,'array[0..('); - write_expr(outfile,p^.p2); - write(outfile,')-1] of '); - end - else - begin - write(outfile,'array[0..',i,'] of '); - end; - end - else - begin - (* open array *) - write(outfile,'array of '); - end; - flush(outfile); - write_p_a_def(outfile,p^.p1,simple_type); - end; - else internalerror(1); - end; - end; - - procedure write_type_specifier(var outfile:text; p : presobject); - var - hp1,hp2,hp3,lastexpr : presobject; - i,l,w : longint; - error : integer; - current_power, - mask : cardinal; - flag_index : longint; - current_level : byte; - pointerwritten, - is_sized : boolean; - - begin - case p^.typ of - t_id : - begin - if pointerprefix then - PTypeList.Add('P'+p^.str); - if p^.intname then - write(outfile,p^.p) - else - write(outfile,TypeName(p^.p)); - end; - { what can we do with void defs ? } - t_void : - write(outfile,'void'); - t_pointerdef : - begin - pointerwritten:=false; - if (p^.p1^.typ=t_void) then - begin - write(outfile,'pointer'); - pointerwritten:=true; - end - else - if UsePPointers then - begin - if (p^.p1^.typ=t_id) then - begin - write(outfile,PointerName(p^.p1^.p)); - pointerwritten:=true; - end - { structure } - else if (p^.p1^.typ in [t_uniondef,t_structdef]) and - (p^.p1^.p1=nil) and (p^.p1^.p2^.typ=t_id) then - begin - write(outfile,PointerName(p^.p1^.p2^.p)); - pointerwritten:=true; - end; - end; - if not pointerwritten then - begin - if in_args then - begin - write(outfile,'P'); - pointerprefix:=true; - end - else - write(outfile,'^'); - write_type_specifier(outfile,p^.p1); - pointerprefix:=false; - end; - end; - t_enumdef : - begin - if (typedef_level>1) and (p^.p1=nil) and - (p^.p2^.typ=t_id) then - begin - if pointerprefix then - PTypeList.Add('P'+p^.p2^.str); - write(outfile,p^.p2^.p); - end - else - if not EnumToConst then - begin - write(outfile,'('); - hp1:=p^.p1; - w:=length(aktspace); - while assigned(hp1) do - begin - write(outfile,hp1^.p1^.p); - if assigned(hp1^.p2) then - begin - write(outfile,' := '); - write_expr(outfile,hp1^.p2); - w:=w+6;(* strlen(hp1^.p); *) - end; - w:=w+length(hp1^.p1^.str); - hp1:=hp1^.next; - if assigned(hp1) then - write(outfile,','); - if w>40 then - begin - writeln(outfile); - write(outfile,aktspace); - w:=length(aktspace); - end; - flush(outfile); - end; - write(outfile,')'); - flush(outfile); - end - else - begin - Writeln (outfile,' Longint;'); - hp1:=p^.p1; - l:=0; - lastexpr:=nil; - Writeln (outfile,copy(aktspace,1,length(aktspace)-2),'Const'); - while assigned(hp1) do - begin - write (outfile,aktspace,hp1^.p1^.p,' = '); - if assigned(hp1^.p2) then - begin - write_expr(outfile,hp1^.p2); - writeln(outfile,';'); - lastexpr:=hp1^.p2; - if lastexpr^.typ=t_id then - begin - val(lastexpr^.str,l,error); - if error=0 then - begin - inc(l); - lastexpr:=nil; - end - else - l:=1; - end - else - l:=1; - end - else - begin - if assigned(lastexpr) then - begin - write(outfile,'('); - write_expr(outfile,lastexpr); - writeln(outfile,')+',l,';'); - end - else - writeln (outfile,l,';'); - inc(l); - end; - hp1:=hp1^.next; - flush(outfile); - end; - block_type:=bt_const; - end; - end; - t_structdef : - begin - inc(typedef_level); - flag_index:=-1; - is_sized:=false; - current_level:=0; - if ((in_args) or (typedef_level>1)) and - (p^.p1=nil) and (p^.p2^.typ=t_id) then - begin - if pointerprefix then - PTypeList.Add('P'+p^.p2^.str); - write(outfile,TypeName(p^.p2^.p)); - end - else - begin - if packrecords then - writeln(outfile,'packed record') - else - writeln(outfile,'record'); - shift(3); - hp1:=p^.p1; - - (* walk through all members *) - while assigned(hp1) do - begin - (* hp2 is t_memberdec *) - hp2:=hp1^.p1; - (* hp3 is t_declist *) - hp3:=hp2^.p2; - while assigned(hp3) do - begin - if not assigned(hp3^.p1^.p3) or - (hp3^.p1^.p3^.typ <> t_size_specifier) then - begin - if is_sized then - begin - if current_level <= 16 then - writeln(outfile,'word;') - else if current_level <= 32 then - writeln(outfile,'longint;') - else - internalerror(11); - is_sized:=false; - end; - - write(outfile,aktspace,FixId(hp3^.p1^.p2^.p)); - write(outfile,' : '); - shift(2); - write_p_a_def(outfile,hp3^.p1^.p1,hp2^.p1); - popshift; - end; - { size specifier or default value ? } - if assigned(hp3^.p1^.p3) then - begin - { we could use mask to implement this } - { because we need to respect the positions } - if hp3^.p1^.p3^.typ = t_size_specifier then - begin - if not is_sized then - begin - current_power:=1; - current_level:=0; - inc(flag_index); - write(outfile,aktspace,'flag',flag_index,' : '); - end; - must_write_packed_field:=true; - is_sized:=true; - { can it be something else than a constant ? } - { it can be a macro !! } - if hp3^.p1^.p3^.p1^.typ=t_id then - begin - val(hp3^.p1^.p3^.p1^.str,l,error); - if error=0 then - begin - mask:=0; - for i:=1 to l do - begin - inc(mask,current_power); - current_power:=current_power*2; - end; - write(tempfile,'bm_&',hp3^.p1^.p2^.p); - writeln(tempfile,' = ',hexstr(mask),';'); - write(tempfile,'bp_&',hp3^.p1^.p2^.p); - writeln(tempfile,' = ',current_level,';'); - current_level:=current_level + l; - { go to next flag if 31 } - if current_level = 32 then - begin - write(outfile,'longint'); - is_sized:=false; - end; - end; - end; - - end - else if hp3^.p1^.p3^.typ = t_default_value then - begin - write(outfile,'{='); - write_expr(outfile,hp3^.p1^.p3^.p1); - write(outfile,' ignored}'); - end; - end; - if not is_sized then - begin - if is_procvar then - begin - if not no_pop then - begin - write(outfile,';cdecl'); - no_pop:=true; - end; - is_procvar:=false; - end; - writeln(outfile,';'); - end; - hp3:=hp3^.next; - end; - hp1:=hp1^.next; - end; - if is_sized then - begin - if current_level <= 16 then - writeln(outfile,'word;') - else if current_level <= 32 then - writeln(outfile,'longint;') - else - internalerror(11); - is_sized:=false; - end; - popshift; - write(outfile,aktspace,'end'); - flush(outfile); - end; - dec(typedef_level); - end; - t_uniondef : - begin - inc(typedef_level); - if (typedef_level>1) and (p^.p1=nil) and - (p^.p2^.typ=t_id) then - begin - write(outfile,p^.p2^.p); - end - else - begin - inc(typedef_level); - if packrecords then - writeln(outfile,'packed record') - else - writeln(outfile,'record'); - shift(2); - writeln(outfile,aktspace,'case longint of'); - shift(3); - l:=0; - hp1:=p^.p1; - - (* walk through all members *) - while assigned(hp1) do - begin - (* hp2 is t_memberdec *) - hp2:=hp1^.p1; - (* hp3 is t_declist *) - hp3:=hp2^.p2; - while assigned(hp3) do - begin - write(outfile,aktspace,l,' : ( '); - write(outfile,FixId(hp3^.p1^.p2^.p),' : '); - shift(2); - write_p_a_def(outfile,hp3^.p1^.p1,hp2^.p1); - popshift; - writeln(outfile,' );'); - hp3:=hp3^.next; - inc(l); - end; - hp1:=hp1^.next; - end; - popshift; - write(outfile,aktspace,'end'); - popshift; - flush(outfile); - dec(typedef_level); - end; - dec(typedef_level); - end; - else - internalerror(3); - end; - end; - - procedure write_def_params(var outfile:text; p : presobject); - var - hp1 : presobject; - begin - case p^.typ of - t_enumdef : begin - hp1:=p^.p1; - while assigned(hp1) do - begin - write(outfile,FixId(hp1^.p1^.p)); - hp1:=hp1^.next; - if assigned(hp1) then - write(outfile,',') - else - write(outfile); - flush(outfile); - end; - flush(outfile); - end; - else internalerror(4); - end; - end; - -%} - -%token TYPEDEF DEFINE -%token COLON SEMICOLON COMMA -%token LKLAMMER RKLAMMER LECKKLAMMER RECKKLAMMER -%token LGKLAMMER RGKLAMMER -%token STRUCT UNION ENUM -%token ID NUMBER CSTRING -%token SHORT UNSIGNED LONG INT REAL _CHAR -%token VOID _CONST -%token _FAR _HUGE _NEAR -%token _ASSIGN NEW_LINE SPACE_DEFINE -%token EXTERN STDCALL CDECL CALLBACK PASCAL WINAPI APIENTRY WINGDIAPI SYS_TRAP -%token _PACKED -%token ELLIPSIS -%right R_AND -%left EQUAL UNEQUAL GT LT GTE LTE -%left QUESTIONMARK COLON -%left _OR -%left _AND -%left _PLUS MINUS -%left _SHR _SHL -%left STAR _SLASH -%right _NOT -%right LKLAMMER -%right PSTAR -%right P_AND -%right LECKKLAMMER -%left POINT DEREF -%left COMMA -%left STICK -%token SIGNED -%% - -file : declaration_list - ; - -maybe_space : - SPACE_DEFINE - { - $$:=nil; - } | - { - $$:=nil; - } - ; - -error_info : { - writeln(outfile,'(* error '); - writeln(outfile,yyline); - }; - -declaration_list : declaration_list declaration - { if yydebug then writeln('declaration reduced at line ',line_no); - if yydebug then writeln(outfile,'(* declaration reduced *)'); - } - | declaration_list define_dec - { if yydebug then writeln('define declaration reduced at line ',line_no); - if yydebug then writeln(outfile,'(* define declaration reduced *)'); - } - | declaration - { if yydebug then writeln('declaration reduced at line ',line_no); - } - | define_dec - { if yydebug then writeln('define declaration reduced at line ',line_no); - } - ; - -dec_specifier : - EXTERN { $$:=new(presobject,init_id('extern')); } - |{ $$:=new(presobject,init_id('intern')); } - ; - -dec_modifier : - STDCALL { $$:=new(presobject,init_id('no_pop')); } - | CDECL { $$:=new(presobject,init_id('cdecl')); } - | CALLBACK { $$:=new(presobject,init_id('no_pop')); } - | PASCAL { $$:=new(presobject,init_id('no_pop')); } - | WINAPI { $$:=new(presobject,init_id('no_pop')); } - | APIENTRY { $$:=new(presobject,init_id('no_pop')); } - | WINGDIAPI { $$:=new(presobject,init_id('no_pop')); } - | { $$:=nil } - ; - -systrap_specifier: - SYS_TRAP LKLAMMER dname RKLAMMER { $$:=$3; } - | { $$:=nil; } - ; - -declaration : - dec_specifier type_specifier dec_modifier declarator_list systrap_specifier SEMICOLON - { - IsExtern:=false; - (* by default we must pop the args pushed on stack *) - no_pop:=false; - if (assigned($4)and assigned($4^.p1)and assigned($4^.p1^.p1)) - and ($4^.p1^.p1^.typ=t_procdef) then - begin - repeat - If UseLib then - IsExtern:=true - else - IsExtern:=assigned($1)and($1^.str='extern'); - no_pop:=assigned($3) and ($3^.str='no_pop'); - - if (block_type<>bt_func) and not(createdynlib) then - begin - writeln(outfile); - block_type:=bt_func; - end; - - (* dyn. procedures must be put into a var block *) - if createdynlib then - begin - if (block_type<>bt_var) then - begin - if not(compactmode) then - writeln(outfile); - writeln(outfile,aktspace,'var'); - block_type:=bt_var; - end; - shift(2); - end; - if not CompactMode then - begin - write(outfile,aktspace); - if not IsExtern then - write(implemfile,aktspace); - end; - (* distinguish between procedure and function *) - if assigned($2) then - if ($2^.typ=t_void) and ($4^.p1^.p1^.p1=nil) then - begin - if createdynlib then - begin - write(outfile,$4^.p1^.p2^.p,' : procedure'); - end - else - begin - shift(10); - write(outfile,'procedure ',$4^.p1^.p2^.p); - end; - if assigned($4^.p1^.p1^.p2) then - write_args(outfile,$4^.p1^.p1^.p2); - if createdynlib then - begin - loaddynlibproc.add('pointer('+$4^.p1^.p2^.p+'):=GetProcAddress(hlib,'''+$4^.p1^.p2^.p+''');'); - freedynlibproc.add($4^.p1^.p2^.p+':=nil;'); - end - else if not IsExtern then - begin - write(implemfile,'procedure ',$4^.p1^.p2^.p); - if assigned($4^.p1^.p1^.p2) then - write_args(implemfile,$4^.p1^.p1^.p2); - end; - end - else - begin - if createdynlib then - begin - write(outfile,$4^.p1^.p2^.p,' : function'); - end - else - begin - shift(9); - write(outfile,'function ',$4^.p1^.p2^.p); - end; - - if assigned($4^.p1^.p1^.p2) then - write_args(outfile,$4^.p1^.p1^.p2); - write(outfile,':'); - write_p_a_def(outfile,$4^.p1^.p1^.p1,$2); - if createdynlib then - begin - loaddynlibproc.add('pointer('+$4^.p1^.p2^.p+'):=GetProcAddress(hlib,'''+$4^.p1^.p2^.p+''');'); - freedynlibproc.add($4^.p1^.p2^.p+':=nil;'); - end - else if not IsExtern then - begin - write(implemfile,'function ',$4^.p1^.p2^.p); - if assigned($4^.p1^.p1^.p2) then - write_args(implemfile,$4^.p1^.p1^.p2); - write(implemfile,':'); - write_p_a_def(implemfile,$4^.p1^.p1^.p1,$2); - end; - end; - if assigned($5) then - write(outfile,';systrap ',$5^.p); - (* No CDECL in interface for Uselib *) - if IsExtern and (not no_pop) then - write(outfile,';cdecl'); - popshift; - if createdynlib then - begin - writeln(outfile,';'); - end - else if UseLib then - begin - if IsExtern then - begin - write (outfile,';external'); - If UseName then - Write(outfile,' External_library name ''',$4^.p1^.p2^.p,''''); - end; - writeln(outfile,';'); - end - else - begin - writeln(outfile,';'); - if not IsExtern then - begin - writeln(implemfile,';'); - writeln(implemfile,aktspace,'begin'); - writeln(implemfile,aktspace,' { You must implement this function }'); - writeln(implemfile,aktspace,'end;'); - end; - end; - IsExtern:=false; - if not(compactmode) and not(createdynlib) then - writeln(outfile); - until not NeedEllipsisOverload; - end - else (* $4^.p1^.p1^.typ=t_procdef *) - if assigned($4)and assigned($4^.p1) then - begin - shift(2); - if block_type<>bt_var then - begin - if not(compactmode) then - writeln(outfile); - writeln(outfile,aktspace,'var'); - end; - block_type:=bt_var; - - shift(3); - - IsExtern:=assigned($1)and($1^.str='extern'); - (* walk through all declarations *) - hp:=$4; - while assigned(hp) and assigned(hp^.p1) do - begin - (* write new var name *) - if assigned(hp^.p1^.p2) and assigned(hp^.p1^.p2^.p) then - write(outfile,aktspace,hp^.p1^.p2^.p); - write(outfile,' : '); - shift(2); - (* write its type *) - write_p_a_def(outfile,hp^.p1^.p1,$2); - if assigned(hp^.p1^.p2)and assigned(hp^.p1^.p2^.p)then - begin - if isExtern then - write(outfile,';cvar;external') - else - write(outfile,';cvar;public'); - end; - writeln(outfile,';'); - popshift; - hp:=hp^.p2; - end; - popshift; - popshift; - end; - if assigned($1)then dispose($1,done); - if assigned($2)then dispose($2,done); - if assigned($4)then dispose($4,done); - } | - special_type_specifier SEMICOLON - { - if block_type<>bt_type then - begin - if not(compactmode) then - writeln(outfile); - writeln(outfile,aktspace,'type'); - block_type:=bt_type; - end; - shift(3); - if ( yyv[yysp-1]^.p2 <> nil ) then - begin - (* write new type name *) - TN:=TypeName($1^.p2^.p); - PN:=PointerName($1^.p2^.p); - (* define a Pointer type also for structs *) - if UsePPointers and (Uppercase(tn)<>Uppercase(pn)) and - assigned($1) and ($1^.typ in [t_uniondef,t_structdef]) then - writeln(outfile,aktspace,PN,' = ^',TN,';'); - write(outfile,aktspace,TN,' = '); - shift(2); - hp:=$1; - write_type_specifier(outfile,hp); - popshift; - (* enum_to_const can make a switch to const *) - if block_type=bt_type then - writeln(outfile,';'); - writeln(outfile); - flush(outfile); - popshift; - if must_write_packed_field then - write_packed_fields_info(outfile,hp,TN); - if assigned(hp) then - dispose(hp,done) - end - else - begin - TN:=TypeName(yyv[yysp-1]^.str); - PN:=PointerName(yyv[yysp-1]^.str); - if UsePPointers then writeln(outfile,aktspace,PN,' = ^',TN,';'); - if PackRecords then - writeln(outfile, aktspace, TN, ' = packed record') - else - writeln(outfile, aktspace, TN, ' = record'); - writeln(outfile, aktspace, ' {undefined structure}'); - writeln(outfile, aktspace, ' end;'); - writeln(outfile); - popshift; - end; - } | - TYPEDEF STRUCT dname dname SEMICOLON - { - (* TYPEDEF STRUCT dname dname SEMICOLON *) - if block_type<>bt_type then - begin - if not(compactmode) then - writeln(outfile); - writeln(outfile,aktspace,'type'); - block_type:=bt_type; - end; - PN:=TypeName($3^.p); - TN:=TypeName($4^.p); - if Uppercase(tn)<>Uppercase(pn) then - begin - shift(3); - writeln(outfile,aktspace,PN,' = ',TN,';'); - popshift; - end; - if assigned($3) then - dispose($3,done); - if assigned($4) then - dispose($4,done); - } | - TYPEDEF type_specifier LKLAMMER dec_modifier declarator RKLAMMER maybe_space LKLAMMER argument_declaration_list RKLAMMER SEMICOLON - { - (* TYPEDEF type_specifier LKLAMMER dec_modifier declarator RKLAMMER maybe_space LKLAMMER argument_declaration_list RKLAMMER SEMICOLON *) - if block_type<>bt_type then - begin - if not(compactmode) then - writeln(outfile); - writeln(outfile,aktspace,'type'); - block_type:=bt_type; - end; - no_pop:=assigned($4) and ($4^.str='no_pop'); - shift(3); - (* walk through all declarations *) - hp:=$5; - if assigned(hp) then - begin - hp:=$5; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_two(t_procdef,nil,$9)); - hp:=$5; - if assigned(hp^.p1) and assigned(hp^.p1^.p1) then - begin - writeln(outfile); - (* write new type name *) - write(outfile,aktspace,TypeName(hp^.p2^.p),' = '); - shift(2); - write_p_a_def(outfile,hp^.p1,$2); - popshift; - (* if no_pop it is normal fpc calling convention *) - if is_procvar and - (not no_pop) then - write(outfile,';cdecl'); - writeln(outfile,';'); - flush(outfile); - end; - end; - popshift; - if assigned($2)then - dispose($2,done); - if assigned($4)then - dispose($4,done); - if assigned($5)then (* disposes also $9 *) - dispose($5,done); - } | - TYPEDEF type_specifier dec_modifier declarator_list SEMICOLON - { - (* TYPEDEF type_specifier dec_modifier declarator_list SEMICOLON *) - if block_type<>bt_type then - begin - if not(compactmode) then - writeln(outfile); - writeln(outfile,aktspace,'type'); - block_type:=bt_type; - end; - no_pop:=assigned($3) and ($3^.str='no_pop'); - shift(3); - (* Get the name to write the type definition for, try - to use the tag name first *) - if assigned($2^.p2) then - begin - ph:=$2^.p2; - end - else - begin - if not assigned($4^.p1^.p2) then - internalerror(4444); - ph:=$4^.p1^.p2; - end; - (* write type definition *) - is_procvar:=false; - writeln(outfile); - TN:=TypeName(ph^.p); - PN:=PointerName(ph^.p); - if UsePPointers and (Uppercase(tn)<>Uppercase(pn)) and - assigned($2) and ($2^.typ<>t_procdef) then - writeln(outfile,aktspace,PN,' = ^',TN,';'); - (* write new type name *) - write(outfile,aktspace,TN,' = '); - shift(2); - write_type_specifier(outfile,$2); - popshift; - (* if no_pop it is normal fpc calling convention *) - if is_procvar and - (not no_pop) then - write(outfile,';cdecl'); - writeln(outfile,';'); - flush(outfile); - (* write alias names, ph points to the name already used *) - hp:=$4; - while assigned(hp) do - begin - if (hp<>ph) and assigned(hp^.p1^.p2) then - begin - PN:=TypeName(ph^.p); - TN:=TypeName(hp^.p1^.p2^.p); - if Uppercase(TN)<>Uppercase(PN) then - begin - write(outfile,aktspace,TN,' = '); - write_p_a_def(outfile,hp^.p1^.p1,ph); - writeln(outfile,';'); - PN:=PointerName(hp^.p1^.p2^.p); - if UsePPointers and (Uppercase(tn)<>Uppercase(pn)) and - assigned($2) and ($2^.typ<>t_procdef) then - writeln(outfile,aktspace,PN,' = ^',TN,';'); - end; - end; - hp:=hp^.next; - end; - popshift; - if must_write_packed_field then - if assigned(ph) then - write_packed_fields_info(outfile,$2,ph^.str) - else if assigned($2^.p2) then - write_packed_fields_info(outfile,$2,$2^.p2^.str); - if assigned($2)then - dispose($2,done); - if assigned($3)then - dispose($3,done); - if assigned($4)then - dispose($4,done); - } | - TYPEDEF dname SEMICOLON - { - if block_type<>bt_type then - begin - if not(compactmode) then - writeln(outfile); - writeln(outfile,aktspace,'type'); - block_type:=bt_type; - end; - shift(3); - (* write as pointer *) - writeln(outfile); - writeln(outfile,'(* generic typedef *)'); - writeln(outfile,aktspace,$2^.p,' = pointer;'); - flush(outfile); - popshift; - if assigned($2) then - dispose($2,done); - } - | error error_info SEMICOLON - { writeln(outfile,'in declaration at line ',line_no,' *)'); - aktspace:=''; - in_space_define:=0; - in_define:=false; - arglevel:=0; - if_nb:=0; - aktspace:=' '; - space_index:=1; - yyerrok;} - ; - -define_dec : - DEFINE dname LKLAMMER enum_list RKLAMMER para_def_expr NEW_LINE - { - (* DEFINE dname LKLAMMER enum_list RKLAMMER para_def_expr NEW_LINE *) - if not stripinfo then - begin - writeln (outfile,aktspace,'{ was #define dname(params) para_def_expr }'); - writeln (implemfile,aktspace,'{ was #define dname(params) para_def_expr }'); - if assigned($4) then - begin - writeln (outfile,aktspace,'{ argument types are unknown }'); - writeln (implemfile,aktspace,'{ argument types are unknown }'); - end; - if not assigned($6^.p3) then - begin - writeln(outfile,aktspace,'{ return type might be wrong } '); - writeln(implemfile,aktspace,'{ return type might be wrong } '); - end; - end; - block_type:=bt_func; - write(outfile,aktspace,'function ',$2^.p); - write(implemfile,aktspace,'function ',$2^.p); - - if assigned($4) then - begin - write(outfile,'('); - write(implemfile,'('); - ph:=new(presobject,init_one(t_enumdef,$4)); - write_def_params(outfile,ph); - write_def_params(implemfile,ph); - if assigned(ph) then dispose(ph,done); - ph:=nil; - (* types are unknown *) - write(outfile,' : longint)'); - write(implemfile,' : longint)'); - end; - if not assigned($6^.p3) then - begin - writeln(outfile,' : longint;',aktspace,commentstr); - writeln(implemfile,' : longint;'); - flush(outfile); - end - else - begin - write(outfile,' : '); - write_type_specifier(outfile,$6^.p3); - writeln(outfile,';',aktspace,commentstr); - flush(outfile); - write(implemfile,' : '); - write_type_specifier(implemfile,$6^.p3); - writeln(implemfile,';'); - end; - writeln(outfile); - flush(outfile); - hp:=new(presobject,init_two(t_funcname,$2,$6)); - write_funexpr(implemfile,hp); - writeln(implemfile); - flush(implemfile); - if assigned(hp)then dispose(hp,done); - }| - DEFINE dname SPACE_DEFINE NEW_LINE - { - (* DEFINE dname SPACE_DEFINE NEW_LINE *) - writeln(outfile,'{$define ',$2^.p,'}',aktspace,commentstr); - flush(outfile); - if assigned($2)then - dispose($2,done); - }| - DEFINE dname NEW_LINE - { - writeln(outfile,'{$define ',$2^.p,'}',aktspace,commentstr); - flush(outfile); - if assigned($2)then - dispose($2,done); - } | - DEFINE dname SPACE_DEFINE def_expr NEW_LINE - { - (* DEFINE dname SPACE_DEFINE def_expr NEW_LINE *) - if ($4^.typ=t_exprlist) and - $4^.p1^.is_const and - not assigned($4^.next) then - begin - if block_type<>bt_const then - begin - writeln(outfile); - writeln(outfile,aktspace,'const'); - end; - block_type:=bt_const; - shift(3); - write(outfile,aktspace,$2^.p); - write(outfile,' = '); - flush(outfile); - write_expr(outfile,$4^.p1); - writeln(outfile,';',aktspace,commentstr); - popshift; - if assigned($2) then - dispose($2,done); - if assigned($4) then - dispose($4,done); - end - else - begin - if not stripinfo then - begin - writeln (outfile,aktspace,'{ was #define dname def_expr }'); - writeln (implemfile,aktspace,'{ was #define dname def_expr }'); - end; - block_type:=bt_func; - write(outfile,aktspace,'function ',$2^.p); - write(implemfile,aktspace,'function ',$2^.p); - shift(2); - if not assigned($4^.p3) then - begin - writeln(outfile,' : longint;'); - writeln(outfile,aktspace,' { return type might be wrong }'); - flush(outfile); - writeln(implemfile,' : longint;'); - writeln(implemfile,aktspace,' { return type might be wrong }'); - end - else - begin - write(outfile,' : '); - write_type_specifier(outfile,$4^.p3); - writeln(outfile,';',aktspace,commentstr); - flush(outfile); - write(implemfile,' : '); - write_type_specifier(implemfile,$4^.p3); - writeln(implemfile,';'); - end; - writeln(outfile); - flush(outfile); - hp:=new(presobject,init_two(t_funcname,$2,$4)); - write_funexpr(implemfile,hp); - popshift; - dispose(hp,done); - writeln(implemfile); - flush(implemfile); - end; - } - | error error_info NEW_LINE - { writeln(outfile,'in define line ',line_no,' *)'); - aktspace:=''; - in_space_define:=0; - in_define:=false; - arglevel:=0; - if_nb:=0; - aktspace:=' '; - space_index:=1; - - yyerrok;} - ; - -closed_list : LGKLAMMER member_list RGKLAMMER - {$$:=$2;} | - error error_info RGKLAMMER - { writeln(outfile,' in member_list *)'); - yyerrok; - $$:=nil; - } - ; - -closed_enum_list : LGKLAMMER enum_list RGKLAMMER - {$$:=$2;} | - error error_info RGKLAMMER - { writeln(outfile,' in enum_list *)'); - yyerrok; - $$:=nil; - } - ; - -special_type_specifier : - STRUCT dname closed_list _PACKED - { - if (not is_packed) and (not packrecords) then - writeln(outfile,'{$PACKRECORDS 1}'); - is_packed:=true; - $$:=new(presobject,init_two(t_structdef,$3,$2)); - } | - STRUCT dname closed_list - { - if (is_packed) and (not packrecords) then - writeln(outfile,'{$PACKRECORDS 4}'); - is_packed:=false; - $$:=new(presobject,init_two(t_structdef,$3,$2)); - } | - UNION dname closed_list _PACKED - { - if (not is_packed) and (not packrecords) then - writeln(outfile,'{$PACKRECORDS 1}'); - is_packed:=true; - $$:=new(presobject,init_two(t_uniondef,$3,$2)); - } | - UNION dname closed_list - { - $$:=new(presobject,init_two(t_uniondef,$3,$2)); - } | - UNION dname - { - $$:=$2; - } | - STRUCT dname - { - $$:=$2; - } | - ENUM dname closed_enum_list - { - $$:=new(presobject,init_two(t_enumdef,$3,$2)); - } | - ENUM dname - { - $$:=$2; - }; - -type_specifier : - _CONST type_specifier - { - if not stripinfo then - writeln(outfile,'(* Const before type ignored *)'); - $$:=$2; - } | - UNION closed_list _PACKED - { - if (not is_packed) and (not packrecords)then - writeln(outfile,'{$PACKRECORDS 1}'); - is_packed:=true; - $$:=new(presobject,init_one(t_uniondef,$2)); - } | - UNION closed_list - { - $$:=new(presobject,init_one(t_uniondef,$2)); - } | - STRUCT closed_list _PACKED - { - if (not is_packed) and (not packrecords) then - writeln(outfile,'{$PACKRECORDS 1}'); - is_packed:=true; - $$:=new(presobject,init_one(t_structdef,$2)); - } | - STRUCT closed_list - { - if (is_packed) and (not packrecords) then - writeln(outfile,'{$PACKRECORDS 4}'); - is_packed:=false; - $$:=new(presobject,init_one(t_structdef,$2)); - } | - ENUM closed_enum_list - { - $$:=new(presobject,init_one(t_enumdef,$2)); - } | - special_type_specifier - { - $$:=$1; - } | - simple_type_name { $$:=$1; } - ; - -member_list : member_declaration member_list - { - $$:=new(presobject,init_one(t_memberdeclist,$1)); - $$^.next:=$2; - } | - member_declaration - { - $$:=new(presobject,init_one(t_memberdeclist,$1)); - } - ; - -member_declaration : - type_specifier declarator_list SEMICOLON - { - $$:=new(presobject,init_two(t_memberdec,$1,$2)); - } - ; - -dname : ID { (*dname*) - $$:=new(presobject,init_id(act_token)); - } - ; - -special_type_name : - SIGNED special_type_name - { - hp:=$2; - $$:=hp; - if assigned(hp) then - begin - s:=strpas(hp^.p); - if s=UINT_STR then - s:=INT_STR - else if s=USHORT_STR then - s:=SHORT_STR - else if s=UCHAR_STR then - s:=CHAR_STR - else if s=QWORD_STR then - s:=INT64_STR - else - s:=''; - if s<>'' then - hp^.setstr(s); - end; - } | - UNSIGNED special_type_name - { - hp:=$2; - $$:=hp; - if assigned(hp) then - begin - s:=strpas(hp^.p); - if s=INT_STR then - s:=UINT_STR - else if s=SHORT_STR then - s:=USHORT_STR - else if s=CHAR_STR then - s:=UCHAR_STR - else if s=INT64_STR then - s:=QWORD_STR - else - s:=''; - if s<>'' then - hp^.setstr(s); - end; - } | - INT - { - $$:=new(presobject,init_intid(INT_STR)); - } | - LONG - { - $$:=new(presobject,init_intid(INT_STR)); - } | - LONG INT - { - $$:=new(presobject,init_intid(INT_STR)); - } | - LONG LONG - { - $$:=new(presobject,init_intid(INT64_STR)); - } | - LONG LONG INT - { - $$:=new(presobject,init_intid(INT64_STR)); - } | - SHORT - { - $$:=new(presobject,init_intid(SHORT_STR)); - } | - SHORT INT - { - $$:=new(presobject,init_intid(SHORT_STR)); - } | - REAL - { - $$:=new(presobject,init_intid(REAL_STR)); - } | - VOID - { - $$:=new(presobject,init_no(t_void)); - } | - _CHAR - { - $$:=new(presobject,init_intid(CHAR_STR)); - } | - UNSIGNED - { - $$:=new(presobject,init_intid(UINT_STR)); - } - ; - -simple_type_name : - special_type_name - { - $$:=$1; - } - | - dname - { - $$:=$1; - tn:=$$^.str; - if removeunderscore and - (length(tn)>1) and (tn[1]='_') then - $$^.setstr(Copy(tn,2,length(tn)-1)); - } - ; - -declarator_list : - declarator_list COMMA declarator - { - $$:=$1; - hp:=$1; - while assigned(hp^.next) do - hp:=hp^.next; - hp^.next:=new(presobject,init_one(t_declist,$3)); - }| - error error_info COMMA declarator_list - { - writeln(outfile,' in declarator_list *)'); - $$:=$4; - yyerrok; - }| - error error_info - { - writeln(outfile,' in declarator_list *)'); - yyerrok; - }| - declarator - { - $$:=new(presobject,init_one(t_declist,$1)); - } - ; - -argument_declaration : type_specifier declarator - { - $$:=new(presobject,init_two(t_arg,$1,$2)); - } | - type_specifier STAR declarator - { - (* type_specifier STAR declarator *) - hp:=new(presobject,init_one(t_pointerdef,$1)); - $$:=new(presobject,init_two(t_arg,hp,$3)); - } | - type_specifier abstract_declarator - { - $$:=new(presobject,init_two(t_arg,$1,$2)); - } - ; - -argument_declaration_list : argument_declaration - { - $$:=new(presobject,init_two(t_arglist,$1,nil)); - } | - argument_declaration COMMA argument_declaration_list - { - $$:=new(presobject,init_two(t_arglist,$1,nil)); - $$^.next:=$3; - } | - ELLIPSIS - { - $$:=new(presobject,init_two(t_arglist,ellipsisarg,nil)); - } | - { - $$:=nil; - } - ; - -size_overrider : - _FAR - { $$:=new(presobject,init_id('far'));} - | _NEAR - { $$:=new(presobject,init_id('near'));} - | _HUGE - { $$:=new(presobject,init_id('huge'));} - ; - -declarator : - _CONST declarator - { - if not stripinfo then - writeln(outfile,'(* Const before declarator ignored *)'); - $$:=$2; - } | - size_overrider STAR declarator - { - if not stripinfo then - writeln(outfile,aktspace,'(* ',$1^.p,' ignored *)'); - dispose($1,done); - hp:=$3; - $$:=hp; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_one(t_pointerdef,nil)); - } | - STAR declarator - { - (* %prec PSTAR this was wrong!! *) - hp:=$2; - $$:=hp; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_one(t_pointerdef,nil)); - } | - _AND declarator %prec P_AND - { - hp:=$2; - $$:=hp; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_one(t_addrdef,nil)); - } | - dname COLON expr - { - (* size specifier supported *) - hp:=new(presobject,init_one(t_size_specifier,$3)); - $$:=new(presobject,init_three(t_dec,nil,$1,hp)); - }| - dname ASSIGN expr - { - if not stripinfo then - writeln(outfile,'(* Warning : default value for ',$1^.p,' ignored *)'); - hp:=new(presobject,init_one(t_default_value,$3)); - $$:=new(presobject,init_three(t_dec,nil,$1,hp)); - }| - dname - { - $$:=new(presobject,init_two(t_dec,nil,$1)); - }| - declarator LKLAMMER argument_declaration_list RKLAMMER - { - hp:=$1; - $$:=hp; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_two(t_procdef,nil,$3)); - } | - declarator no_arg - { - hp:=$1; - $$:=hp; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_two(t_procdef,nil,nil)); - } | - declarator LECKKLAMMER expr RECKKLAMMER - { - hp:=$1; - $$:=hp; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_two(t_arraydef,nil,$3)); - } | - declarator LECKKLAMMER RECKKLAMMER - { - (* this is translated into a pointer *) - hp:=$1; - $$:=hp; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_two(t_arraydef,nil,nil)); - } | - LKLAMMER declarator RKLAMMER - { - $$:=$2; - } - ; - -no_arg : LKLAMMER RKLAMMER | - LKLAMMER VOID RKLAMMER; - -abstract_declarator : - _CONST abstract_declarator - { - if not stripinfo then - writeln(outfile,'(* Const before abstract_declarator ignored *)'); - $$:=$2; - } | - size_overrider STAR abstract_declarator - { - if not stripinfo then - writeln(outfile,aktspace,'(* ',$1^.p,' ignored *)'); - dispose($1,done); - hp:=$3; - $$:=hp; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_one(t_pointerdef,nil)); - } | - STAR abstract_declarator %prec PSTAR - { - hp:=$2; - $$:=hp; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_one(t_pointerdef,nil)); - } | - abstract_declarator LKLAMMER argument_declaration_list RKLAMMER - { - hp:=$1; - $$:=hp; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_two(t_procdef,nil,$3)); - } | - abstract_declarator no_arg - { - hp:=$1; - $$:=hp; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_two(t_procdef,nil,nil)); - } | - abstract_declarator LECKKLAMMER expr RECKKLAMMER - { - hp:=$1; - $$:=hp; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_two(t_arraydef,nil,$3)); - } | - declarator LECKKLAMMER RECKKLAMMER - { - (* this is translated into a pointer *) - hp:=$1; - $$:=hp; - while assigned(hp^.p1) do - hp:=hp^.p1; - hp^.p1:=new(presobject,init_two(t_arraydef,nil,nil)); - } | - LKLAMMER abstract_declarator RKLAMMER - { - $$:=$2; - } | - { - $$:=new(presobject,init_two(t_dec,nil,nil)); - } - ; - -expr : - shift_expr - {$$:=$1;} - ; - -shift_expr : - expr EQUAL expr - { $$:=new(presobject,init_bop(' = ',$1,$3));} - | expr UNEQUAL expr - { $$:=new(presobject,init_bop(' <> ',$1,$3));} - | expr GT expr - { $$:=new(presobject,init_bop(' > ',$1,$3));} - | expr GTE expr - { $$:=new(presobject,init_bop(' >= ',$1,$3));} - | expr LT expr - { $$:=new(presobject,init_bop(' < ',$1,$3));} - | expr LTE expr - { $$:=new(presobject,init_bop(' <= ',$1,$3));} - | expr _PLUS expr - { $$:=new(presobject,init_bop(' + ',$1,$3));} - | expr MINUS expr - { $$:=new(presobject,init_bop(' - ',$1,$3));} - | expr STAR expr - { $$:=new(presobject,init_bop(' * ',$1,$3));} - | expr _SLASH expr - { $$:=new(presobject,init_bop(' / ',$1,$3));} - | expr _OR expr - { $$:=new(presobject,init_bop(' or ',$1,$3));} - | expr _AND expr - { $$:=new(presobject,init_bop(' and ',$1,$3));} - | expr _NOT expr - { $$:=new(presobject,init_bop(' not ',$1,$3));} - | expr _SHL expr - { $$:=new(presobject,init_bop(' shl ',$1,$3));} - | expr _SHR expr - { $$:=new(presobject,init_bop(' shr ',$1,$3));} - | expr QUESTIONMARK colon_expr - { $3^.p1:=$1; - $$:=$3; - inc(if_nb); - $$^.p:=strpnew('if_local'+str(if_nb)); - } | - unary_expr {$$:=$1;} - ; - -colon_expr : expr COLON expr - { (* if A then B else C *) - $$:=new(presobject,init_three(t_ifexpr,nil,$1,$3));} - ; - -maybe_empty_unary_expr : - unary_expr - { $$:=$1; } - | - { $$:=nil;} - ; - -unary_expr: - dname - { - $$:=$1; - } | - special_type_name - { - $$:=$1; - } | - CSTRING - { - (* remove L prefix for widestrings *) - s:=act_token; - if Win32headers and (s[1]='L') then - delete(s,1,1); - $$:=new(presobject,init_id(''''+copy(s,2,length(s)-2)+'''')); - } | - NUMBER - { - $$:=new(presobject,init_id(act_token)); - } | - unary_expr POINT expr - { - $$:=new(presobject,init_bop('.',$1,$3)); - } | - unary_expr DEREF expr - { - $$:=new(presobject,init_bop('^.',$1,$3)); - } | - MINUS unary_expr - { - $$:=new(presobject,init_preop('-',$2)); - }| - _AND unary_expr %prec R_AND - { - $$:=new(presobject,init_preop('@',$2)); - }| - _NOT unary_expr - { - $$:=new(presobject,init_preop(' not ',$2)); - } | - LKLAMMER dname RKLAMMER maybe_empty_unary_expr - { - if assigned($4) then - $$:=new(presobject,init_two(t_typespec,$2,$4)) - else - $$:=$2; - } | - LKLAMMER type_specifier RKLAMMER unary_expr - { - $$:=new(presobject,init_two(t_typespec,$2,$4)); - } | - LKLAMMER type_specifier STAR RKLAMMER unary_expr - { - hp:=new(presobject,init_one(t_pointerdef,$2)); - $$:=new(presobject,init_two(t_typespec,hp,$5)); - } | - LKLAMMER type_specifier size_overrider STAR RKLAMMER unary_expr - { - if not stripinfo then - writeln(outfile,aktspace,'(* ',$3^.p,' ignored *)'); - dispose($3,done); - write_type_specifier(outfile,$2); - writeln(outfile,' ignored *)'); - hp:=new(presobject,init_one(t_pointerdef,$2)); - $$:=new(presobject,init_two(t_typespec,hp,$6)); - } | - dname LKLAMMER exprlist RKLAMMER - { - hp:=new(presobject,init_one(t_exprlist,$1)); - $$:=new(presobject,init_three(t_funexprlist,hp,$3,nil)); - } | - LKLAMMER shift_expr RKLAMMER - { - $$:=$2; - } | - LKLAMMER STAR unary_expr RKLAMMER maybe_space LKLAMMER exprlist RKLAMMER - { - $$:=new(presobject,init_two(t_callop,$3,$7)); - } | - dname LECKKLAMMER exprlist RECKKLAMMER - { - $$:=new(presobject,init_two(t_arrayop,$1,$3)); - } - ; - -enum_list : - enum_element COMMA enum_list - { (*enum_element COMMA enum_list *) - $$:=$1; - $$^.next:=$3; - } | - enum_element { - $$:=$1; - } | - {(* empty enum list *) - $$:=nil;}; - -enum_element : - dname _ASSIGN expr - { begin (*enum_element: dname _ASSIGN expr *) - $$:=new(presobject,init_two(t_enumlist,$1,$3)); - end; - } | - dname - { - begin (*enum_element: dname*) - $$:=new(presobject,init_two(t_enumlist,$1,nil)); - end; - }; - - -def_expr : - unary_expr - { - if $1^.typ=t_funexprlist then - $$:=$1 - else - $$:=new(presobject,init_two(t_exprlist,$1,nil)); - (* if here is a type specifier - we know the return type *) - if ($1^.typ=t_typespec) then - $$^.p3:=$1^.p1^.get_copy; - } - ; - -para_def_expr : - SPACE_DEFINE def_expr - { - $$:=$2; - } | - maybe_space LKLAMMER def_expr RKLAMMER - { - $$:=$3 - } - ; - -exprlist : exprelem COMMA exprlist - { (*exprlist COMMA expr*) - $$:=$1; - $1^.next:=$3; - } | - exprelem - { - $$:=$1; - } | - { (* empty expression list *) - $$:=nil; }; - -exprelem : - expr - { - $$:=new(presobject,init_one(t_exprlist,$1)); - }; - -%% - -function yylex : Integer; -begin - yylex:=scan.yylex; - line_no:=yylineno; -end; - -procedure WriteFileHeader(var headerfile: Text); -var - i: integer; - originalstr: string; -begin -{ write unit header } - if not includefile then - begin - if createdynlib then - writeln(headerfile,'{$mode objfpc}'); - writeln(headerfile,'unit ',unitname,';'); - writeln(headerfile,'interface'); - writeln(headerfile); - writeln(headerfile,'{'); - writeln(headerfile,' Automatically converted by H2Pas ',version,' from ',inputfilename); - writeln(headerfile,' The following command line parameters were used:'); - for i:=1 to paramcount do - writeln(headerfile,' ',paramstr(i)); - writeln(headerfile,'}'); - writeln(headerfile); - end; - if UseName then - begin - writeln(headerfile,aktspace,'const'); - writeln(headerfile,aktspace,' External_library=''',libfilename,'''; {Setup as you need}'); - writeln(headerfile); - end; - if UsePPointers then - begin - Writeln(headerfile,aktspace,'{ Pointers to basic pascal types, inserted by h2pas conversion program.}'); - Writeln(headerfile,aktspace,'Type'); - Writeln(headerfile,aktspace,' PLongint = ^Longint;'); - Writeln(headerfile,aktspace,' PSmallInt = ^SmallInt;'); - Writeln(headerfile,aktspace,' PByte = ^Byte;'); - Writeln(headerfile,aktspace,' PWord = ^Word;'); - Writeln(headerfile,aktspace,' PDWord = ^DWord;'); - Writeln(headerfile,aktspace,' PDouble = ^Double;'); - Writeln(headerfile); - end; - if PTypeList.count <> 0 then - Writeln(headerfile,aktspace,'Type'); - for i:=0 to (PTypeList.Count-1) do - begin - originalstr:=copy(PTypelist[i],2,length(PTypeList[i])); - Writeln(headerfile,aktspace,PTypeList[i],' = ^',originalstr,';'); - end; - if not packrecords then - begin - writeln(headerfile,'{$IFDEF FPC}'); - writeln(headerfile,'{$PACKRECORDS C}'); - writeln(headerfile,'{$ENDIF}'); - end; - writeln(headerfile); -end; - - -var - SS : string; - i : longint; - headerfile: Text; - finaloutfile: Text; -begin - pointerprefix:=false; -{ Initialize } - PTypeList:=TStringList.Create; - PTypeList.Sorted := true; - PTypeList.Duplicates := dupIgnore; - freedynlibproc:=TStringList.Create; - loaddynlibproc:=TStringList.Create; - yydebug:=true; - aktspace:=''; - block_type:=bt_no; - IsExtern:=false; -{ Read commandline options } - ProcessOptions; - if not CompactMode then - aktspace:=' '; -{ open input and output files } - assign(yyinput, inputfilename); - {$I-} - reset(yyinput); - {$I+} - if ioresult<>0 then - begin - writeln('file ',inputfilename,' not found!'); - halt(1); - end; - { This is the intermediate output file } - assign(outfile, 'ext3.tmp'); - {$I-} - rewrite(outfile); - {$I+} - if ioresult<>0 then - begin - writeln('file ext3.tmp could not be created!'); - halt(1); - end; - writeln(outfile); -{ Open tempfiles } - { This is where the implementation section of the unit shall be stored } - Assign(implemfile,'ext.tmp'); - rewrite(implemfile); - Assign(tempfile,'ext2.tmp'); - rewrite(tempfile); -{ Parse! } - yyparse; -{ Write implementation if needed } - if not(includefile) then - begin - writeln(outfile); - writeln(outfile,'implementation'); - writeln(outfile); - end; - { here we have a problem if a line is longer than 255 chars !! } - reset(implemfile); - while not eof(implemfile) do - begin - readln(implemfile,SS); - writeln(outfile,SS); - end; - - if createdynlib then - begin - writeln(outfile,' uses'); - writeln(outfile,' SysUtils,'); - writeln(outfile,'{$ifdef Win32}'); - writeln(outfile,' Windows;'); - writeln(outfile,'{$else}'); - writeln(outfile,' DLLFuncs;'); - writeln(outfile,'{$endif win32}'); - writeln(outfile); - writeln(outfile,' var'); - writeln(outfile,' hlib : thandle;'); - writeln(outfile); - writeln(outfile); - writeln(outfile,' procedure Free',unitname,';'); - writeln(outfile,' begin'); - writeln(outfile,' FreeLibrary(hlib);'); - - for i:=0 to (freedynlibproc.Count-1) do - Writeln(outfile,' ',freedynlibproc[i]); - - writeln(outfile,' end;'); - writeln(outfile); - writeln(outfile); - writeln(outfile,' procedure Load',unitname,'(lib : pchar);'); - writeln(outfile,' begin'); - writeln(outfile,' Free',unitname,';'); - writeln(outfile,' hlib:=LoadLibrary(lib);'); - writeln(outfile,' if hlib=0 then'); - writeln(outfile,' raise Exception.Create(format(''Could not load library: %s'',[lib]));'); - writeln(outfile); - for i:=0 to (loaddynlibproc.Count-1) do - Writeln(outfile,' ',loaddynlibproc[i]); - writeln(outfile,' end;'); - - writeln(outfile); - writeln(outfile); - - writeln(outfile,'initialization'); - writeln(outfile,' Load',unitname,'(''',unitname,''');'); - writeln(outfile,'finalization'); - writeln(outfile,' Free',unitname,';'); - end; - - { write end of file } - writeln(outfile); - if not(includefile) then - writeln(outfile,'end.'); - { close and erase tempfiles } - close(implemfile); - erase(implemfile); - close(tempfile); - erase(tempfile); - flush(outfile); - - {**** generate full file ****} - assign(headerfile, 'ext4.tmp'); - {$I-} - rewrite(headerfile); - {$I+} - if ioresult<>0 then - begin - writeln('file ext4.tmp could not be created!'); - halt(1); - end; - WriteFileHeader(HeaderFile); - - { Final output filename } - assign(finaloutfile, outputfilename); - {$I-} - rewrite(finaloutfile); - {$I+} - if ioresult<>0 then - begin - writeln('file ',outputfilename,' could not be created!'); - halt(1); - end; - writeln(finaloutfile); - - { Read unit header file } - reset(headerfile); - while not eof(headerfile) do - begin - readln(headerfile,SS); - writeln(finaloutfile,SS); - end; - { Read interface and implementation file } - reset(outfile); - while not eof(outfile) do - begin - readln(outfile,SS); - writeln(finaloutfile,SS); - end; - - close(HeaderFile); - close(outfile); - close(finaloutfile); - erase(outfile); - erase(headerfile); - - PTypeList.Free; - freedynlibproc.free; - loaddynlibproc.free; -end. - +%{ +program h2pas; + +(* + $Id: h2pas.y,v 1.10 2005/02/20 11:09:41 florian Exp $ + Copyright (c) 1998-2000 by Florian Klaempfl + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + ****************************************************************************) + + uses + SysUtils,classes, + options,scan,converu,lexlib,yacclib; + + type + YYSTYPE = presobject; + + const + SHORT_STR = 'smallint'; + USHORT_STR = 'word'; + INT_STR = 'longint'; + UINT_STR = 'dword'; + CHAR_STR = 'char'; + UCHAR_STR = 'byte'; { should we use byte or char for 'unsigned char' ?? } + INT64_STR = 'int64'; + QWORD_STR = 'qword'; + REAL_STR = 'double'; + WCHAR_STR = 'widechar'; + + var + hp,ph : presobject; + implemfile : text; (* file for implementation headers extern procs *) + IsExtern : boolean; + NeedEllipsisOverload : boolean; + must_write_packed_field : boolean; + tempfile : text; + No_pop : boolean; + s,TN,PN : String; + pointerprefix: boolean; + freedynlibproc, + loaddynlibproc : tstringlist; + + +(* $ define yydebug + compile with -dYYDEBUG to get debugging info *) + + const + (* number of a?b:c construction in one define *) + if_nb : longint = 0; + is_packed : boolean = false; + is_procvar : boolean = false; + + var space_array : array [0..255] of byte; + space_index : byte; + + { Used when PPointers is used - pointer type definitions } + PTypeList : TStringList; + + + procedure shift(space_number : byte); + var + i : byte; + begin + space_array[space_index]:=space_number; + inc(space_index); + for i:=1 to space_number do + aktspace:=aktspace+' '; + end; + + procedure popshift; + begin + dec(space_index); + if space_index<0 then + internalerror(20); + delete(aktspace,1,space_array[space_index]); + end; + + function str(i : longint) : string; + var + s : string; + begin + system.str(i,s); + str:=s; + end; + + function hexstr(i : cardinal) : string; + + const + HexTbl : array[0..15] of char='0123456789ABCDEF'; + var + str : string; + begin + str:=''; + while i<>0 do + begin + str:=hextbl[i and $F]+str; + i:=i shr 4; + end; + if str='' then str:='0'; + hexstr:='$'+str; + end; + + function uppercase(s : string) : string; + var + i : byte; + begin + for i:=1 to length(s) do + s[i]:=UpCase(s[i]); + uppercase:=s; + end; + + procedure write_type_specifier(var outfile:text; p : presobject);forward; + procedure write_p_a_def(var outfile:text; p,simple_type : presobject);forward; + procedure write_ifexpr(var outfile:text; p : presobject);forward; + procedure write_funexpr(var outfile:text; p : presobject);forward; + + procedure yymsg(const msg : string); + begin + writeln('line ',line_no,': ',msg); + end; + + + { This converts pascal reserved words to + the correct syntax. + } + function FixId(const s:string):string; + const + maxtokens = 14; + reservedid: array[1..maxtokens] of string[14] = + ( + 'CLASS', + 'DISPOSE', + 'FUNCTION', + 'FALSE', + 'LABEL', + 'NEW', + 'PROPERTY', + 'PROCEDURE', + 'RECORD', + 'REPEAT', + 'STRING', + 'TYPE', + 'TRUE', + 'UNTIL' + ); + var + b : boolean; + up : string; + i: integer; + begin + if s='' then + begin + FixId:=''; + exit; + end; + b:=false; + up:=Uppercase(s); + for i:=1 to maxtokens do + begin + if up=reservedid[i] then + begin + b:=true; + break; + end; + end; + if b then + FixId:='_'+s + else + FixId:=s; + end; + + + + function TypeName(const s:string):string; + var + i : longint; + begin + i:=1; + if RemoveUnderScore and (length(s)>1) and (s[1]='_') then + i:=2; + if PrependTypes then + TypeName:='T'+Copy(s,i,255) + else + TypeName:=Copy(s,i,255); + end; + + + function PointerName(const s:string):string; + var + i : longint; + begin + i:=1; + if RemoveUnderScore and (length(s)>1) and (s[1]='_') then + i:=2; + if UsePPointers then + begin + PointerName:='P'+Copy(s,i,255); + PTypeList.Add(PointerName); + end + else + PointerName:=Copy(s,i,255); + if PointerPrefix then + PTypeList.Add('P'+s); + end; + + + procedure write_packed_fields_info(var outfile:text; p : presobject; ph : string); + var + hp1,hp2,hp3 : presobject; + is_sized : boolean; + line : string; + flag_index : longint; + name : pchar; + ps : byte; + + begin + { write out the tempfile created } + close(tempfile); + reset(tempfile); + is_sized:=false; + flag_index:=0; + writeln(outfile); + writeln(outfile,aktspace,'const'); + shift(3); + while not eof(tempfile) do + begin + readln(tempfile,line); + ps:=pos('&',line); + if ps>0 then + line:=copy(line,1,ps-1)+ph+'_'+copy(line,ps+1,255); + writeln(outfile,aktspace,line); + end; + writeln(outfile); + close(tempfile); + rewrite(tempfile); + popshift; + (* walk through all members *) + hp1 := p^.p1; + while assigned(hp1) do + begin + (* hp2 is t_memberdec *) + hp2:=hp1^.p1; + (* hp3 is t_declist *) + hp3:=hp2^.p2; + while assigned(hp3) do + begin + if assigned(hp3^.p1^.p3) and + (hp3^.p1^.p3^.typ = t_size_specifier) then + begin + is_sized:=true; + name:=hp3^.p1^.p2^.p; + { get function in interface } + write(outfile,aktspace,'function ',name); + write(outfile,'(var a : ',ph,') : '); + shift(2); + write_p_a_def(outfile,hp3^.p1^.p1,hp2^.p1); + writeln(outfile,';'); + popshift; + { get function in implementation } + write(implemfile,aktspace,'function ',name); + write(implemfile,'(var a : ',ph,') : '); + if not compactmode then + shift(2); + write_p_a_def(implemfile,hp3^.p1^.p1,hp2^.p1); + writeln(implemfile,';'); + writeln(implemfile,aktspace,'begin'); + shift(3); + write(implemfile,aktspace,name,':=(a.flag',flag_index); + writeln(implemfile,' and bm_',ph,'_',name,') shr bp_',ph,'_',name,';'); + popshift; + writeln(implemfile,aktspace,'end;'); + if not compactmode then + popshift; + writeln(implemfile,''); + { set function in interface } + write(outfile,aktspace,'procedure set_',name); + write(outfile,'(var a : ',ph,'; __',name,' : '); + shift(2); + write_p_a_def(outfile,hp3^.p1^.p1,hp2^.p1); + writeln(outfile,');'); + popshift; + { set function in implementation } + write(implemfile,aktspace,'procedure set_',name); + write(implemfile,'(var a : ',ph,'; __',name,' : '); + if not compactmode then + shift(2); + write_p_a_def(implemfile,hp3^.p1^.p1,hp2^.p1); + writeln(implemfile,');'); + writeln(implemfile,aktspace,'begin'); + shift(3); + write(implemfile,aktspace,'a.flag',flag_index,':='); + write(implemfile,'a.flag',flag_index,' or '); + writeln(implemfile,'((__',name,' shl bp_',ph,'_',name,') and bm_',ph,'_',name,');'); + popshift; + writeln(implemfile,aktspace,'end;'); + if not compactmode then + popshift; + writeln(implemfile,''); + end + else if is_sized then + begin + is_sized:=false; + inc(flag_index); + end; + hp3:=hp3^.next; + end; + hp1:=hp1^.next; + end; + must_write_packed_field:=false; + block_type:=bt_no; + end; + + + procedure write_expr(var outfile:text; p : presobject); + begin + if assigned(p) then + begin + case p^.typ of + t_id, + t_ifexpr : + write(outfile,FixId(p^.p)); + t_funexprlist : + write_funexpr(outfile,p); + t_exprlist : + begin + if assigned(p^.p1) then + write_expr(outfile,p^.p1); + if assigned(p^.next) then + begin + write(', '); + write_expr(outfile,p^.next); + end; + end; + t_preop : begin + write(outfile,p^.p,'('); + write_expr(outfile,p^.p1); + write(outfile,')'); + flush(outfile); + end; + t_typespec : begin + write_type_specifier(outfile,p^.p1); + write(outfile,'('); + write_expr(outfile,p^.p2); + write(outfile,')'); + flush(outfile); + end; + t_bop : begin + if p^.p1^.typ<>t_id then + write(outfile,'('); + write_expr(outfile,p^.p1); + if p^.p1^.typ<>t_id then + write(outfile,')'); + write(outfile,p^.p); + if p^.p2^.typ<>t_id then + write(outfile,'('); + write_expr(outfile,p^.p2); + if p^.p2^.typ<>t_id then + write(outfile,')'); + flush(outfile); + end; + t_arrayop : + begin + write_expr(outfile,p^.p1); + write(outfile,p^.p,'['); + write_expr(outfile,p^.p2); + write(outfile,']'); + flush(outfile); + end; + t_callop : + begin + write_expr(outfile,p^.p1); + write(outfile,p^.p,'('); + write_expr(outfile,p^.p2); + write(outfile,')'); + flush(outfile); + end; + else + begin + writeln(ord(p^.typ)); + internalerror(2); + end; + end; + end; + end; + + + procedure write_ifexpr(var outfile:text; p : presobject); + begin + flush(outfile); + write(outfile,'if '); + write_expr(outfile,p^.p1); + writeln(outfile,' then'); + write(outfile,aktspace,' '); + write(outfile,p^.p); + write(outfile,':='); + write_expr(outfile,p^.p2); + writeln(outfile); + writeln(outfile,aktspace,'else'); + write(outfile,aktspace,' '); + write(outfile,p^.p); + write(outfile,':='); + write_expr(outfile,p^.p3); + writeln(outfile,';'); + write(outfile,aktspace); + flush(outfile); + end; + + + procedure write_all_ifexpr(var outfile:text; p : presobject); + begin + if assigned(p) then + begin + case p^.typ of + t_id :; + t_preop : + write_all_ifexpr(outfile,p^.p1); + t_callop, + t_arrayop, + t_bop : + begin + write_all_ifexpr(outfile,p^.p1); + write_all_ifexpr(outfile,p^.p2); + end; + t_ifexpr : + begin + write_all_ifexpr(outfile,p^.p1); + write_all_ifexpr(outfile,p^.p2); + write_all_ifexpr(outfile,p^.p3); + write_ifexpr(outfile,p); + end; + t_typespec : + write_all_ifexpr(outfile,p^.p2); + t_funexprlist, + t_exprlist : + begin + if assigned(p^.p1) then + write_all_ifexpr(outfile,p^.p1); + if assigned(p^.next) then + write_all_ifexpr(outfile,p^.next); + end + else + internalerror(6); + end; + end; + end; + + procedure write_funexpr(var outfile:text; p : presobject); + var + i : longint; + + begin + if assigned(p) then + begin + case p^.typ of + t_ifexpr : + write(outfile,p^.p); + t_exprlist : + begin + write_expr(outfile,p^.p1); + if assigned(p^.next) then + begin + write(outfile,','); + write_funexpr(outfile,p^.next); + end + end; + t_funcname : + begin + if not compactmode then + shift(2); + if if_nb>0 then + begin + writeln(outfile,aktspace,'var'); + write(outfile,aktspace,' '); + for i:=1 to if_nb do + begin + write(outfile,'if_local',i); + if it_arglist then + internalerror(10); + (* is ellipsis ? *) + if not assigned(p^.p1^.p1) and + not assigned(p^.p1^.next) then + begin + write(outfile,'args:array of const'); + (* if variable number of args we must allways pop *) + no_pop:=false; + (* Needs 2 declarations, also one without args, becuase + in C you can omit the second parameter. Default parameter + doesn't help as that isn't possible with array of const *) + NeedEllipsisOverload:=true; + (* Remove this para *) + if assigned(lastp) then + lastp^.next:=nil; + dispose(p,done); + (* leave the loop as p isnot valid anymore *) + break; + end + (* we need to correct this in the pp file after *) + else + begin + (* generate a call by reference parameter ? *) + +// varpara:=usevarparas and +// assigned(p^.p1^.p2^.p1) and +// (p^.p1^.p2^.p1^.typ in [t_addrdef,t_pointerdef]) and +// assigned(p^.p1^.p2^.p1^.p1) and +// (p^.p1^.p2^.p1^.p1^.typ<>t_procdef); + varpara:=usevarparas and + assigned(p^.p1^.p1) and + (p^.p1^.p1^.typ in [t_addrdef,t_pointerdef]) and + assigned(p^.p1^.p1^.p1) and + (p^.p1^.p1^.p1^.typ<>t_procdef); + (* do not do it for char pointer !! *) + (* para : pchar; and var para : char; are *) + (* completely different in pascal *) + (* here we exclude all typename containing char *) + (* is this a good method ?? *) + if varpara and + (p^.p1^.p1^.typ=t_pointerdef) and + (p^.p1^.p1^.p1^.typ=t_id) and + (pos('CHAR',uppercase(p^.p1^.p1^.p1^.str))<>0) then + varpara:=false; + if varpara then + begin + write(outfile,'var '); + inc(len,4); + end; + + (* write new parameter name *) + if assigned(p^.p1^.p2^.p2) then + begin + hs:=FixId(p^.p1^.p2^.p2^.p); + write(outfile,hs); + inc(len,length(hs)); + end + else + begin + If removeUnderscore then + begin + Write (outfile,'para',para); + inc(Len,5); + end + else + begin + write(outfile,'_para',para); + inc(Len,6); + end; + end; + write(outfile,':'); + if varpara then + begin + write_p_a_def(outfile,p^.p1^.p2^.p1,p^.p1^.p1^.p1); + end + else + write_p_a_def(outfile,p^.p1^.p2^.p1,p^.p1^.p1); + + end; + lastp:=p; + p:=p^.next; + if assigned(p) then + begin + write(outfile,'; '); + { if len>40 then : too complicated to compute } + if (para mod 5) = 0 then + begin + writeln(outfile); + write(outfile,aktspace); + end; + end; + inc(para); + end; + write(outfile,')'); + flush(outfile); + in_args:=old_in_args; + popshift; + end; + + + + procedure write_p_a_def(var outfile:text; p,simple_type : presobject); + var + i : longint; + error : integer; + pointerwritten, + constant : boolean; + + begin + if not(assigned(p)) then + begin + write_type_specifier(outfile,simple_type); + exit; + end; + case p^.typ of + t_pointerdef : begin + (* procedure variable ? *) + if assigned(p^.p1) and (p^.p1^.typ=t_procdef) then + begin + is_procvar:=true; + (* distinguish between procedure and function *) + if (simple_type^.typ=t_void) and (p^.p1^.p1=nil) then + begin + write(outfile,'procedure '); + + shift(10); + (* write arguments *) + if assigned(p^.p1^.p2) then + write_args(outfile,p^.p1^.p2); + flush(outfile); + popshift; + end + else + begin + write(outfile,'function '); + shift(9); + (* write arguments *) + if assigned(p^.p1^.p2) then + write_args(outfile,p^.p1^.p2); + write(outfile,':'); + flush(outfile); + write_p_a_def(outfile,p^.p1^.p1,simple_type); + popshift; + end + end + else + begin + (* generate "pointer" ? *) + if (simple_type^.typ=t_void) and (p^.p1=nil) then + begin + write(outfile,'pointer'); + flush(outfile); + end + else + begin + pointerwritten:=false; + if (p^.p1=nil) and UsePPointers then + begin + if (simple_type^.typ=t_id) then + begin + write(outfile,PointerName(simple_type^.p)); + pointerwritten:=true; + end + { structure } + else if (simple_type^.typ in [t_uniondef,t_structdef]) and + (simple_type^.p1=nil) and (simple_type^.p2^.typ=t_id) then + begin + write(outfile,PointerName(simple_type^.p2^.p)); + pointerwritten:=true; + end; + end; + if not pointerwritten then + begin + if in_args then + begin + write(outfile,'P'); + pointerprefix:=true; + end + else + write(outfile,'^'); + write_p_a_def(outfile,p^.p1,simple_type); + pointerprefix:=false; + end; + end; + end; + end; + t_arraydef : begin + constant:=false; + if assigned(p^.p2) then + begin + if p^.p2^.typ=t_id then + begin + val(p^.p2^.str,i,error); + if error=0 then + begin + dec(i); + constant:=true; + end; + end; + if not constant then + begin + write(outfile,'array[0..('); + write_expr(outfile,p^.p2); + write(outfile,')-1] of '); + end + else + begin + write(outfile,'array[0..',i,'] of '); + end; + end + else + begin + (* open array *) + write(outfile,'array of '); + end; + flush(outfile); + write_p_a_def(outfile,p^.p1,simple_type); + end; + else internalerror(1); + end; + end; + + procedure write_type_specifier(var outfile:text; p : presobject); + var + hp1,hp2,hp3,lastexpr : presobject; + i,l,w : longint; + error : integer; + current_power, + mask : cardinal; + flag_index : longint; + current_level : byte; + pointerwritten, + is_sized : boolean; + + begin + case p^.typ of + t_id : + begin + if pointerprefix then + PTypeList.Add('P'+p^.str); + if p^.intname then + write(outfile,p^.p) + else + write(outfile,TypeName(p^.p)); + end; + { what can we do with void defs ? } + t_void : + write(outfile,'void'); + t_pointerdef : + begin + pointerwritten:=false; + if (p^.p1^.typ=t_void) then + begin + write(outfile,'pointer'); + pointerwritten:=true; + end + else + if UsePPointers then + begin + if (p^.p1^.typ=t_id) then + begin + write(outfile,PointerName(p^.p1^.p)); + pointerwritten:=true; + end + { structure } + else if (p^.p1^.typ in [t_uniondef,t_structdef]) and + (p^.p1^.p1=nil) and (p^.p1^.p2^.typ=t_id) then + begin + write(outfile,PointerName(p^.p1^.p2^.p)); + pointerwritten:=true; + end; + end; + if not pointerwritten then + begin + if in_args then + begin + write(outfile,'P'); + pointerprefix:=true; + end + else + write(outfile,'^'); + write_type_specifier(outfile,p^.p1); + pointerprefix:=false; + end; + end; + t_enumdef : + begin + if (typedef_level>1) and (p^.p1=nil) and + (p^.p2^.typ=t_id) then + begin + if pointerprefix then + PTypeList.Add('P'+p^.p2^.str); + write(outfile,p^.p2^.p); + end + else + if not EnumToConst then + begin + write(outfile,'('); + hp1:=p^.p1; + w:=length(aktspace); + while assigned(hp1) do + begin + write(outfile,hp1^.p1^.p); + if assigned(hp1^.p2) then + begin + write(outfile,' := '); + write_expr(outfile,hp1^.p2); + w:=w+6;(* strlen(hp1^.p); *) + end; + w:=w+length(hp1^.p1^.str); + hp1:=hp1^.next; + if assigned(hp1) then + write(outfile,','); + if w>40 then + begin + writeln(outfile); + write(outfile,aktspace); + w:=length(aktspace); + end; + flush(outfile); + end; + write(outfile,')'); + flush(outfile); + end + else + begin + Writeln (outfile,' Longint;'); + hp1:=p^.p1; + l:=0; + lastexpr:=nil; + Writeln (outfile,copy(aktspace,1,length(aktspace)-2),'Const'); + while assigned(hp1) do + begin + write (outfile,aktspace,hp1^.p1^.p,' = '); + if assigned(hp1^.p2) then + begin + write_expr(outfile,hp1^.p2); + writeln(outfile,';'); + lastexpr:=hp1^.p2; + if lastexpr^.typ=t_id then + begin + val(lastexpr^.str,l,error); + if error=0 then + begin + inc(l); + lastexpr:=nil; + end + else + l:=1; + end + else + l:=1; + end + else + begin + if assigned(lastexpr) then + begin + write(outfile,'('); + write_expr(outfile,lastexpr); + writeln(outfile,')+',l,';'); + end + else + writeln (outfile,l,';'); + inc(l); + end; + hp1:=hp1^.next; + flush(outfile); + end; + block_type:=bt_const; + end; + end; + t_structdef : + begin + inc(typedef_level); + flag_index:=-1; + is_sized:=false; + current_level:=0; + if ((in_args) or (typedef_level>1)) and + (p^.p1=nil) and (p^.p2^.typ=t_id) then + begin + if pointerprefix then + PTypeList.Add('P'+p^.p2^.str); + write(outfile,TypeName(p^.p2^.p)); + end + else + begin + if packrecords then + writeln(outfile,'packed record') + else + writeln(outfile,'record'); + shift(3); + hp1:=p^.p1; + + (* walk through all members *) + while assigned(hp1) do + begin + (* hp2 is t_memberdec *) + hp2:=hp1^.p1; + (* hp3 is t_declist *) + hp3:=hp2^.p2; + while assigned(hp3) do + begin + if not assigned(hp3^.p1^.p3) or + (hp3^.p1^.p3^.typ <> t_size_specifier) then + begin + if is_sized then + begin + if current_level <= 16 then + writeln(outfile,'word;') + else if current_level <= 32 then + writeln(outfile,'longint;') + else + internalerror(11); + is_sized:=false; + end; + + write(outfile,aktspace,FixId(hp3^.p1^.p2^.p)); + write(outfile,' : '); + shift(2); + write_p_a_def(outfile,hp3^.p1^.p1,hp2^.p1); + popshift; + end; + { size specifier or default value ? } + if assigned(hp3^.p1^.p3) then + begin + { we could use mask to implement this } + { because we need to respect the positions } + if hp3^.p1^.p3^.typ = t_size_specifier then + begin + if not is_sized then + begin + current_power:=1; + current_level:=0; + inc(flag_index); + write(outfile,aktspace,'flag',flag_index,' : '); + end; + must_write_packed_field:=true; + is_sized:=true; + { can it be something else than a constant ? } + { it can be a macro !! } + if hp3^.p1^.p3^.p1^.typ=t_id then + begin + val(hp3^.p1^.p3^.p1^.str,l,error); + if error=0 then + begin + mask:=0; + for i:=1 to l do + begin + inc(mask,current_power); + current_power:=current_power*2; + end; + write(tempfile,'bm_&',hp3^.p1^.p2^.p); + writeln(tempfile,' = ',hexstr(mask),';'); + write(tempfile,'bp_&',hp3^.p1^.p2^.p); + writeln(tempfile,' = ',current_level,';'); + current_level:=current_level + l; + { go to next flag if 31 } + if current_level = 32 then + begin + write(outfile,'longint'); + is_sized:=false; + end; + end; + end; + + end + else if hp3^.p1^.p3^.typ = t_default_value then + begin + write(outfile,'{='); + write_expr(outfile,hp3^.p1^.p3^.p1); + write(outfile,' ignored}'); + end; + end; + if not is_sized then + begin + if is_procvar then + begin + if not no_pop then + begin + write(outfile,';cdecl'); + no_pop:=true; + end; + is_procvar:=false; + end; + writeln(outfile,';'); + end; + hp3:=hp3^.next; + end; + hp1:=hp1^.next; + end; + if is_sized then + begin + if current_level <= 16 then + writeln(outfile,'word;') + else if current_level <= 32 then + writeln(outfile,'longint;') + else + internalerror(11); + is_sized:=false; + end; + popshift; + write(outfile,aktspace,'end'); + flush(outfile); + end; + dec(typedef_level); + end; + t_uniondef : + begin + inc(typedef_level); + if (typedef_level>1) and (p^.p1=nil) and + (p^.p2^.typ=t_id) then + begin + write(outfile,p^.p2^.p); + end + else + begin + inc(typedef_level); + if packrecords then + writeln(outfile,'packed record') + else + writeln(outfile,'record'); + shift(2); + writeln(outfile,aktspace,'case longint of'); + shift(3); + l:=0; + hp1:=p^.p1; + + (* walk through all members *) + while assigned(hp1) do + begin + (* hp2 is t_memberdec *) + hp2:=hp1^.p1; + (* hp3 is t_declist *) + hp3:=hp2^.p2; + while assigned(hp3) do + begin + write(outfile,aktspace,l,' : ( '); + write(outfile,FixId(hp3^.p1^.p2^.p),' : '); + shift(2); + write_p_a_def(outfile,hp3^.p1^.p1,hp2^.p1); + popshift; + writeln(outfile,' );'); + hp3:=hp3^.next; + inc(l); + end; + hp1:=hp1^.next; + end; + popshift; + write(outfile,aktspace,'end'); + popshift; + flush(outfile); + dec(typedef_level); + end; + dec(typedef_level); + end; + else + internalerror(3); + end; + end; + + procedure write_def_params(var outfile:text; p : presobject); + var + hp1 : presobject; + begin + case p^.typ of + t_enumdef : begin + hp1:=p^.p1; + while assigned(hp1) do + begin + write(outfile,FixId(hp1^.p1^.p)); + hp1:=hp1^.next; + if assigned(hp1) then + write(outfile,',') + else + write(outfile); + flush(outfile); + end; + flush(outfile); + end; + else internalerror(4); + end; + end; + + + procedure write_statement_block(var outfile:text; p : presobject); + begin + writeln(outfile,aktspace,'begin'); + while assigned(p) do + begin + shift(2); + if assigned(p^.p1) then + begin + case p^.p1^.typ of + t_whilenode: + begin + write(outfile,aktspace,'while '); + write_expr(outfile,p^.p1^.p1); + writeln(outfile,' do'); + shift(2); + write_statement_block(outfile,p^.p1^.p2); + popshift; + end; + else + begin + write(outfile,aktspace); + write_expr(outfile,p^.p1); + writeln(outfile,';'); + end; + end; + end; + p:=p^.next; + popshift; + end; + writeln(outfile,aktspace,'end;'); + end; + +%} + +%token _WHILE _FOR _DO _GOTO _CONTINUE _BREAK +%token TYPEDEF DEFINE +%token COLON SEMICOLON COMMA +%token LKLAMMER RKLAMMER LECKKLAMMER RECKKLAMMER +%token LGKLAMMER RGKLAMMER +%token STRUCT UNION ENUM +%token ID NUMBER CSTRING +%token SHORT UNSIGNED LONG INT REAL _CHAR +%token VOID _CONST +%token _FAR _HUGE _NEAR +%token NEW_LINE SPACE_DEFINE +%token EXTERN STDCALL CDECL CALLBACK PASCAL WINAPI APIENTRY WINGDIAPI SYS_TRAP +%token _PACKED +%token ELLIPSIS +%right _ASSIGN +%right R_AND +%left EQUAL UNEQUAL GT LT GTE LTE +%left QUESTIONMARK COLON +%left _OR +%left _AND +%left _PLUS MINUS +%left _SHR _SHL +%left STAR _SLASH +%right _NOT +%right LKLAMMER +%right PSTAR +%right P_AND +%right LECKKLAMMER +%left POINT DEREF +%left COMMA +%left STICK +%token SIGNED +%% + +file : declaration_list + ; + +maybe_space : + SPACE_DEFINE + { + $$:=nil; + } | + { + $$:=nil; + } + ; + +error_info : { + writeln(outfile,'(* error '); + writeln(outfile,yyline); + }; + +declaration_list : declaration_list declaration + { if yydebug then writeln('declaration reduced at line ',line_no); + if yydebug then writeln(outfile,'(* declaration reduced *)'); + } + | declaration_list define_dec + { if yydebug then writeln('define declaration reduced at line ',line_no); + if yydebug then writeln(outfile,'(* define declaration reduced *)'); + } + | declaration + { if yydebug then writeln('declaration reduced at line ',line_no); + } + | define_dec + { if yydebug then writeln('define declaration reduced at line ',line_no); + } + ; + +dec_specifier : + EXTERN { $$:=new(presobject,init_id('extern')); } + |{ $$:=new(presobject,init_id('intern')); } + ; + +dec_modifier : + STDCALL { $$:=new(presobject,init_id('no_pop')); } + | CDECL { $$:=new(presobject,init_id('cdecl')); } + | CALLBACK { $$:=new(presobject,init_id('no_pop')); } + | PASCAL { $$:=new(presobject,init_id('no_pop')); } + | WINAPI { $$:=new(presobject,init_id('no_pop')); } + | APIENTRY { $$:=new(presobject,init_id('no_pop')); } + | WINGDIAPI { $$:=new(presobject,init_id('no_pop')); } + | { $$:=nil } + ; + +systrap_specifier: + SYS_TRAP LKLAMMER dname RKLAMMER { $$:=$3; } + | { $$:=nil; } + ; + +statement : + expr SEMICOLON { $$:=$1; } | + _WHILE LKLAMMER expr RKLAMMER statement_list { $$:=new(presobject,init_two(t_whilenode,$3,$5)); } + ; + + +statement_list : statement statement_list + { + $$:=new(presobject,init_one(t_statement_list,$1)); + $$^.next:=$2; + } | + statement + { + $$:=new(presobject,init_one(t_statement_list,$1)); + } | + SEMICOLON + { + $$:=new(presobject,init_one(t_statement_list,nil)); + } | + { + $$:=new(presobject,init_one(t_statement_list,nil)); + } + ; + +statement_block : + LGKLAMMER statement_list RGKLAMMER { $$:=$2; } + ; + +declaration : + dec_specifier type_specifier dec_modifier declarator_list statement_block + { + IsExtern:=false; + (* by default we must pop the args pushed on stack *) + no_pop:=false; + if (assigned($4)and assigned($4^.p1)and assigned($4^.p1^.p1)) + and ($4^.p1^.p1^.typ=t_procdef) then + begin + repeat + If UseLib then + IsExtern:=true + else + IsExtern:=assigned($1)and($1^.str='extern'); + no_pop:=assigned($3) and ($3^.str='no_pop'); + + if (block_type<>bt_func) and not(createdynlib) then + begin + writeln(outfile); + block_type:=bt_func; + end; + + (* dyn. procedures must be put into a var block *) + if createdynlib then + begin + if (block_type<>bt_var) then + begin + if not(compactmode) then + writeln(outfile); + writeln(outfile,aktspace,'var'); + block_type:=bt_var; + end; + shift(2); + end; + if not CompactMode then + begin + write(outfile,aktspace); + if not IsExtern then + write(implemfile,aktspace); + end; + (* distinguish between procedure and function *) + if assigned($2) then + if ($2^.typ=t_void) and ($4^.p1^.p1^.p1=nil) then + begin + if createdynlib then + begin + write(outfile,$4^.p1^.p2^.p,' : procedure'); + end + else + begin + shift(10); + write(outfile,'procedure ',$4^.p1^.p2^.p); + end; + if assigned($4^.p1^.p1^.p2) then + write_args(outfile,$4^.p1^.p1^.p2); + if createdynlib then + begin + loaddynlibproc.add('pointer('+$4^.p1^.p2^.p+'):=GetProcAddress(hlib,'''+$4^.p1^.p2^.p+''');'); + freedynlibproc.add($4^.p1^.p2^.p+':=nil;'); + end + else if not IsExtern then + begin + write(implemfile,'procedure ',$4^.p1^.p2^.p); + if assigned($4^.p1^.p1^.p2) then + write_args(implemfile,$4^.p1^.p1^.p2); + end; + end + else + begin + if createdynlib then + begin + write(outfile,$4^.p1^.p2^.p,' : function'); + end + else + begin + shift(9); + write(outfile,'function ',$4^.p1^.p2^.p); + end; + + if assigned($4^.p1^.p1^.p2) then + write_args(outfile,$4^.p1^.p1^.p2); + write(outfile,':'); + write_p_a_def(outfile,$4^.p1^.p1^.p1,$2); + if createdynlib then + begin + loaddynlibproc.add('pointer('+$4^.p1^.p2^.p+'):=GetProcAddress(hlib,'''+$4^.p1^.p2^.p+''');'); + freedynlibproc.add($4^.p1^.p2^.p+':=nil;'); + end + else if not IsExtern then + begin + write(implemfile,'function ',$4^.p1^.p2^.p); + if assigned($4^.p1^.p1^.p2) then + write_args(implemfile,$4^.p1^.p1^.p2); + write(implemfile,':'); + write_p_a_def(implemfile,$4^.p1^.p1^.p1,$2); + end; + end; + (* No CDECL in interface for Uselib *) + if IsExtern and (not no_pop) then + write(outfile,';cdecl'); + popshift; + if createdynlib then + begin + writeln(outfile,';'); + end + else if UseLib then + begin + if IsExtern then + begin + write (outfile,';external'); + If UseName then + Write(outfile,' External_library name ''',$4^.p1^.p2^.p,''''); + end; + writeln(outfile,';'); + end + else + begin + writeln(outfile,';'); + if not IsExtern then + begin + writeln(implemfile,';'); + shift(2); + if $5^.typ=t_statement_list then + write_statement_block(implemfile,$5); + popshift; + end; + end; + IsExtern:=false; + if not(compactmode) and not(createdynlib) then + writeln(outfile); + until not NeedEllipsisOverload; + end + else (* $4^.p1^.p1^.typ=t_procdef *) + if assigned($4)and assigned($4^.p1) then + begin + shift(2); + if block_type<>bt_var then + begin + if not(compactmode) then + writeln(outfile); + writeln(outfile,aktspace,'var'); + end; + block_type:=bt_var; + + shift(3); + + IsExtern:=assigned($1)and($1^.str='extern'); + (* walk through all declarations *) + hp:=$4; + while assigned(hp) and assigned(hp^.p1) do + begin + (* write new var name *) + if assigned(hp^.p1^.p2) and assigned(hp^.p1^.p2^.p) then + write(outfile,aktspace,hp^.p1^.p2^.p); + write(outfile,' : '); + shift(2); + (* write its type *) + write_p_a_def(outfile,hp^.p1^.p1,$2); + if assigned(hp^.p1^.p2)and assigned(hp^.p1^.p2^.p)then + begin + if isExtern then + write(outfile,';cvar;external') + else + write(outfile,';cvar;public'); + end; + writeln(outfile,';'); + popshift; + hp:=hp^.p2; + end; + popshift; + popshift; + end; + if assigned($1)then dispose($1,done); + if assigned($2)then dispose($2,done); + if assigned($4)then dispose($4,done); + } + | dec_specifier type_specifier dec_modifier declarator_list systrap_specifier SEMICOLON + { + IsExtern:=false; + (* by default we must pop the args pushed on stack *) + no_pop:=false; + if (assigned($4)and assigned($4^.p1)and assigned($4^.p1^.p1)) + and ($4^.p1^.p1^.typ=t_procdef) then + begin + repeat + If UseLib then + IsExtern:=true + else + IsExtern:=assigned($1)and($1^.str='extern'); + no_pop:=assigned($3) and ($3^.str='no_pop'); + + if (block_type<>bt_func) and not(createdynlib) then + begin + writeln(outfile); + block_type:=bt_func; + end; + + (* dyn. procedures must be put into a var block *) + if createdynlib then + begin + if (block_type<>bt_var) then + begin + if not(compactmode) then + writeln(outfile); + writeln(outfile,aktspace,'var'); + block_type:=bt_var; + end; + shift(2); + end; + if not CompactMode then + begin + write(outfile,aktspace); + if not IsExtern then + write(implemfile,aktspace); + end; + (* distinguish between procedure and function *) + if assigned($2) then + if ($2^.typ=t_void) and ($4^.p1^.p1^.p1=nil) then + begin + if createdynlib then + begin + write(outfile,$4^.p1^.p2^.p,' : procedure'); + end + else + begin + shift(10); + write(outfile,'procedure ',$4^.p1^.p2^.p); + end; + if assigned($4^.p1^.p1^.p2) then + write_args(outfile,$4^.p1^.p1^.p2); + if createdynlib then + begin + loaddynlibproc.add('pointer('+$4^.p1^.p2^.p+'):=GetProcAddress(hlib,'''+$4^.p1^.p2^.p+''');'); + freedynlibproc.add($4^.p1^.p2^.p+':=nil;'); + end + else if not IsExtern then + begin + write(implemfile,'procedure ',$4^.p1^.p2^.p); + if assigned($4^.p1^.p1^.p2) then + write_args(implemfile,$4^.p1^.p1^.p2); + end; + end + else + begin + if createdynlib then + begin + write(outfile,$4^.p1^.p2^.p,' : function'); + end + else + begin + shift(9); + write(outfile,'function ',$4^.p1^.p2^.p); + end; + + if assigned($4^.p1^.p1^.p2) then + write_args(outfile,$4^.p1^.p1^.p2); + write(outfile,':'); + write_p_a_def(outfile,$4^.p1^.p1^.p1,$2); + if createdynlib then + begin + loaddynlibproc.add('pointer('+$4^.p1^.p2^.p+'):=GetProcAddress(hlib,'''+$4^.p1^.p2^.p+''');'); + freedynlibproc.add($4^.p1^.p2^.p+':=nil;'); + end + else if not IsExtern then + begin + write(implemfile,'function ',$4^.p1^.p2^.p); + if assigned($4^.p1^.p1^.p2) then + write_args(implemfile,$4^.p1^.p1^.p2); + write(implemfile,':'); + write_p_a_def(implemfile,$4^.p1^.p1^.p1,$2); + end; + end; + if assigned($5) then + write(outfile,';systrap ',$5^.p); + (* No CDECL in interface for Uselib *) + if IsExtern and (not no_pop) then + write(outfile,';cdecl'); + popshift; + if createdynlib then + begin + writeln(outfile,';'); + end + else if UseLib then + begin + if IsExtern then + begin + write (outfile,';external'); + If UseName then + Write(outfile,' External_library name ''',$4^.p1^.p2^.p,''''); + end; + writeln(outfile,';'); + end + else + begin + writeln(outfile,';'); + if not IsExtern then + begin + writeln(implemfile,';'); + writeln(implemfile,aktspace,'begin'); + writeln(implemfile,aktspace,' { You must implement this function }'); + writeln(implemfile,aktspace,'end;'); + end; + end; + IsExtern:=false; + if not(compactmode) and not(createdynlib) then + writeln(outfile); + until not NeedEllipsisOverload; + end + else (* $4^.p1^.p1^.typ=t_procdef *) + if assigned($4)and assigned($4^.p1) then + begin + shift(2); + if block_type<>bt_var then + begin + if not(compactmode) then + writeln(outfile); + writeln(outfile,aktspace,'var'); + end; + block_type:=bt_var; + + shift(3); + + IsExtern:=assigned($1)and($1^.str='extern'); + (* walk through all declarations *) + hp:=$4; + while assigned(hp) and assigned(hp^.p1) do + begin + (* write new var name *) + if assigned(hp^.p1^.p2) and assigned(hp^.p1^.p2^.p) then + write(outfile,aktspace,hp^.p1^.p2^.p); + write(outfile,' : '); + shift(2); + (* write its type *) + write_p_a_def(outfile,hp^.p1^.p1,$2); + if assigned(hp^.p1^.p2)and assigned(hp^.p1^.p2^.p)then + begin + if isExtern then + write(outfile,';cvar;external') + else + write(outfile,';cvar;public'); + end; + writeln(outfile,';'); + popshift; + hp:=hp^.p2; + end; + popshift; + popshift; + end; + if assigned($1)then dispose($1,done); + if assigned($2)then dispose($2,done); + if assigned($4)then dispose($4,done); + } | + special_type_specifier SEMICOLON + { + if block_type<>bt_type then + begin + if not(compactmode) then + writeln(outfile); + writeln(outfile,aktspace,'type'); + block_type:=bt_type; + end; + shift(3); + if ( yyv[yysp-1]^.p2 <> nil ) then + begin + (* write new type name *) + TN:=TypeName($1^.p2^.p); + PN:=PointerName($1^.p2^.p); + (* define a Pointer type also for structs *) + if UsePPointers and (Uppercase(tn)<>Uppercase(pn)) and + assigned($1) and ($1^.typ in [t_uniondef,t_structdef]) then + writeln(outfile,aktspace,PN,' = ^',TN,';'); + write(outfile,aktspace,TN,' = '); + shift(2); + hp:=$1; + write_type_specifier(outfile,hp); + popshift; + (* enum_to_const can make a switch to const *) + if block_type=bt_type then + writeln(outfile,';'); + writeln(outfile); + flush(outfile); + popshift; + if must_write_packed_field then + write_packed_fields_info(outfile,hp,TN); + if assigned(hp) then + dispose(hp,done) + end + else + begin + TN:=TypeName(yyv[yysp-1]^.str); + PN:=PointerName(yyv[yysp-1]^.str); + if UsePPointers then writeln(outfile,aktspace,PN,' = ^',TN,';'); + if PackRecords then + writeln(outfile, aktspace, TN, ' = packed record') + else + writeln(outfile, aktspace, TN, ' = record'); + writeln(outfile, aktspace, ' {undefined structure}'); + writeln(outfile, aktspace, ' end;'); + writeln(outfile); + popshift; + end; + } | + TYPEDEF STRUCT dname dname SEMICOLON + { + (* TYPEDEF STRUCT dname dname SEMICOLON *) + if block_type<>bt_type then + begin + if not(compactmode) then + writeln(outfile); + writeln(outfile,aktspace,'type'); + block_type:=bt_type; + end; + PN:=TypeName($3^.p); + TN:=TypeName($4^.p); + if Uppercase(tn)<>Uppercase(pn) then + begin + shift(3); + writeln(outfile,aktspace,PN,' = ',TN,';'); + popshift; + end; + if assigned($3) then + dispose($3,done); + if assigned($4) then + dispose($4,done); + } | + TYPEDEF type_specifier LKLAMMER dec_modifier declarator RKLAMMER maybe_space LKLAMMER argument_declaration_list RKLAMMER SEMICOLON + { + (* TYPEDEF type_specifier LKLAMMER dec_modifier declarator RKLAMMER maybe_space LKLAMMER argument_declaration_list RKLAMMER SEMICOLON *) + if block_type<>bt_type then + begin + if not(compactmode) then + writeln(outfile); + writeln(outfile,aktspace,'type'); + block_type:=bt_type; + end; + no_pop:=assigned($4) and ($4^.str='no_pop'); + shift(3); + (* walk through all declarations *) + hp:=$5; + if assigned(hp) then + begin + hp:=$5; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_two(t_procdef,nil,$9)); + hp:=$5; + if assigned(hp^.p1) and assigned(hp^.p1^.p1) then + begin + writeln(outfile); + (* write new type name *) + write(outfile,aktspace,TypeName(hp^.p2^.p),' = '); + shift(2); + write_p_a_def(outfile,hp^.p1,$2); + popshift; + (* if no_pop it is normal fpc calling convention *) + if is_procvar and + (not no_pop) then + write(outfile,';cdecl'); + writeln(outfile,';'); + flush(outfile); + end; + end; + popshift; + if assigned($2)then + dispose($2,done); + if assigned($4)then + dispose($4,done); + if assigned($5)then (* disposes also $9 *) + dispose($5,done); + } | + TYPEDEF type_specifier dec_modifier declarator_list SEMICOLON + { + (* TYPEDEF type_specifier dec_modifier declarator_list SEMICOLON *) + if block_type<>bt_type then + begin + if not(compactmode) then + writeln(outfile); + writeln(outfile,aktspace,'type'); + block_type:=bt_type; + end; + no_pop:=assigned($3) and ($3^.str='no_pop'); + shift(3); + (* Get the name to write the type definition for, try + to use the tag name first *) + if assigned($2^.p2) then + begin + ph:=$2^.p2; + end + else + begin + if not assigned($4^.p1^.p2) then + internalerror(4444); + ph:=$4^.p1^.p2; + end; + (* write type definition *) + is_procvar:=false; + writeln(outfile); + TN:=TypeName(ph^.p); + PN:=PointerName(ph^.p); + if UsePPointers and (Uppercase(tn)<>Uppercase(pn)) and + assigned($2) and ($2^.typ<>t_procdef) then + writeln(outfile,aktspace,PN,' = ^',TN,';'); + (* write new type name *) + write(outfile,aktspace,TN,' = '); + shift(2); + write_type_specifier(outfile,$2); + popshift; + (* if no_pop it is normal fpc calling convention *) + if is_procvar and + (not no_pop) then + write(outfile,';cdecl'); + writeln(outfile,';'); + flush(outfile); + (* write alias names, ph points to the name already used *) + hp:=$4; + while assigned(hp) do + begin + if (hp<>ph) and assigned(hp^.p1^.p2) then + begin + PN:=TypeName(ph^.p); + TN:=TypeName(hp^.p1^.p2^.p); + if Uppercase(TN)<>Uppercase(PN) then + begin + write(outfile,aktspace,TN,' = '); + write_p_a_def(outfile,hp^.p1^.p1,ph); + writeln(outfile,';'); + PN:=PointerName(hp^.p1^.p2^.p); + if UsePPointers and (Uppercase(tn)<>Uppercase(pn)) and + assigned($2) and ($2^.typ<>t_procdef) then + writeln(outfile,aktspace,PN,' = ^',TN,';'); + end; + end; + hp:=hp^.next; + end; + popshift; + if must_write_packed_field then + if assigned(ph) then + write_packed_fields_info(outfile,$2,ph^.str) + else if assigned($2^.p2) then + write_packed_fields_info(outfile,$2,$2^.p2^.str); + if assigned($2)then + dispose($2,done); + if assigned($3)then + dispose($3,done); + if assigned($4)then + dispose($4,done); + } | + TYPEDEF dname SEMICOLON + { + if block_type<>bt_type then + begin + if not(compactmode) then + writeln(outfile); + writeln(outfile,aktspace,'type'); + block_type:=bt_type; + end; + shift(3); + (* write as pointer *) + writeln(outfile); + writeln(outfile,'(* generic typedef *)'); + writeln(outfile,aktspace,$2^.p,' = pointer;'); + flush(outfile); + popshift; + if assigned($2) then + dispose($2,done); + } + | error error_info SEMICOLON + { writeln(outfile,'in declaration at line ',line_no,' *)'); + aktspace:=''; + in_space_define:=0; + in_define:=false; + arglevel:=0; + if_nb:=0; + aktspace:=' '; + space_index:=1; + yyerrok;} + ; + +define_dec : + DEFINE dname LKLAMMER enum_list RKLAMMER para_def_expr NEW_LINE + { + (* DEFINE dname LKLAMMER enum_list RKLAMMER para_def_expr NEW_LINE *) + if not stripinfo then + begin + writeln (outfile,aktspace,'{ was #define dname(params) para_def_expr }'); + writeln (implemfile,aktspace,'{ was #define dname(params) para_def_expr }'); + if assigned($4) then + begin + writeln (outfile,aktspace,'{ argument types are unknown }'); + writeln (implemfile,aktspace,'{ argument types are unknown }'); + end; + if not assigned($6^.p3) then + begin + writeln(outfile,aktspace,'{ return type might be wrong } '); + writeln(implemfile,aktspace,'{ return type might be wrong } '); + end; + end; + block_type:=bt_func; + write(outfile,aktspace,'function ',$2^.p); + write(implemfile,aktspace,'function ',$2^.p); + + if assigned($4) then + begin + write(outfile,'('); + write(implemfile,'('); + ph:=new(presobject,init_one(t_enumdef,$4)); + write_def_params(outfile,ph); + write_def_params(implemfile,ph); + if assigned(ph) then dispose(ph,done); + ph:=nil; + (* types are unknown *) + write(outfile,' : longint)'); + write(implemfile,' : longint)'); + end; + if not assigned($6^.p3) then + begin + writeln(outfile,' : longint;',aktspace,commentstr); + writeln(implemfile,' : longint;'); + flush(outfile); + end + else + begin + write(outfile,' : '); + write_type_specifier(outfile,$6^.p3); + writeln(outfile,';',aktspace,commentstr); + flush(outfile); + write(implemfile,' : '); + write_type_specifier(implemfile,$6^.p3); + writeln(implemfile,';'); + end; + writeln(outfile); + flush(outfile); + hp:=new(presobject,init_two(t_funcname,$2,$6)); + write_funexpr(implemfile,hp); + writeln(implemfile); + flush(implemfile); + if assigned(hp)then dispose(hp,done); + }| + DEFINE dname SPACE_DEFINE NEW_LINE + { + (* DEFINE dname SPACE_DEFINE NEW_LINE *) + writeln(outfile,'{$define ',$2^.p,'}',aktspace,commentstr); + flush(outfile); + if assigned($2)then + dispose($2,done); + }| + DEFINE dname NEW_LINE + { + writeln(outfile,'{$define ',$2^.p,'}',aktspace,commentstr); + flush(outfile); + if assigned($2)then + dispose($2,done); + } | + DEFINE dname SPACE_DEFINE def_expr NEW_LINE + { + (* DEFINE dname SPACE_DEFINE def_expr NEW_LINE *) + if ($4^.typ=t_exprlist) and + $4^.p1^.is_const and + not assigned($4^.next) then + begin + if block_type<>bt_const then + begin + writeln(outfile); + writeln(outfile,aktspace,'const'); + end; + block_type:=bt_const; + shift(3); + write(outfile,aktspace,$2^.p); + write(outfile,' = '); + flush(outfile); + write_expr(outfile,$4^.p1); + writeln(outfile,';',aktspace,commentstr); + popshift; + if assigned($2) then + dispose($2,done); + if assigned($4) then + dispose($4,done); + end + else + begin + if not stripinfo then + begin + writeln (outfile,aktspace,'{ was #define dname def_expr }'); + writeln (implemfile,aktspace,'{ was #define dname def_expr }'); + end; + block_type:=bt_func; + write(outfile,aktspace,'function ',$2^.p); + write(implemfile,aktspace,'function ',$2^.p); + shift(2); + if not assigned($4^.p3) then + begin + writeln(outfile,' : longint;'); + writeln(outfile,aktspace,' { return type might be wrong }'); + flush(outfile); + writeln(implemfile,' : longint;'); + writeln(implemfile,aktspace,' { return type might be wrong }'); + end + else + begin + write(outfile,' : '); + write_type_specifier(outfile,$4^.p3); + writeln(outfile,';',aktspace,commentstr); + flush(outfile); + write(implemfile,' : '); + write_type_specifier(implemfile,$4^.p3); + writeln(implemfile,';'); + end; + writeln(outfile); + flush(outfile); + hp:=new(presobject,init_two(t_funcname,$2,$4)); + write_funexpr(implemfile,hp); + popshift; + dispose(hp,done); + writeln(implemfile); + flush(implemfile); + end; + } + | error error_info NEW_LINE + { writeln(outfile,'in define line ',line_no,' *)'); + aktspace:=''; + in_space_define:=0; + in_define:=false; + arglevel:=0; + if_nb:=0; + aktspace:=' '; + space_index:=1; + + yyerrok;} + ; + +closed_list : LGKLAMMER member_list RGKLAMMER + {$$:=$2;} | + error error_info RGKLAMMER + { writeln(outfile,' in member_list *)'); + yyerrok; + $$:=nil; + } + ; + +closed_enum_list : LGKLAMMER enum_list RGKLAMMER + {$$:=$2;} | + error error_info RGKLAMMER + { writeln(outfile,' in enum_list *)'); + yyerrok; + $$:=nil; + } + ; + +special_type_specifier : + STRUCT dname closed_list _PACKED + { + if (not is_packed) and (not packrecords) then + writeln(outfile,'{$PACKRECORDS 1}'); + is_packed:=true; + $$:=new(presobject,init_two(t_structdef,$3,$2)); + } | + STRUCT dname closed_list + { + if (is_packed) and (not packrecords) then + writeln(outfile,'{$PACKRECORDS 4}'); + is_packed:=false; + $$:=new(presobject,init_two(t_structdef,$3,$2)); + } | + UNION dname closed_list _PACKED + { + if (not is_packed) and (not packrecords) then + writeln(outfile,'{$PACKRECORDS 1}'); + is_packed:=true; + $$:=new(presobject,init_two(t_uniondef,$3,$2)); + } | + UNION dname closed_list + { + $$:=new(presobject,init_two(t_uniondef,$3,$2)); + } | + UNION dname + { + $$:=$2; + } | + STRUCT dname + { + $$:=$2; + } | + ENUM dname closed_enum_list + { + $$:=new(presobject,init_two(t_enumdef,$3,$2)); + } | + ENUM dname + { + $$:=$2; + }; + +type_specifier : + _CONST type_specifier + { + if not stripinfo then + writeln(outfile,'(* Const before type ignored *)'); + $$:=$2; + } | + UNION closed_list _PACKED + { + if (not is_packed) and (not packrecords)then + writeln(outfile,'{$PACKRECORDS 1}'); + is_packed:=true; + $$:=new(presobject,init_one(t_uniondef,$2)); + } | + UNION closed_list + { + $$:=new(presobject,init_one(t_uniondef,$2)); + } | + STRUCT closed_list _PACKED + { + if (not is_packed) and (not packrecords) then + writeln(outfile,'{$PACKRECORDS 1}'); + is_packed:=true; + $$:=new(presobject,init_one(t_structdef,$2)); + } | + STRUCT closed_list + { + if (is_packed) and (not packrecords) then + writeln(outfile,'{$PACKRECORDS 4}'); + is_packed:=false; + $$:=new(presobject,init_one(t_structdef,$2)); + } | + ENUM closed_enum_list + { + $$:=new(presobject,init_one(t_enumdef,$2)); + } | + special_type_specifier + { + $$:=$1; + } | + simple_type_name { $$:=$1; } + ; + +member_list : member_declaration member_list + { + $$:=new(presobject,init_one(t_memberdeclist,$1)); + $$^.next:=$2; + } | + member_declaration + { + $$:=new(presobject,init_one(t_memberdeclist,$1)); + } + ; + +member_declaration : + type_specifier declarator_list SEMICOLON + { + $$:=new(presobject,init_two(t_memberdec,$1,$2)); + } + ; + +dname : ID { (*dname*) + $$:=new(presobject,init_id(act_token)); + } + ; + +special_type_name : + SIGNED special_type_name + { + hp:=$2; + $$:=hp; + if assigned(hp) then + begin + s:=strpas(hp^.p); + if s=UINT_STR then + s:=INT_STR + else if s=USHORT_STR then + s:=SHORT_STR + else if s=UCHAR_STR then + s:=CHAR_STR + else if s=QWORD_STR then + s:=INT64_STR + else + s:=''; + if s<>'' then + hp^.setstr(s); + end; + } | + UNSIGNED special_type_name + { + hp:=$2; + $$:=hp; + if assigned(hp) then + begin + s:=strpas(hp^.p); + if s=INT_STR then + s:=UINT_STR + else if s=SHORT_STR then + s:=USHORT_STR + else if s=CHAR_STR then + s:=UCHAR_STR + else if s=INT64_STR then + s:=QWORD_STR + else + s:=''; + if s<>'' then + hp^.setstr(s); + end; + } | + INT + { + $$:=new(presobject,init_intid(INT_STR)); + } | + LONG + { + $$:=new(presobject,init_intid(INT_STR)); + } | + LONG INT + { + $$:=new(presobject,init_intid(INT_STR)); + } | + LONG LONG + { + $$:=new(presobject,init_intid(INT64_STR)); + } | + LONG LONG INT + { + $$:=new(presobject,init_intid(INT64_STR)); + } | + SHORT + { + $$:=new(presobject,init_intid(SHORT_STR)); + } | + SHORT INT + { + $$:=new(presobject,init_intid(SHORT_STR)); + } | + REAL + { + $$:=new(presobject,init_intid(REAL_STR)); + } | + VOID + { + $$:=new(presobject,init_no(t_void)); + } | + _CHAR + { + $$:=new(presobject,init_intid(CHAR_STR)); + } | + UNSIGNED + { + $$:=new(presobject,init_intid(UINT_STR)); + } + ; + +simple_type_name : + special_type_name + { + $$:=$1; + } + | + dname + { + $$:=$1; + tn:=$$^.str; + if removeunderscore and + (length(tn)>1) and (tn[1]='_') then + $$^.setstr(Copy(tn,2,length(tn)-1)); + } + ; + +declarator_list : + declarator_list COMMA declarator + { + $$:=$1; + hp:=$1; + while assigned(hp^.next) do + hp:=hp^.next; + hp^.next:=new(presobject,init_one(t_declist,$3)); + }| + error error_info COMMA declarator_list + { + writeln(outfile,' in declarator_list *)'); + $$:=$4; + yyerrok; + }| + error error_info + { + writeln(outfile,' in declarator_list *)'); + yyerrok; + }| + declarator + { + $$:=new(presobject,init_one(t_declist,$1)); + } + ; + +argument_declaration : type_specifier declarator + { + $$:=new(presobject,init_two(t_arg,$1,$2)); + } | + type_specifier STAR declarator + { + (* type_specifier STAR declarator *) + hp:=new(presobject,init_one(t_pointerdef,$1)); + $$:=new(presobject,init_two(t_arg,hp,$3)); + } | + type_specifier abstract_declarator + { + $$:=new(presobject,init_two(t_arg,$1,$2)); + } + ; + +argument_declaration_list : argument_declaration + { + $$:=new(presobject,init_two(t_arglist,$1,nil)); + } | + argument_declaration COMMA argument_declaration_list + { + $$:=new(presobject,init_two(t_arglist,$1,nil)); + $$^.next:=$3; + } | + ELLIPSIS + { + $$:=new(presobject,init_two(t_arglist,ellipsisarg,nil)); + } | + { + $$:=nil; + } + ; + +size_overrider : + _FAR + { $$:=new(presobject,init_id('far'));} + | _NEAR + { $$:=new(presobject,init_id('near'));} + | _HUGE + { $$:=new(presobject,init_id('huge'));} + ; + +declarator : + _CONST declarator + { + if not stripinfo then + writeln(outfile,'(* Const before declarator ignored *)'); + $$:=$2; + } | + size_overrider STAR declarator + { + if not stripinfo then + writeln(outfile,aktspace,'(* ',$1^.p,' ignored *)'); + dispose($1,done); + hp:=$3; + $$:=hp; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_one(t_pointerdef,nil)); + } | + STAR declarator + { + (* %prec PSTAR this was wrong!! *) + hp:=$2; + $$:=hp; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_one(t_pointerdef,nil)); + } | + _AND declarator %prec P_AND + { + hp:=$2; + $$:=hp; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_one(t_addrdef,nil)); + } | + dname COLON expr + { + (* size specifier supported *) + hp:=new(presobject,init_one(t_size_specifier,$3)); + $$:=new(presobject,init_three(t_dec,nil,$1,hp)); + }| + dname ASSIGN expr + { + if not stripinfo then + writeln(outfile,'(* Warning : default value for ',$1^.p,' ignored *)'); + hp:=new(presobject,init_one(t_default_value,$3)); + $$:=new(presobject,init_three(t_dec,nil,$1,hp)); + }| + dname + { + $$:=new(presobject,init_two(t_dec,nil,$1)); + }| + declarator LKLAMMER argument_declaration_list RKLAMMER + { + hp:=$1; + $$:=hp; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_two(t_procdef,nil,$3)); + } | + declarator no_arg + { + hp:=$1; + $$:=hp; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_two(t_procdef,nil,nil)); + } | + declarator LECKKLAMMER expr RECKKLAMMER + { + hp:=$1; + $$:=hp; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_two(t_arraydef,nil,$3)); + } | + declarator LECKKLAMMER RECKKLAMMER + { + (* this is translated into a pointer *) + hp:=$1; + $$:=hp; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_two(t_arraydef,nil,nil)); + } | + LKLAMMER declarator RKLAMMER + { + $$:=$2; + } + ; + +no_arg : LKLAMMER RKLAMMER | + LKLAMMER VOID RKLAMMER; + +abstract_declarator : + _CONST abstract_declarator + { + if not stripinfo then + writeln(outfile,'(* Const before abstract_declarator ignored *)'); + $$:=$2; + } | + size_overrider STAR abstract_declarator + { + if not stripinfo then + writeln(outfile,aktspace,'(* ',$1^.p,' ignored *)'); + dispose($1,done); + hp:=$3; + $$:=hp; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_one(t_pointerdef,nil)); + } | + STAR abstract_declarator %prec PSTAR + { + hp:=$2; + $$:=hp; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_one(t_pointerdef,nil)); + } | + abstract_declarator LKLAMMER argument_declaration_list RKLAMMER + { + hp:=$1; + $$:=hp; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_two(t_procdef,nil,$3)); + } | + abstract_declarator no_arg + { + hp:=$1; + $$:=hp; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_two(t_procdef,nil,nil)); + } | + abstract_declarator LECKKLAMMER expr RECKKLAMMER + { + hp:=$1; + $$:=hp; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_two(t_arraydef,nil,$3)); + } | + declarator LECKKLAMMER RECKKLAMMER + { + (* this is translated into a pointer *) + hp:=$1; + $$:=hp; + while assigned(hp^.p1) do + hp:=hp^.p1; + hp^.p1:=new(presobject,init_two(t_arraydef,nil,nil)); + } | + LKLAMMER abstract_declarator RKLAMMER + { + $$:=$2; + } | + { + $$:=new(presobject,init_two(t_dec,nil,nil)); + } + ; + +expr : shift_expr + { $$:=$1; } + ; + +shift_expr : + expr _ASSIGN expr + { $$:=new(presobject,init_bop(':=',$1,$3)); } + | expr EQUAL expr + { $$:=new(presobject,init_bop('=',$1,$3));} + | expr UNEQUAL expr + { $$:=new(presobject,init_bop('<>',$1,$3));} + | expr GT expr + { $$:=new(presobject,init_bop('>',$1,$3));} + | expr GTE expr + { $$:=new(presobject,init_bop('>=',$1,$3));} + | expr LT expr + { $$:=new(presobject,init_bop('<',$1,$3));} + | expr LTE expr + { $$:=new(presobject,init_bop('<=',$1,$3));} + | expr _PLUS expr + { $$:=new(presobject,init_bop('+',$1,$3));} + | expr MINUS expr + { $$:=new(presobject,init_bop('-',$1,$3));} + | expr STAR expr + { $$:=new(presobject,init_bop('*',$1,$3));} + | expr _SLASH expr + { $$:=new(presobject,init_bop('/',$1,$3));} + | expr _OR expr + { $$:=new(presobject,init_bop(' or ',$1,$3));} + | expr _AND expr + { $$:=new(presobject,init_bop(' and ',$1,$3));} + | expr _NOT expr + { $$:=new(presobject,init_bop(' not ',$1,$3));} + | expr _SHL expr + { $$:=new(presobject,init_bop(' shl ',$1,$3));} + | expr _SHR expr + { $$:=new(presobject,init_bop(' shr ',$1,$3));} + | expr QUESTIONMARK colon_expr + { + $3^.p1:=$1; + $$:=$3; + inc(if_nb); + $$^.p:=strpnew('if_local'+str(if_nb)); + } | + unary_expr {$$:=$1;} + ; + +colon_expr : expr COLON expr + { (* if A then B else C *) + $$:=new(presobject,init_three(t_ifexpr,nil,$1,$3));} + ; + +maybe_empty_unary_expr : + unary_expr + { $$:=$1; } + | + { $$:=nil;} + ; + +unary_expr: + dname + { + $$:=$1; + } | + special_type_name + { + $$:=$1; + } | + CSTRING + { + (* remove L prefix for widestrings *) + s:=act_token; + if Win32headers and (s[1]='L') then + delete(s,1,1); + $$:=new(presobject,init_id(''''+copy(s,2,length(s)-2)+'''')); + } | + NUMBER + { + $$:=new(presobject,init_id(act_token)); + } | + unary_expr POINT expr + { + $$:=new(presobject,init_bop('.',$1,$3)); + } | + unary_expr DEREF expr + { + $$:=new(presobject,init_bop('^.',$1,$3)); + } | + MINUS unary_expr + { + $$:=new(presobject,init_preop('-',$2)); + }| + _AND unary_expr %prec R_AND + { + $$:=new(presobject,init_preop('@',$2)); + }| + _NOT unary_expr + { + $$:=new(presobject,init_preop(' not ',$2)); + } | + LKLAMMER dname RKLAMMER maybe_empty_unary_expr + { + if assigned($4) then + $$:=new(presobject,init_two(t_typespec,$2,$4)) + else + $$:=$2; + } | + LKLAMMER type_specifier RKLAMMER unary_expr + { + $$:=new(presobject,init_two(t_typespec,$2,$4)); + } | + LKLAMMER type_specifier STAR RKLAMMER unary_expr + { + hp:=new(presobject,init_one(t_pointerdef,$2)); + $$:=new(presobject,init_two(t_typespec,hp,$5)); + } | + LKLAMMER type_specifier size_overrider STAR RKLAMMER unary_expr + { + if not stripinfo then + writeln(outfile,aktspace,'(* ',$3^.p,' ignored *)'); + dispose($3,done); + write_type_specifier(outfile,$2); + writeln(outfile,' ignored *)'); + hp:=new(presobject,init_one(t_pointerdef,$2)); + $$:=new(presobject,init_two(t_typespec,hp,$6)); + } | + dname LKLAMMER exprlist RKLAMMER + { + hp:=new(presobject,init_one(t_exprlist,$1)); + $$:=new(presobject,init_three(t_funexprlist,hp,$3,nil)); + } | + LKLAMMER shift_expr RKLAMMER + { + $$:=$2; + } | + LKLAMMER STAR unary_expr RKLAMMER maybe_space LKLAMMER exprlist RKLAMMER + { + $$:=new(presobject,init_two(t_callop,$3,$7)); + } | + dname LECKKLAMMER exprlist RECKKLAMMER + { + $$:=new(presobject,init_two(t_arrayop,$1,$3)); + } + ; + +enum_list : + enum_element COMMA enum_list + { (*enum_element COMMA enum_list *) + $$:=$1; + $$^.next:=$3; + } | + enum_element { + $$:=$1; + } | + {(* empty enum list *) + $$:=nil;}; + +enum_element : + dname _ASSIGN expr + { begin (*enum_element: dname _ASSIGN expr *) + $$:=new(presobject,init_two(t_enumlist,$1,$3)); + end; + } | + dname + { + begin (*enum_element: dname*) + $$:=new(presobject,init_two(t_enumlist,$1,nil)); + end; + }; + + +def_expr : + unary_expr + { + if $1^.typ=t_funexprlist then + $$:=$1 + else + $$:=new(presobject,init_two(t_exprlist,$1,nil)); + (* if here is a type specifier + we know the return type *) + if ($1^.typ=t_typespec) then + $$^.p3:=$1^.p1^.get_copy; + } + ; + +para_def_expr : + SPACE_DEFINE def_expr + { + $$:=$2; + } | + maybe_space LKLAMMER def_expr RKLAMMER + { + $$:=$3 + } + ; + +exprlist : exprelem COMMA exprlist + { (*exprlist COMMA expr*) + $$:=$1; + $1^.next:=$3; + } | + exprelem + { + $$:=$1; + } | + { (* empty expression list *) + $$:=nil; }; + +exprelem : + expr + { + $$:=new(presobject,init_one(t_exprlist,$1)); + }; + +%% + +function yylex : Integer; +begin + yylex:=scan.yylex; + line_no:=yylineno; +end; + +procedure WriteFileHeader(var headerfile: Text); +var + i: integer; + originalstr: string; +begin +{ write unit header } + if not includefile then + begin + if createdynlib then + writeln(headerfile,'{$mode objfpc}'); + writeln(headerfile,'unit ',unitname,';'); + writeln(headerfile,'interface'); + writeln(headerfile); + writeln(headerfile,'{'); + writeln(headerfile,' Automatically converted by H2Pas ',version,' from ',inputfilename); + writeln(headerfile,' The following command line parameters were used:'); + for i:=1 to paramcount do + writeln(headerfile,' ',paramstr(i)); + writeln(headerfile,'}'); + writeln(headerfile); + end; + if UseName then + begin + writeln(headerfile,aktspace,'const'); + writeln(headerfile,aktspace,' External_library=''',libfilename,'''; {Setup as you need}'); + writeln(headerfile); + end; + if UsePPointers then + begin + Writeln(headerfile,aktspace,'{ Pointers to basic pascal types, inserted by h2pas conversion program.}'); + Writeln(headerfile,aktspace,'Type'); + Writeln(headerfile,aktspace,' PLongint = ^Longint;'); + Writeln(headerfile,aktspace,' PSmallInt = ^SmallInt;'); + Writeln(headerfile,aktspace,' PByte = ^Byte;'); + Writeln(headerfile,aktspace,' PWord = ^Word;'); + Writeln(headerfile,aktspace,' PDWord = ^DWord;'); + Writeln(headerfile,aktspace,' PDouble = ^Double;'); + Writeln(headerfile); + end; + if PTypeList.count <> 0 then + Writeln(headerfile,aktspace,'Type'); + for i:=0 to (PTypeList.Count-1) do + begin + originalstr:=copy(PTypelist[i],2,length(PTypeList[i])); + Writeln(headerfile,aktspace,PTypeList[i],' = ^',originalstr,';'); + end; + if not packrecords then + begin + writeln(headerfile,'{$IFDEF FPC}'); + writeln(headerfile,'{$PACKRECORDS C}'); + writeln(headerfile,'{$ENDIF}'); + end; + writeln(headerfile); +end; + + +var + SS : string; + i : longint; + headerfile: Text; + finaloutfile: Text; +begin + pointerprefix:=false; +{ Initialize } + PTypeList:=TStringList.Create; + PTypeList.Sorted := true; + PTypeList.Duplicates := dupIgnore; + freedynlibproc:=TStringList.Create; + loaddynlibproc:=TStringList.Create; + yydebug:=true; + aktspace:=''; + block_type:=bt_no; + IsExtern:=false; +{ Read commandline options } + ProcessOptions; + if not CompactMode then + aktspace:=' '; +{ open input and output files } + assign(yyinput, inputfilename); + {$I-} + reset(yyinput); + {$I+} + if ioresult<>0 then + begin + writeln('file ',inputfilename,' not found!'); + halt(1); + end; + { This is the intermediate output file } + assign(outfile, 'ext3.tmp'); + {$I-} + rewrite(outfile); + {$I+} + if ioresult<>0 then + begin + writeln('file ext3.tmp could not be created!'); + halt(1); + end; + writeln(outfile); +{ Open tempfiles } + { This is where the implementation section of the unit shall be stored } + Assign(implemfile,'ext.tmp'); + rewrite(implemfile); + Assign(tempfile,'ext2.tmp'); + rewrite(tempfile); +{ Parse! } + yyparse; +{ Write implementation if needed } + if not(includefile) then + begin + writeln(outfile); + writeln(outfile,'implementation'); + writeln(outfile); + end; + { here we have a problem if a line is longer than 255 chars !! } + reset(implemfile); + while not eof(implemfile) do + begin + readln(implemfile,SS); + writeln(outfile,SS); + end; + + if createdynlib then + begin + writeln(outfile,' uses'); + writeln(outfile,' SysUtils,'); + writeln(outfile,'{$ifdef Win32}'); + writeln(outfile,' Windows;'); + writeln(outfile,'{$else}'); + writeln(outfile,' DLLFuncs;'); + writeln(outfile,'{$endif win32}'); + writeln(outfile); + writeln(outfile,' var'); + writeln(outfile,' hlib : thandle;'); + writeln(outfile); + writeln(outfile); + writeln(outfile,' procedure Free',unitname,';'); + writeln(outfile,' begin'); + writeln(outfile,' FreeLibrary(hlib);'); + + for i:=0 to (freedynlibproc.Count-1) do + Writeln(outfile,' ',freedynlibproc[i]); + + writeln(outfile,' end;'); + writeln(outfile); + writeln(outfile); + writeln(outfile,' procedure Load',unitname,'(lib : pchar);'); + writeln(outfile,' begin'); + writeln(outfile,' Free',unitname,';'); + writeln(outfile,' hlib:=LoadLibrary(lib);'); + writeln(outfile,' if hlib=0 then'); + writeln(outfile,' raise Exception.Create(format(''Could not load library: %s'',[lib]));'); + writeln(outfile); + for i:=0 to (loaddynlibproc.Count-1) do + Writeln(outfile,' ',loaddynlibproc[i]); + writeln(outfile,' end;'); + + writeln(outfile); + writeln(outfile); + + writeln(outfile,'initialization'); + writeln(outfile,' Load',unitname,'(''',unitname,''');'); + writeln(outfile,'finalization'); + writeln(outfile,' Free',unitname,';'); + end; + + { write end of file } + writeln(outfile); + if not(includefile) then + writeln(outfile,'end.'); + { close and erase tempfiles } + close(implemfile); + erase(implemfile); + close(tempfile); + erase(tempfile); + flush(outfile); + + {**** generate full file ****} + assign(headerfile, 'ext4.tmp'); + {$I-} + rewrite(headerfile); + {$I+} + if ioresult<>0 then + begin + writeln('file ext4.tmp could not be created!'); + halt(1); + end; + WriteFileHeader(HeaderFile); + + { Final output filename } + assign(finaloutfile, outputfilename); + {$I-} + rewrite(finaloutfile); + {$I+} + if ioresult<>0 then + begin + writeln('file ',outputfilename,' could not be created!'); + halt(1); + end; + writeln(finaloutfile); + + { Read unit header file } + reset(headerfile); + while not eof(headerfile) do + begin + readln(headerfile,SS); + writeln(finaloutfile,SS); + end; + { Read interface and implementation file } + reset(outfile); + while not eof(outfile) do + begin + readln(outfile,SS); + writeln(finaloutfile,SS); + end; + + close(HeaderFile); + close(outfile); + close(finaloutfile); + erase(outfile); + erase(headerfile); + + PTypeList.Free; + freedynlibproc.free; + loaddynlibproc.free; +end. + diff --git a/utils/h2pas/scan.l b/utils/h2pas/scan.l index 07e27e4310..477b78dc47 100644 --- a/utils/h2pas/scan.l +++ b/utils/h2pas/scan.l @@ -1,839 +1,858 @@ -%{ -{ - $Id: scan.l,v 1.7 2004/09/08 22:21:41 carl Exp $ - Copyright (c) 1998-2000 by Florian Klaempfl - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - ****************************************************************************} - - -unit scan; - - interface - - uses - strings, - lexlib,yacclib; - - const - version = '0.99.16'; - - type - Char=system.char; - ttyp = ( - t_id, - { p contains the string } - t_arraydef, - { } - t_pointerdef, - { p1 contains the definition - if in type overrider - or nothing for args - } - t_addrdef, - - t_void, - { no field } - t_dec, - { } - t_declist, - { p1 is t_dec - next if exists } - t_memberdec, - { p1 is type specifier - p2 is declarator_list } - t_structdef, - { } - t_memberdeclist, - { p1 is memberdec - next is next if it exist } - t_procdef, - { } - t_uniondef, - { } - t_enumdef, - { } - t_enumlist, - { } - t_preop, - { p contains the operator string - p1 contains the right expr } - t_bop, - { p contains the operator string - p1 contains the left expr - p2 contains the right expr } - t_arrayop, - { - p1 contains the array expr - p2 contains the index expressions } - t_callop, - { - p1 contains the proc expr - p2 contains the index expressions } - t_arg, - { - p1 contain the typedef - p2 the declarator (t_dec) - } - t_arglist, - { } - t_funexprlist, - { } - t_exprlist, - { p1 contains the expr - next contains the next if it exists } - t_ifexpr, - { p1 contains the condition expr - p2 contains the if branch - p3 contains the else branch } - t_funcname, - { p1 contains the function dname - p2 contains the funexprlist - p3 possibly contains the return type } - t_typespec, - { p1 is the type itself - p2 the typecast expr } - t_size_specifier, - { p1 expr for size } - t_default_value - { p1 expr for value } - ); - -const - ttypstr: array[ttyp] of string = - ( - 't_id', - 't_arraydef', - 't_pointerdef', - 't_addrdef', - 't_void', - 't_dec', - 't_declist', - 't_memberdec', - 't_structdef', - 't_memberdeclist', - 't_procdef', - 't_uniondef', - 't_enumdef', - 't_enumlist', - 't_preop', - 't_bop', - 't_arrayop', - 't_callop', - 't_arg', - 't_arglist', - 't_funexprlist', - 't_exprlist', - 't_ifexpr', - 't_funcname', - 't_typespec', - 't_size_specifier', - 't_default_value' - ); - -type - - presobject = ^tresobject; - tresobject = object - typ : ttyp; - p : pchar; - next : presobject; - p1,p2,p3 : presobject; - { name of int/real, then no T prefix is required } - intname : boolean; - constructor init_no(t : ttyp); - constructor init_one(t : ttyp;_p1 : presobject); - constructor init_two(t : ttyp;_p1,_p2 : presobject); - constructor init_three(t : ttyp;_p1,_p2,_p3 : presobject); - constructor init_id(const s : string); - constructor init_intid(const s : string); - constructor init_bop(const s : string;_p1,_p2 : presobject); - constructor init_preop(const s : string;_p1 : presobject); - procedure setstr(const s:string); - function str : string; - function strlength : byte; - function get_copy : presobject; - { can this ve considered as a constant ? } - function is_const : boolean; - destructor done; - end; - - tblocktype = (bt_type,bt_const,bt_var,bt_func,bt_no); - - - var - infile : string; - outfile : text; - c : char; - aktspace : string; - block_type : tblocktype; - commentstr: string; - - const - in_define : boolean = false; - { True if define spans to the next line } - cont_line : boolean = false; - { 1 after define; 2 after the ID to print the first separating space } - in_space_define : byte = 0; - arglevel : longint = 0; - - function yylex : integer; - function act_token : string; - procedure internalerror(i : integer); - - function strpnew(const s : string) : pchar; - - procedure writetree(p: presobject); - - - implementation - - uses - options,converu; - - const - newline = #10; - - - procedure writeentry(p: presobject; var currentlevel: integer); - begin - if assigned(p^.p1) then - begin - WriteLn(' Entry p1[',ttypstr[p^.p1^.typ],']',p^.p1^.str); - end; - if assigned(p^.p2) then - begin - WriteLn(' Entry p2[',ttypstr[p^.p2^.typ],']',p^.p2^.str); - end; - if assigned(p^.p3) then - begin - WriteLn(' Entry p3[',ttypstr[p^.p3^.typ],']',p^.p3^.str); - end; - end; - - procedure writetree(p: presobject); - var - i : integer; - localp: presobject; - localp1: presobject; - currentlevel : integer; - begin - localp:=p; - currentlevel:=0; - while assigned(localp) do - begin - WriteLn('Entry[',ttypstr[localp^.typ],']',localp^.str); - case localp^.typ of - { Some arguments sharing the same type } - t_arglist: - begin - localp1:=localp; - while assigned(localp1) do - begin - writeentry(localp1,currentlevel); - localp1:=localp1^.p1; - end; - end; - end; - - localp:=localp^.next; - end; - end; - - - - procedure internalerror(i : integer); - begin - writeln('Internal error ',i,' in line ',yylineno); - halt(1); - end; - - - procedure commenteof; - begin - writeln('unexpected EOF inside comment at line ',yylineno); - end; - - - procedure copy_until_eol; - begin - c:=get_char; - while c<>newline do - begin - write(outfile,c); - c:=get_char; - end; - end; - - - procedure skip_until_eol; - begin - c:=get_char; - while c<>newline do - c:=get_char; - end; - - - function strpnew(const s : string) : pchar; - var - p : pchar; - begin - getmem(p,length(s)+1); - strpcopy(p,s); - strpnew:=p; - end; - - - constructor tresobject.init_preop(const s : string;_p1 : presobject); - begin - typ:=t_preop; - p:=strpnew(s); - p1:=_p1; - p2:=nil; - p3:=nil; - next:=nil; - intname:=false; - end; - - constructor tresobject.init_bop(const s : string;_p1,_p2 : presobject); - begin - typ:=t_bop; - p:=strpnew(s); - p1:=_p1; - p2:=_p2; - p3:=nil; - next:=nil; - intname:=false; - end; - - constructor tresobject.init_id(const s : string); - begin - typ:=t_id; - p:=strpnew(s); - p1:=nil; - p2:=nil; - p3:=nil; - next:=nil; - intname:=false; - end; - - constructor tresobject.init_intid(const s : string); - begin - typ:=t_id; - p:=strpnew(s); - p1:=nil; - p2:=nil; - p3:=nil; - next:=nil; - intname:=true; - end; - - constructor tresobject.init_two(t : ttyp;_p1,_p2 : presobject); - begin - typ:=t; - p1:=_p1; - p2:=_p2; - p3:=nil; - p:=nil; - next:=nil; - intname:=false; - end; - - constructor tresobject.init_three(t : ttyp;_p1,_p2,_p3 : presobject); - begin - typ:=t; - p1:=_p1; - p2:=_p2; - p3:=_p3; - p:=nil; - next:=nil; - intname:=false; - end; - - constructor tresobject.init_one(t : ttyp;_p1 : presobject); - begin - typ:=t; - p1:=_p1; - p2:=nil; - p3:=nil; - next:=nil; - p:=nil; - intname:=false; - end; - - constructor tresobject.init_no(t : ttyp); - begin - typ:=t; - p:=nil; - p1:=nil; - p2:=nil; - p3:=nil; - next:=nil; - intname:=false; - end; - - procedure tresobject.setstr(const s : string); - begin - if assigned(p) then - strdispose(p); - p:=strpnew(s); - end; - - function tresobject.str : string; - begin - str:=strpas(p); - end; - - function tresobject.strlength : byte; - begin - if assigned(p) then - strlength:=strlen(p) - else - strlength:=0; - end; - - { can this ve considered as a constant ? } - function tresobject.is_const : boolean; - begin - case typ of - t_id,t_void : - is_const:=true; - t_preop : - is_const:= ((str='-') or (str=' not ')) and p1^.is_const; - t_bop : - is_const:= p2^.is_const and p1^.is_const; - else - is_const:=false; - end; - end; - - function tresobject.get_copy : presobject; - var - newres : presobject; - begin - newres:=new(presobject,init_no(typ)); - newres^.intname:=intname; - if assigned(p) then - newres^.p:=strnew(p); - if assigned(p1) then - newres^.p1:=p1^.get_copy; - if assigned(p2) then - newres^.p2:=p2^.get_copy; - if assigned(p3) then - newres^.p3:=p3^.get_copy; - if assigned(next) then - newres^.next:=next^.get_copy; - get_copy:=newres; - end; - - destructor tresobject.done; - begin - (* writeln('disposing ',byte(typ)); *) - if assigned(p)then strdispose(p); - if assigned(p1) then - dispose(p1,done); - if assigned(p2) then - dispose(p2,done); - if assigned(p3) then - dispose(p3,done); - if assigned(next) then - dispose(next,done); - end; -%} - -D [0-9] -%% - -"/*" begin - if not stripcomment then - write(outfile,aktspace,'{'); - repeat - c:=get_char; - case c of - '*' : - begin - c:=get_char; - if c='/' then - begin - if not stripcomment then - write(outfile,' }'); - c:=get_char; - if (c=newline) then - begin - writeln(outfile); - unget_char(c); - end; - flush(outfile); - exit; - end - else - begin - if not stripcomment then - write(outfile,'*'); - unget_char(c) - end; - end; - newline : - begin - if not stripcomment then - begin - writeln(outfile); - write(outfile,aktspace); - end; - end; - { Don't write this thing out, to - avoid nested comments. - } - '{','}' : - begin - end; - #0 : - commenteof; - else - if not stripcomment then - write(outfile,c); - end; - until false; - flush(outfile); - end; -"//" begin - commentstr:=''; - if (in_define) and not (stripcomment) then - begin - commentstr:='{'; - end - else - If not stripcomment then - write(outfile,aktspace,'{'); - - repeat - c:=get_char; - case c of - newline : - begin - unget_char(c); - if not stripcomment then - begin - if in_define then - begin - commentstr:=commentstr+' }'; - end - else - begin - write(outfile,' }'); - writeln(outfile); - end; - end; - flush(outfile); - exit; - end; - { Don't write this comment out, - to avoid nested comment problems - } - '{','}' : - begin - end; - #0 : - commenteof; - else - if not stripcomment then - begin - if in_define then - begin - commentstr:=commentstr+c; - end - else - write(outfile,c); - end; - end; - until false; - flush(outfile); - end; -\"[^\"]*\" return(CSTRING); -\'[^\']*\' return(CSTRING); -"L"\"[^\"]*\" if win32headers then - return(CSTRING) - else - return(256); -"L"\'[^\']*\' if win32headers then - return(CSTRING) - else - return(256); -{D}+[Uu]?[Ll]? begin - while yytext[length(yytext)] in ['L','U','l','u'] do - Delete(yytext,length(yytext),1); - return(NUMBER); - end; -"0x"[0-9A-Fa-f]*[Uu]?[Ll]? - begin - (* handle pre- and postfixes *) - if copy(yytext,1,2)='0x' then - begin - delete(yytext,1,2); - yytext:='$'+yytext; - end; - while yytext[length(yytext)] in ['L','U','l','u'] do - Delete(yytext,length(yytext),1); - return(NUMBER); - end; -{D}+(\.{D}+)?([Ee][+-]?{D}+)? - begin - return(NUMBER); - end; -"->" if in_define then - return(DEREF) - else - return(256); -"-" return(MINUS); -"==" return(EQUAL); -"!=" return(UNEQUAL); -">=" return(GTE); -"<=" return(LTE); -">>" return(_SHR); -"##" return(STICK); -"<<" return(_SHL); -">" return(GT); -"<" return(LT); -"|" return(_OR); -"&" return(_AND); -"~" return(_NOT); (* inverse, but handled as not operation *) -"!" return(_NOT); -"/" return(_SLASH); -"+" return(_PLUS); -"?" return(QUESTIONMARK); -":" return(COLON); -"," return(COMMA); -"[" return(LECKKLAMMER); -"]" return(RECKKLAMMER); -"(" begin - inc(arglevel); - return(LKLAMMER); - end; -")" begin - dec(arglevel); - return(RKLAMMER); - end; -"*" return(STAR); -"..." return(ELLIPSIS); -"." if in_define then - return(POINT) - else - return(256); -"=" return(_ASSIGN); -"extern" return(EXTERN); -"STDCALL" if Win32headers then - return(STDCALL) - else - return(ID); -"CDECL" if not Win32headers then - return(ID) - else - return(CDECL); -"PASCAL" if not Win32headers then - return(ID) - else - return(PASCAL); -"PACKED" if not Win32headers then - return(ID) - else - return(_PACKED); -"WINAPI" if not Win32headers then - return(ID) - else - return(WINAPI); -"SYS_TRAP" if not palmpilot then - return(ID) - else - return(SYS_TRAP); -"WINGDIAPI" if not Win32headers then - return(ID) - else - return(WINGDIAPI); -"CALLBACK" if not Win32headers then - return(ID) - else - return(CALLBACK); -"EXPENTRY" if not Win32headers then - return(ID) - else - return(CALLBACK); -"void" return(VOID); -"VOID" return(VOID); -"#ifdef __cplusplus"[ \t]*\n"extern \"C\" {"\n"#endif" - begin - if not stripinfo then - writeln(outfile,'{ C++ extern C conditionnal removed }'); - end; -"#ifdef __cplusplus"[ \t]*\n"}"\n"#endif" - begin - if not stripinfo then - writeln(outfile,'{ C++ end of extern C conditionnal removed }'); - end; -"#"[ \t]*"else" begin - writeln(outfile,'{$else}'); - block_type:=bt_no; - flush(outfile); - end; -"#"[ \t]*"endif" begin - writeln(outfile,'{$endif}'); - block_type:=bt_no; - flush(outfile); - end; -"#"[ \t]*"elif" begin - if not stripinfo then - write(outfile,'(*** was #elif ****)'); - write(outfile,'{$else'); - copy_until_eol; - writeln(outfile,'}'); - block_type:=bt_no; - flush(outfile); - end; -"#"[ \t]*"undef" begin - write(outfile,'{$undef'); - copy_until_eol; - writeln(outfile,'}'); - flush(outfile); - end; -"#"[ \t]*"error" begin - write(outfile,'{$error'); - copy_until_eol; - writeln(outfile,'}'); - flush(outfile); - end; -"#"[ \t]*"include" begin - write(outfile,'{$include'); - copy_until_eol; - writeln(outfile,'}'); - flush(outfile); - block_type:=bt_no; - end; -"#"[ \t]*"if" begin - write(outfile,'{$if'); - copy_until_eol; - writeln(outfile,'}'); - flush(outfile); - block_type:=bt_no; - end; -"# "[0-9]+" " begin - (* preprocessor line info *) - repeat - c:=get_char; - case c of - newline : - begin - unget_char(c); - exit; - end; - #0 : - commenteof; - end; - until false; - end; -"#"[ \t]*"pragma" begin - if not stripinfo then - begin - write(outfile,'(** unsupported pragma'); - write(outfile,'#pragma'); - copy_until_eol; - writeln(outfile,'*)'); - flush(outfile); - end - else - skip_until_eol; - block_type:=bt_no; - end; -"#"[ \t]*"define" begin - commentstr:=''; - in_define:=true; - in_space_define:=1; - return(DEFINE); - end; -"char" return(_CHAR); -"union" return(UNION); -"enum" return(ENUM); -"struct" return(STRUCT); -"{" return(LGKLAMMER); -"}" return(RGKLAMMER); -"typedef" return(TYPEDEF); -"int" return(INT); -"short" return(SHORT); -"long" return(LONG); -"signed" return(SIGNED); -"unsigned" return(UNSIGNED); -"float" return(REAL); -"const" return(_CONST); -"CONST" return(_CONST); -"FAR" return(_FAR); -"far" return(_FAR); -"NEAR" return(_NEAR); -"near" return(_NEAR); -"HUGE" return(_HUGE); -"huge" return(_HUGE); -[A-Za-z_][A-Za-z0-9_]* begin - if in_space_define=1 then - in_space_define:=2; - return(ID); - end; -";" return(SEMICOLON); -[ \f\t] begin - if (arglevel=0) and (in_space_define=2) then - begin - in_space_define:=0; - return(SPACE_DEFINE); - end; - end; -\n begin - if in_define then - begin - in_space_define:=0; - if cont_line then - begin - cont_line:=false; - end - else - begin - in_define:=false; - return(NEW_LINE); - end; - end; - end; -\\$ begin - if in_define then - begin - cont_line:=true; - end - else - begin - writeln('Unexpected wrap of line ',yylineno); - writeln('"',yyline,'"'); - return(256); - end; - end; -. begin - writeln('Illegal character in line ',yylineno); - writeln('"',yyline,'"'); - return(256); - end; -%% - - -function act_token : string; -begin - act_token:=yytext; -end; - -end. - +%{ +{ + $Id: scan.l,v 1.7 2004/09/08 22:21:41 carl Exp $ + Copyright (c) 1998-2000 by Florian Klaempfl + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + ****************************************************************************} + + +unit scan; + + interface + + uses + strings, + lexlib,yacclib; + + const + version = '1.0.0'; + + type + Char=system.char; + ttyp = ( + t_id, + { p contains the string } + t_arraydef, + { } + t_pointerdef, + { p1 contains the definition + if in type overrider + or nothing for args + } + t_addrdef, + + t_void, + { no field } + t_dec, + { } + t_declist, + { p1 is t_dec + next if exists } + t_memberdec, + { p1 is type specifier + p2 is declarator_list } + t_structdef, + { } + t_memberdeclist, + { p1 is memberdec + next is next if it exist } + t_procdef, + { } + t_uniondef, + { } + t_enumdef, + { } + t_enumlist, + { } + t_preop, + { p contains the operator string + p1 contains the right expr } + t_bop, + { p contains the operator string + p1 contains the left expr + p2 contains the right expr } + t_arrayop, + { + p1 contains the array expr + p2 contains the index expressions } + t_callop, + { + p1 contains the proc expr + p2 contains the index expressions } + t_arg, + { + p1 contain the typedef + p2 the declarator (t_dec) + } + t_arglist, + { } + t_funexprlist, + { } + t_exprlist, + { p1 contains the expr + next contains the next if it exists } + t_ifexpr, + { p1 contains the condition expr + p2 contains the if branch + p3 contains the else branch } + t_funcname, + { p1 contains the function dname + p2 contains the funexprlist + p3 possibly contains the return type } + t_typespec, + { p1 is the type itself + p2 the typecast expr } + t_size_specifier, + { p1 expr for size } + t_default_value, + { p1 expr for value } + t_statement_list, + { p1 is the statement + next is next if it exist } + t_whilenode, + t_fornode, + t_dowhilenode, + t_switchnode, + t_gotonode, + t_continuenode, + t_breaknode + ); + +const + ttypstr: array[ttyp] of string = + ( + 't_id', + 't_arraydef', + 't_pointerdef', + 't_addrdef', + 't_void', + 't_dec', + 't_declist', + 't_memberdec', + 't_structdef', + 't_memberdeclist', + 't_procdef', + 't_uniondef', + 't_enumdef', + 't_enumlist', + 't_preop', + 't_bop', + 't_arrayop', + 't_callop', + 't_arg', + 't_arglist', + 't_funexprlist', + 't_exprlist', + 't_ifexpr', + 't_funcname', + 't_typespec', + 't_size_specifier', + 't_default_value', + 't_statement_list', + 't_whilenode', + 't_fornode', + 't_dowhilenode', + 't_switchnode', + 't_gotonode', + 't_continuenode', + 't_breaknode' + ); + +type + + presobject = ^tresobject; + tresobject = object + typ : ttyp; + p : pchar; + next : presobject; + p1,p2,p3 : presobject; + { name of int/real, then no T prefix is required } + intname : boolean; + constructor init_no(t : ttyp); + constructor init_one(t : ttyp;_p1 : presobject); + constructor init_two(t : ttyp;_p1,_p2 : presobject); + constructor init_three(t : ttyp;_p1,_p2,_p3 : presobject); + constructor init_id(const s : string); + constructor init_intid(const s : string); + constructor init_bop(const s : string;_p1,_p2 : presobject); + constructor init_preop(const s : string;_p1 : presobject); + procedure setstr(const s:string); + function str : string; + function strlength : byte; + function get_copy : presobject; + { can this ve considered as a constant ? } + function is_const : boolean; + destructor done; + end; + + tblocktype = (bt_type,bt_const,bt_var,bt_func,bt_no); + + + var + infile : string; + outfile : text; + c : char; + aktspace : string; + block_type : tblocktype; + commentstr: string; + + const + in_define : boolean = false; + { True if define spans to the next line } + cont_line : boolean = false; + { 1 after define; 2 after the ID to print the first separating space } + in_space_define : byte = 0; + arglevel : longint = 0; + + function yylex : integer; + function act_token : string; + procedure internalerror(i : integer); + + function strpnew(const s : string) : pchar; + + procedure writetree(p: presobject); + + + implementation + + uses + options,converu; + + const + newline = #10; + + + procedure writeentry(p: presobject; var currentlevel: integer); + begin + if assigned(p^.p1) then + begin + WriteLn(' Entry p1[',ttypstr[p^.p1^.typ],']',p^.p1^.str); + end; + if assigned(p^.p2) then + begin + WriteLn(' Entry p2[',ttypstr[p^.p2^.typ],']',p^.p2^.str); + end; + if assigned(p^.p3) then + begin + WriteLn(' Entry p3[',ttypstr[p^.p3^.typ],']',p^.p3^.str); + end; + end; + + procedure writetree(p: presobject); + var + i : integer; + localp: presobject; + localp1: presobject; + currentlevel : integer; + begin + localp:=p; + currentlevel:=0; + while assigned(localp) do + begin + WriteLn('Entry[',ttypstr[localp^.typ],']',localp^.str); + case localp^.typ of + { Some arguments sharing the same type } + t_arglist: + begin + localp1:=localp; + while assigned(localp1) do + begin + writeentry(localp1,currentlevel); + localp1:=localp1^.p1; + end; + end; + end; + + localp:=localp^.next; + end; + end; + + + + procedure internalerror(i : integer); + begin + writeln('Internal error ',i,' in line ',yylineno); + halt(1); + end; + + + procedure commenteof; + begin + writeln('unexpected EOF inside comment at line ',yylineno); + end; + + + procedure copy_until_eol; + begin + c:=get_char; + while c<>newline do + begin + write(outfile,c); + c:=get_char; + end; + end; + + + procedure skip_until_eol; + begin + c:=get_char; + while c<>newline do + c:=get_char; + end; + + + function strpnew(const s : string) : pchar; + var + p : pchar; + begin + getmem(p,length(s)+1); + strpcopy(p,s); + strpnew:=p; + end; + + + constructor tresobject.init_preop(const s : string;_p1 : presobject); + begin + typ:=t_preop; + p:=strpnew(s); + p1:=_p1; + p2:=nil; + p3:=nil; + next:=nil; + intname:=false; + end; + + constructor tresobject.init_bop(const s : string;_p1,_p2 : presobject); + begin + typ:=t_bop; + p:=strpnew(s); + p1:=_p1; + p2:=_p2; + p3:=nil; + next:=nil; + intname:=false; + end; + + constructor tresobject.init_id(const s : string); + begin + typ:=t_id; + p:=strpnew(s); + p1:=nil; + p2:=nil; + p3:=nil; + next:=nil; + intname:=false; + end; + + constructor tresobject.init_intid(const s : string); + begin + typ:=t_id; + p:=strpnew(s); + p1:=nil; + p2:=nil; + p3:=nil; + next:=nil; + intname:=true; + end; + + constructor tresobject.init_two(t : ttyp;_p1,_p2 : presobject); + begin + typ:=t; + p1:=_p1; + p2:=_p2; + p3:=nil; + p:=nil; + next:=nil; + intname:=false; + end; + + constructor tresobject.init_three(t : ttyp;_p1,_p2,_p3 : presobject); + begin + typ:=t; + p1:=_p1; + p2:=_p2; + p3:=_p3; + p:=nil; + next:=nil; + intname:=false; + end; + + constructor tresobject.init_one(t : ttyp;_p1 : presobject); + begin + typ:=t; + p1:=_p1; + p2:=nil; + p3:=nil; + next:=nil; + p:=nil; + intname:=false; + end; + + constructor tresobject.init_no(t : ttyp); + begin + typ:=t; + p:=nil; + p1:=nil; + p2:=nil; + p3:=nil; + next:=nil; + intname:=false; + end; + + procedure tresobject.setstr(const s : string); + begin + if assigned(p) then + strdispose(p); + p:=strpnew(s); + end; + + function tresobject.str : string; + begin + str:=strpas(p); + end; + + function tresobject.strlength : byte; + begin + if assigned(p) then + strlength:=strlen(p) + else + strlength:=0; + end; + + { can this ve considered as a constant ? } + function tresobject.is_const : boolean; + begin + case typ of + t_id,t_void : + is_const:=true; + t_preop : + is_const:= ((str='-') or (str=' not ')) and p1^.is_const; + t_bop : + is_const:= p2^.is_const and p1^.is_const; + else + is_const:=false; + end; + end; + + function tresobject.get_copy : presobject; + var + newres : presobject; + begin + newres:=new(presobject,init_no(typ)); + newres^.intname:=intname; + if assigned(p) then + newres^.p:=strnew(p); + if assigned(p1) then + newres^.p1:=p1^.get_copy; + if assigned(p2) then + newres^.p2:=p2^.get_copy; + if assigned(p3) then + newres^.p3:=p3^.get_copy; + if assigned(next) then + newres^.next:=next^.get_copy; + get_copy:=newres; + end; + + destructor tresobject.done; + begin + (* writeln('disposing ',byte(typ)); *) + if assigned(p)then strdispose(p); + if assigned(p1) then + dispose(p1,done); + if assigned(p2) then + dispose(p2,done); + if assigned(p3) then + dispose(p3,done); + if assigned(next) then + dispose(next,done); + end; +%} + +D [0-9] +%% + +"/*" begin + if not stripcomment then + write(outfile,aktspace,'{'); + repeat + c:=get_char; + case c of + '*' : + begin + c:=get_char; + if c='/' then + begin + if not stripcomment then + write(outfile,' }'); + c:=get_char; + if (c=newline) then + begin + writeln(outfile); + unget_char(c); + end; + flush(outfile); + exit; + end + else + begin + if not stripcomment then + write(outfile,'*'); + unget_char(c) + end; + end; + newline : + begin + if not stripcomment then + begin + writeln(outfile); + write(outfile,aktspace); + end; + end; + { Don't write this thing out, to + avoid nested comments. + } + '{','}' : + begin + end; + #0 : + commenteof; + else + if not stripcomment then + write(outfile,c); + end; + until false; + flush(outfile); + end; +"//" begin + commentstr:=''; + if (in_define) and not (stripcomment) then + begin + commentstr:='{'; + end + else + If not stripcomment then + write(outfile,aktspace,'{'); + + repeat + c:=get_char; + case c of + newline : + begin + unget_char(c); + if not stripcomment then + begin + if in_define then + begin + commentstr:=commentstr+' }'; + end + else + begin + write(outfile,' }'); + writeln(outfile); + end; + end; + flush(outfile); + exit; + end; + { Don't write this comment out, + to avoid nested comment problems + } + '{','}' : + begin + end; + #0 : + commenteof; + else + if not stripcomment then + begin + if in_define then + begin + commentstr:=commentstr+c; + end + else + write(outfile,c); + end; + end; + until false; + flush(outfile); + end; +\"[^\"]*\" return(CSTRING); +\'[^\']*\' return(CSTRING); +"L"\"[^\"]*\" if win32headers then + return(CSTRING) + else + return(256); +"L"\'[^\']*\' if win32headers then + return(CSTRING) + else + return(256); +{D}+[Uu]?[Ll]? begin + while yytext[length(yytext)] in ['L','U','l','u'] do + Delete(yytext,length(yytext),1); + return(NUMBER); + end; +"0x"[0-9A-Fa-f]*[Uu]?[Ll]? + begin + (* handle pre- and postfixes *) + if copy(yytext,1,2)='0x' then + begin + delete(yytext,1,2); + yytext:='$'+yytext; + end; + while yytext[length(yytext)] in ['L','U','l','u'] do + Delete(yytext,length(yytext),1); + return(NUMBER); + end; +{D}+(\.{D}+)?([Ee][+-]?{D}+)? + begin + return(NUMBER); + end; +"->" if in_define then + return(DEREF) + else + return(256); +"-" return(MINUS); +"==" return(EQUAL); +"!=" return(UNEQUAL); +">=" return(GTE); +"<=" return(LTE); +">>" return(_SHR); +"##" return(STICK); +"<<" return(_SHL); +">" return(GT); +"<" return(LT); +"|" return(_OR); +"&" return(_AND); +"~" return(_NOT); (* inverse, but handled as not operation *) +"!" return(_NOT); +"/" return(_SLASH); +"+" return(_PLUS); +"?" return(QUESTIONMARK); +":" return(COLON); +"," return(COMMA); +"[" return(LECKKLAMMER); +"]" return(RECKKLAMMER); +"(" begin + inc(arglevel); + return(LKLAMMER); + end; +")" begin + dec(arglevel); + return(RKLAMMER); + end; +"*" return(STAR); +"..." return(ELLIPSIS); +"." if in_define then + return(POINT) + else + return(256); +"=" return(_ASSIGN); +"extern" return(EXTERN); +"STDCALL" if Win32headers then + return(STDCALL) + else + return(ID); +"CDECL" if not Win32headers then + return(ID) + else + return(CDECL); +"PASCAL" if not Win32headers then + return(ID) + else + return(PASCAL); +"PACKED" if not Win32headers then + return(ID) + else + return(_PACKED); +"WINAPI" if not Win32headers then + return(ID) + else + return(WINAPI); +"SYS_TRAP" if not palmpilot then + return(ID) + else + return(SYS_TRAP); +"WINGDIAPI" if not Win32headers then + return(ID) + else + return(WINGDIAPI); +"CALLBACK" if not Win32headers then + return(ID) + else + return(CALLBACK); +"EXPENTRY" if not Win32headers then + return(ID) + else + return(CALLBACK); +"void" return(VOID); +"VOID" return(VOID); +"#ifdef __cplusplus"[ \t]*\n"extern \"C\" {"\n"#endif" + begin + if not stripinfo then + writeln(outfile,'{ C++ extern C conditionnal removed }'); + end; +"#ifdef __cplusplus"[ \t]*\n"}"\n"#endif" + begin + if not stripinfo then + writeln(outfile,'{ C++ end of extern C conditionnal removed }'); + end; +"#"[ \t]*"else" begin + writeln(outfile,'{$else}'); + block_type:=bt_no; + flush(outfile); + end; +"#"[ \t]*"endif" begin + writeln(outfile,'{$endif}'); + block_type:=bt_no; + flush(outfile); + end; +"#"[ \t]*"elif" begin + if not stripinfo then + write(outfile,'(*** was #elif ****)'); + write(outfile,'{$else'); + copy_until_eol; + writeln(outfile,'}'); + block_type:=bt_no; + flush(outfile); + end; +"#"[ \t]*"undef" begin + write(outfile,'{$undef'); + copy_until_eol; + writeln(outfile,'}'); + flush(outfile); + end; +"#"[ \t]*"error" begin + write(outfile,'{$error'); + copy_until_eol; + writeln(outfile,'}'); + flush(outfile); + end; +"#"[ \t]*"include" begin + write(outfile,'{$include'); + copy_until_eol; + writeln(outfile,'}'); + flush(outfile); + block_type:=bt_no; + end; +"#"[ \t]*"if" begin + write(outfile,'{$if'); + copy_until_eol; + writeln(outfile,'}'); + flush(outfile); + block_type:=bt_no; + end; +"# "[0-9]+" " begin + (* preprocessor line info *) + repeat + c:=get_char; + case c of + newline : + begin + unget_char(c); + exit; + end; + #0 : + commenteof; + end; + until false; + end; +"#"[ \t]*"pragma" begin + if not stripinfo then + begin + write(outfile,'(** unsupported pragma'); + write(outfile,'#pragma'); + copy_until_eol; + writeln(outfile,'*)'); + flush(outfile); + end + else + skip_until_eol; + block_type:=bt_no; + end; +"#"[ \t]*"define" begin + commentstr:=''; + in_define:=true; + in_space_define:=1; + return(DEFINE); + end; +"char" return(_CHAR); +"union" return(UNION); +"enum" return(ENUM); +"struct" return(STRUCT); +"{" return(LGKLAMMER); +"}" return(RGKLAMMER); +"typedef" return(TYPEDEF); +"int" return(INT); +"short" return(SHORT); +"long" return(LONG); +"signed" return(SIGNED); +"unsigned" return(UNSIGNED); +"float" return(REAL); +"const" return(_CONST); +"CONST" return(_CONST); +"FAR" return(_FAR); +"far" return(_FAR); +"NEAR" return(_NEAR); +"near" return(_NEAR); +"HUGE" return(_HUGE); +"huge" return(_HUGE); +"while" return(_WHILE); +[A-Za-z_][A-Za-z0-9_]* begin + if in_space_define=1 then + in_space_define:=2; + return(ID); + end; +";" return(SEMICOLON); +[ \f\t] begin + if (arglevel=0) and (in_space_define=2) then + begin + in_space_define:=0; + return(SPACE_DEFINE); + end; + end; +\n begin + if in_define then + begin + in_space_define:=0; + if cont_line then + begin + cont_line:=false; + end + else + begin + in_define:=false; + return(NEW_LINE); + end; + end; + end; +\\$ begin + if in_define then + begin + cont_line:=true; + end + else + begin + writeln('Unexpected wrap of line ',yylineno); + writeln('"',yyline,'"'); + return(256); + end; + end; +. begin + writeln('Illegal character in line ',yylineno); + writeln('"',yyline,'"'); + return(256); + end; +%% + + +function act_token : string; +begin + act_token:=yytext; +end; + +end. + diff --git a/utils/h2pas/scan.pas b/utils/h2pas/scan.pas index a86cdd0d51..06e279a354 100644 --- a/utils/h2pas/scan.pas +++ b/utils/h2pas/scan.pas @@ -32,7 +32,7 @@ unit scan; lexlib,yacclib; const - version = '0.99.16'; + version = '1.0.0'; type Char=system.char; @@ -111,8 +111,18 @@ unit scan; p2 the typecast expr } t_size_specifier, { p1 expr for size } - t_default_value + t_default_value, { p1 expr for value } + t_statement_list, + { p1 is the statement + next is next if it exist } + t_whilenode, + t_fornode, + t_dowhilenode, + t_switchnode, + t_gotonode, + t_continuenode, + t_breaknode ); const @@ -144,9 +154,17 @@ const 't_funcname', 't_typespec', 't_size_specifier', - 't_default_value' + 't_default_value', + 't_statement_list', + 't_whilenode', + 't_fornode', + 't_dowhilenode', + 't_switchnode', + 't_gotonode', + 't_continuenode', + 't_breaknode' ); - + type presobject = ^tresobject; @@ -198,9 +216,9 @@ type procedure internalerror(i : integer); function strpnew(const s : string) : pchar; - + procedure writetree(p: presobject); - + implementation @@ -209,8 +227,8 @@ type const newline = #10; - - + + procedure writeentry(p: presobject; var currentlevel: integer); begin if assigned(p^.p1) then @@ -226,7 +244,7 @@ type WriteLn(' Entry p3[',ttypstr[p^.p3^.typ],']',p^.p3^.str); end; end; - + procedure writetree(p: presobject); var i : integer; @@ -251,11 +269,11 @@ type end; end; end; - + localp:=localp^.next; end; end; - + procedure internalerror(i : integer); @@ -483,7 +501,7 @@ begin if (c=newline) then begin writeln(outfile); - unget_char(c); + unget_char(c); end; flush(outfile); exit; @@ -503,9 +521,9 @@ begin write(outfile,aktspace); end; end; - { Don't write this thing out, to + { Don't write this thing out, to avoid nested comments. - } + } '{','}' : begin end; @@ -528,7 +546,7 @@ begin else If not stripcomment then write(outfile,aktspace,'{'); - + repeat c:=get_char; case c of @@ -539,20 +557,20 @@ begin begin if in_define then begin - commentstr:=commentstr+' }'; + commentstr:=commentstr+' }'; end else begin - write(outfile,' }'); - writeln(outfile); + write(outfile,' }'); + writeln(outfile); end; - end; + end; flush(outfile); exit; end; - { Don't write this comment out, + { Don't write this comment out, to avoid nested comment problems - } + } '{','}' : begin end; @@ -563,7 +581,7 @@ begin begin if in_define then begin - commentstr:=commentstr+c; + commentstr:=commentstr+c; end else write(outfile,c); @@ -873,14 +891,16 @@ begin 82: return(_HUGE); 83: + return(_WHILE); + 84: begin if in_space_define=1 then in_space_define:=2; return(ID); end; - 84: - return(SEMICOLON); 85: + return(SEMICOLON); + 86: begin if (arglevel=0) and (in_space_define=2) then begin @@ -888,11 +908,11 @@ begin return(SPACE_DEFINE); end; end; - 86: + 87: begin if in_define then begin - in_space_define:=0; + in_space_define:=0; if cont_line then begin cont_line:=false; @@ -904,9 +924,9 @@ begin end; end; end; - 87: + 88: begin - if in_define then + if in_define then begin cont_line:=true; end @@ -917,7 +937,7 @@ begin return(256); end; end; - 88: + 89: begin writeln('Illegal character in line ',yylineno); writeln('"',yyline,'"'); @@ -935,212 +955,214 @@ type YYTRec = record const -yynmarks = 303; -yynmatches = 303; -yyntrans = 548; -yynstates = 307; +yynmarks = 310; +yynmatches = 310; +yyntrans = 559; +yynstates = 312; yyk : array [1..yynmarks] of Integer = ( { 0: } { 1: } { 2: } 25, - 88, + 89, { 3: } - 88, + 89, { 4: } - 88, + 89, { 5: } - 83, - 88, + 84, + 89, { 6: } 7, 9, - 88, + 89, { 7: } 7, 9, - 88, + 89, { 8: } 11, - 88, + 89, { 9: } 37, - 88, + 89, { 10: } 24, - 88, + 89, { 11: } 19, - 88, + 89, { 12: } 20, - 88, + 89, { 13: } - 88, + 89, { 14: } 21, - 88, + 89, { 15: } 22, - 88, + 89, { 16: } 23, - 88, + 89, { 17: } 26, - 88, + 89, { 18: } 27, - 88, + 89, { 19: } 28, - 88, + 89, { 20: } 29, - 88, + 89, { 21: } 30, - 88, + 89, { 22: } 31, - 88, + 89, { 23: } 32, - 88, + 89, { 24: } 33, - 88, + 89, { 25: } 34, - 88, + 89, { 26: } 36, - 88, + 89, { 27: } - 83, - 88, + 84, + 89, { 28: } - 83, - 88, + 84, + 89, { 29: } - 83, - 88, + 84, + 89, { 30: } - 83, - 88, + 84, + 89, { 31: } - 83, - 88, + 84, + 89, { 32: } - 83, - 88, + 84, + 89, { 33: } - 83, - 88, + 84, + 89, { 34: } - 83, - 88, + 84, + 89, { 35: } - 83, - 88, + 84, + 89, { 36: } - 83, - 88, + 84, + 89, { 37: } - 83, - 88, + 84, + 89, { 38: } 66, - 88, + 89, { 39: } 67, - 88, + 89, { 40: } - 83, - 88, + 84, + 89, { 41: } - 83, - 88, + 84, + 89, { 42: } - 83, - 88, + 84, + 89, { 43: } - 83, - 88, + 84, + 89, { 44: } - 83, - 88, + 84, + 89, { 45: } - 83, - 88, + 84, + 89, { 46: } - 83, - 88, + 84, + 89, { 47: } - 83, - 88, + 84, + 89, { 48: } - 83, - 88, + 84, + 89, { 49: } - 83, - 88, + 84, + 89, { 50: } 84, - 88, + 89, { 51: } 85, - 88, + 89, { 52: } 86, + 89, { 53: } 87, - 88, { 54: } 88, + 89, { 55: } - 1, + 89, { 56: } - 2, + 1, { 57: } + 2, { 58: } - 3, { 59: } + 3, { 60: } - 4, { 61: } + 4, { 62: } { 63: } - 83, { 64: } - 7, - 9, + 84, { 65: } 7, + 9, { 66: } 7, { 67: } + 7, { 68: } { 69: } - 8, { 70: } - 10, + 8, { 71: } - 12, + 10, { 72: } - 13, + 12, { 73: } - 14, + 13, { 74: } - 16, + 14, { 75: } - 15, + 16, { 76: } - 18, + 15, { 77: } - 17, + 18, { 78: } + 17, { 79: } { 80: } { 81: } @@ -1149,79 +1171,80 @@ yyk : array [1..yynmarks] of Integer = ( { 84: } { 85: } { 86: } - 83, { 87: } - 83, + 84, { 88: } - 83, + 84, { 89: } - 83, + 84, { 90: } - 83, + 84, { 91: } - 83, + 84, { 92: } - 83, + 84, { 93: } - 83, + 84, { 94: } - 83, + 84, { 95: } - 83, + 84, { 96: } - 83, + 84, { 97: } - 83, + 84, { 98: } - 83, + 84, { 99: } - 83, + 84, { 100: } - 83, + 84, { 101: } - 83, + 84, { 102: } - 83, + 84, { 103: } - 83, + 84, { 104: } - 83, + 84, { 105: } - 83, + 84, { 106: } - 83, + 84, { 107: } - 83, + 84, { 108: } - 83, + 84, { 109: } - 83, + 84, { 110: } - 83, + 84, { 111: } - 83, + 84, { 112: } - 83, + 84, { 113: } - 83, + 84, { 114: } + 84, { 115: } - 5, + 84, { 116: } - 6, { 117: } - 9, + 5, { 118: } + 6, { 119: } 9, { 120: } - 8, { 121: } - 8, + 9, { 122: } - 58, + 8, { 123: } + 8, { 124: } + 58, { 125: } { 126: } { 127: } @@ -1230,293 +1253,297 @@ yyk : array [1..yynmarks] of Integer = ( { 130: } { 131: } { 132: } - 35, { 133: } - 83, { 134: } - 83, + 35, { 135: } - 83, + 84, { 136: } - 83, + 84, { 137: } - 83, + 84, { 138: } - 83, + 84, { 139: } - 83, + 84, { 140: } - 83, + 84, { 141: } - 83, + 84, { 142: } - 83, + 84, { 143: } - 83, + 84, { 144: } - 83, + 84, { 145: } - 83, + 84, { 146: } - 83, + 84, { 147: } - 83, + 84, { 148: } - 83, + 84, { 149: } - 83, + 84, { 150: } - 83, + 84, { 151: } - 83, + 84, { 152: } - 83, + 84, { 153: } - 83, + 84, { 154: } - 69, - 83, + 84, { 155: } - 83, + 84, { 156: } - 83, + 69, + 84, { 157: } - 78, - 83, + 84, { 158: } - 77, - 83, + 84, { 159: } - 83, + 78, + 84, { 160: } - 83, + 77, + 84, { 161: } - 83, + 84, { 162: } - 83, + 84, { 163: } + 84, { 164: } + 84, { 165: } - 58, + 84, { 166: } { 167: } { 168: } + 58, { 169: } { 170: } { 171: } - 59, { 172: } { 173: } { 174: } - 83, + 59, { 175: } - 64, - 83, { 176: } - 83, { 177: } - 83, + 84, { 178: } - 83, + 64, + 84, { 179: } - 83, + 84, { 180: } - 83, + 84, { 181: } - 83, + 84, { 182: } - 83, + 84, { 183: } - 83, + 84, { 184: } - 83, + 84, { 185: } - 83, + 84, { 186: } - 48, - 83, + 84, { 187: } - 49, - 83, + 84, { 188: } - 62, - 83, + 84, { 189: } - 83, + 48, + 84, { 190: } - 83, + 49, + 84, { 191: } - 83, + 62, + 84, { 192: } - 83, + 84, { 193: } - 83, + 84, { 194: } - 83, + 84, { 195: } - 83, + 84, { 196: } - 71, - 83, + 84, { 197: } - 83, + 84, { 198: } - 79, - 83, + 84, { 199: } - 80, - 83, + 71, + 84, { 200: } - 81, - 83, + 84, { 201: } - 82, - 83, + 79, + 84, { 202: } + 80, + 84, { 203: } + 81, + 84, { 204: } - 52, + 82, + 84, { 205: } - 54, + 84, { 206: } { 207: } { 208: } + 52, { 209: } + 54, { 210: } { 211: } - 83, { 212: } - 83, { 213: } - 83, { 214: } - 40, - 83, { 215: } - 83, + 84, { 216: } - 76, - 83, + 84, { 217: } - 83, + 84, { 218: } - 83, + 40, + 84, { 219: } - 83, + 84, { 220: } - 83, + 76, + 84, { 221: } - 83, + 84, { 222: } - 75, - 83, + 84, { 223: } - 63, - 83, + 84, { 224: } - 83, + 84, { 225: } - 83, + 84, { 226: } - 70, - 83, + 75, + 84, { 227: } - 83, + 63, + 84, { 228: } - 83, + 84, { 229: } - 74, - 83, + 84, { 230: } + 70, + 84, { 231: } + 84, { 232: } - 53, + 84, { 233: } - 56, + 74, + 84, { 234: } - 55, + 83, + 84, { 235: } { 236: } { 237: } - 38, - 83, + 53, { 238: } - 83, + 56, { 239: } - 83, + 55, { 240: } - 83, { 241: } - 41, - 83, { 242: } - 42, - 83, + 38, + 84, { 243: } - 43, - 83, + 84, { 244: } - 83, + 84, { 245: } - 83, + 84, { 246: } - 83, + 41, + 84, { 247: } - 65, - 83, + 42, + 84, { 248: } - 72, - 83, + 43, + 84, { 249: } - 83, + 84, { 250: } + 84, { 251: } + 84, { 252: } - 60, + 65, + 84, { 253: } - 61, + 72, + 84, { 254: } - 39, - 83, + 84, { 255: } - 83, { 256: } - 83, { 257: } - 83, + 60, { 258: } - 83, + 61, { 259: } - 83, + 39, + 84, { 260: } - 68, - 83, + 84, { 261: } + 84, { 262: } - 57, + 84, { 263: } - 44, - 83, + 84, { 264: } - 46, - 83, + 84, { 265: } - 83, + 68, + 84, { 266: } - 47, - 83, { 267: } - 73, - 83, + 57, { 268: } + 44, + 84, { 269: } - 45, - 83, + 46, + 84, { 270: } + 84, { 271: } + 47, + 84, { 272: } + 73, + 84, { 273: } { 274: } + 45, + 84, { 275: } { 276: } { 277: } @@ -1538,18 +1565,23 @@ yyk : array [1..yynmarks] of Integer = ( { 293: } { 294: } { 295: } - 51, { 296: } { 297: } { 298: } { 299: } { 300: } + 51, { 301: } { 302: } { 303: } { 304: } { 305: } { 306: } + { 307: } + { 308: } + { 309: } + { 310: } + { 311: } 50 ); @@ -1558,201 +1590,203 @@ yym : array [1..yynmatches] of Integer = ( { 1: } { 2: } 25, - 88, + 89, { 3: } - 88, + 89, { 4: } - 88, + 89, { 5: } - 83, - 88, + 84, + 89, { 6: } 7, 9, - 88, + 89, { 7: } 7, 9, - 88, + 89, { 8: } 11, - 88, + 89, { 9: } 37, - 88, + 89, { 10: } 24, - 88, + 89, { 11: } 19, - 88, + 89, { 12: } 20, - 88, + 89, { 13: } - 88, + 89, { 14: } 21, - 88, + 89, { 15: } 22, - 88, + 89, { 16: } 23, - 88, + 89, { 17: } 26, - 88, + 89, { 18: } 27, - 88, + 89, { 19: } 28, - 88, + 89, { 20: } 29, - 88, + 89, { 21: } 30, - 88, + 89, { 22: } 31, - 88, + 89, { 23: } 32, - 88, + 89, { 24: } 33, - 88, + 89, { 25: } 34, - 88, + 89, { 26: } 36, - 88, + 89, { 27: } - 83, - 88, + 84, + 89, { 28: } - 83, - 88, + 84, + 89, { 29: } - 83, - 88, + 84, + 89, { 30: } - 83, - 88, + 84, + 89, { 31: } - 83, - 88, + 84, + 89, { 32: } - 83, - 88, + 84, + 89, { 33: } - 83, - 88, + 84, + 89, { 34: } - 83, - 88, + 84, + 89, { 35: } - 83, - 88, + 84, + 89, { 36: } - 83, - 88, + 84, + 89, { 37: } - 83, - 88, + 84, + 89, { 38: } 66, - 88, + 89, { 39: } 67, - 88, + 89, { 40: } - 83, - 88, + 84, + 89, { 41: } - 83, - 88, + 84, + 89, { 42: } - 83, - 88, + 84, + 89, { 43: } - 83, - 88, + 84, + 89, { 44: } - 83, - 88, + 84, + 89, { 45: } - 83, - 88, + 84, + 89, { 46: } - 83, - 88, + 84, + 89, { 47: } - 83, - 88, + 84, + 89, { 48: } - 83, - 88, + 84, + 89, { 49: } - 83, - 88, + 84, + 89, { 50: } 84, - 88, + 89, { 51: } 85, - 88, + 89, { 52: } 86, + 89, { 53: } - 88, + 87, { 54: } - 88, + 89, { 55: } - 1, + 89, { 56: } - 2, + 1, { 57: } + 2, { 58: } - 3, { 59: } + 3, { 60: } - 4, { 61: } + 4, { 62: } { 63: } - 83, { 64: } - 7, - 9, + 84, { 65: } 7, + 9, { 66: } 7, { 67: } + 7, { 68: } { 69: } - 8, { 70: } - 10, + 8, { 71: } - 12, + 10, { 72: } - 13, + 12, { 73: } - 14, + 13, { 74: } - 16, + 14, { 75: } - 15, + 16, { 76: } - 18, + 15, { 77: } - 17, + 18, { 78: } + 17, { 79: } { 80: } { 81: } @@ -1761,80 +1795,81 @@ yym : array [1..yynmatches] of Integer = ( { 84: } { 85: } { 86: } - 83, { 87: } - 83, + 84, { 88: } - 83, + 84, { 89: } - 83, + 84, { 90: } - 83, + 84, { 91: } - 83, + 84, { 92: } - 83, + 84, { 93: } - 83, + 84, { 94: } - 83, + 84, { 95: } - 83, + 84, { 96: } - 83, + 84, { 97: } - 83, + 84, { 98: } - 83, + 84, { 99: } - 83, + 84, { 100: } - 83, + 84, { 101: } - 83, + 84, { 102: } - 83, + 84, { 103: } - 83, + 84, { 104: } - 83, + 84, { 105: } - 83, + 84, { 106: } - 83, + 84, { 107: } - 83, + 84, { 108: } - 83, + 84, { 109: } - 83, + 84, { 110: } - 83, + 84, { 111: } - 83, + 84, { 112: } - 83, + 84, { 113: } - 83, + 84, { 114: } - 87, + 84, { 115: } - 5, + 84, { 116: } - 6, + 88, { 117: } - 9, + 5, { 118: } + 6, { 119: } 9, { 120: } - 8, { 121: } - 8, + 9, { 122: } - 58, + 8, { 123: } + 8, { 124: } + 58, { 125: } { 126: } { 127: } @@ -1843,293 +1878,297 @@ yym : array [1..yynmatches] of Integer = ( { 130: } { 131: } { 132: } - 35, { 133: } - 83, { 134: } - 83, + 35, { 135: } - 83, + 84, { 136: } - 83, + 84, { 137: } - 83, + 84, { 138: } - 83, + 84, { 139: } - 83, + 84, { 140: } - 83, + 84, { 141: } - 83, + 84, { 142: } - 83, + 84, { 143: } - 83, + 84, { 144: } - 83, + 84, { 145: } - 83, + 84, { 146: } - 83, + 84, { 147: } - 83, + 84, { 148: } - 83, + 84, { 149: } - 83, + 84, { 150: } - 83, + 84, { 151: } - 83, + 84, { 152: } - 83, + 84, { 153: } - 83, + 84, { 154: } - 69, - 83, + 84, { 155: } - 83, + 84, { 156: } - 83, + 69, + 84, { 157: } - 78, - 83, + 84, { 158: } - 77, - 83, + 84, { 159: } - 83, + 78, + 84, { 160: } - 83, + 77, + 84, { 161: } - 83, + 84, { 162: } - 83, + 84, { 163: } + 84, { 164: } + 84, { 165: } - 58, + 84, { 166: } { 167: } { 168: } + 58, { 169: } { 170: } { 171: } - 59, { 172: } { 173: } { 174: } - 83, + 59, { 175: } - 64, - 83, { 176: } - 83, { 177: } - 83, + 84, { 178: } - 83, + 64, + 84, { 179: } - 83, + 84, { 180: } - 83, + 84, { 181: } - 83, + 84, { 182: } - 83, + 84, { 183: } - 83, + 84, { 184: } - 83, + 84, { 185: } - 83, + 84, { 186: } - 48, - 83, + 84, { 187: } - 49, - 83, + 84, { 188: } - 62, - 83, + 84, { 189: } - 83, + 48, + 84, { 190: } - 83, + 49, + 84, { 191: } - 83, + 62, + 84, { 192: } - 83, + 84, { 193: } - 83, + 84, { 194: } - 83, + 84, { 195: } - 83, + 84, { 196: } - 71, - 83, + 84, { 197: } - 83, + 84, { 198: } - 79, - 83, + 84, { 199: } - 80, - 83, + 71, + 84, { 200: } - 81, - 83, + 84, { 201: } - 82, - 83, + 79, + 84, { 202: } + 80, + 84, { 203: } + 81, + 84, { 204: } - 52, + 82, + 84, { 205: } - 54, + 84, { 206: } { 207: } { 208: } + 52, { 209: } + 54, { 210: } { 211: } - 83, { 212: } - 83, { 213: } - 83, { 214: } - 40, - 83, { 215: } - 83, + 84, { 216: } - 76, - 83, + 84, { 217: } - 83, + 84, { 218: } - 83, + 40, + 84, { 219: } - 83, + 84, { 220: } - 83, + 76, + 84, { 221: } - 83, + 84, { 222: } - 75, - 83, + 84, { 223: } - 63, - 83, + 84, { 224: } - 83, + 84, { 225: } - 83, + 84, { 226: } - 70, - 83, + 75, + 84, { 227: } - 83, + 63, + 84, { 228: } - 83, + 84, { 229: } - 74, - 83, + 84, { 230: } + 70, + 84, { 231: } + 84, { 232: } - 53, + 84, { 233: } - 56, + 74, + 84, { 234: } - 55, + 83, + 84, { 235: } { 236: } { 237: } - 38, - 83, + 53, { 238: } - 83, + 56, { 239: } - 83, + 55, { 240: } - 83, { 241: } - 41, - 83, { 242: } - 42, - 83, + 38, + 84, { 243: } - 43, - 83, + 84, { 244: } - 83, + 84, { 245: } - 83, + 84, { 246: } - 83, + 41, + 84, { 247: } - 65, - 83, + 42, + 84, { 248: } - 72, - 83, + 43, + 84, { 249: } - 83, + 84, { 250: } + 84, { 251: } + 84, { 252: } - 60, + 65, + 84, { 253: } - 61, + 72, + 84, { 254: } - 39, - 83, + 84, { 255: } - 83, { 256: } - 83, { 257: } - 83, + 60, { 258: } - 83, + 61, { 259: } - 83, + 39, + 84, { 260: } - 68, - 83, + 84, { 261: } + 84, { 262: } - 57, + 84, { 263: } - 44, - 83, + 84, { 264: } - 46, - 83, + 84, { 265: } - 83, + 68, + 84, { 266: } - 47, - 83, { 267: } - 73, - 83, + 57, { 268: } + 44, + 84, { 269: } - 45, - 83, + 46, + 84, { 270: } + 84, { 271: } + 47, + 84, { 272: } + 73, + 84, { 273: } { 274: } + 45, + 84, { 275: } { 276: } { 277: } @@ -2151,26 +2190,31 @@ yym : array [1..yynmatches] of Integer = ( { 293: } { 294: } { 295: } - 51, { 296: } { 297: } { 298: } { 299: } { 300: } + 51, { 301: } { 302: } { 303: } { 304: } { 305: } { 306: } +{ 307: } +{ 308: } +{ 309: } +{ 310: } +{ 311: } 50 ); yyt : array [1..yyntrans] of YYTrec = ( { 0: } - ( cc: [ #1..#8,#11,#13..#31,'$','%','@','^','`',#127..#255 ]; s: 54), - ( cc: [ #9,#12,' ' ]; s: 51), - ( cc: [ #10 ]; s: 52), + ( cc: [ #1..#8,#11,#13..#31,'$','%','@','^','`',#127..#255 ]; s: 55), + ( cc: [ #9,#12,' ' ]; s: 52), + ( cc: [ #10 ]; s: 53), ( cc: [ '!' ]; s: 10), ( cc: [ '"' ]; s: 3), ( cc: [ '#' ]; s: 13), @@ -2187,14 +2231,14 @@ yyt : array [1..yyntrans] of YYTrec = ( ( cc: [ '0' ]; s: 7), ( cc: [ '1'..'9' ]; s: 6), ( cc: [ ':' ]; s: 19), - ( cc: [ ';' ]; s: 50), + ( cc: [ ';' ]; s: 51), ( cc: [ '<' ]; s: 12), ( cc: [ '=' ]; s: 9), ( cc: [ '>' ]; s: 11), ( cc: [ '?' ]; s: 18), ( cc: [ 'A','B','D','G','I'..'K','M','O','Q','R', 'T','U','X'..'Z','_','a','b','d','g','j','k', - 'm','o'..'r','w'..'z' ]; s: 49), + 'm','o'..'r','x'..'z' ]; s: 50), ( cc: [ 'C' ]; s: 29), ( cc: [ 'E' ]; s: 32), ( cc: [ 'F' ]; s: 44), @@ -2206,7 +2250,7 @@ yyt : array [1..yyntrans] of YYTrec = ( ( cc: [ 'V' ]; s: 34), ( cc: [ 'W' ]; s: 31), ( cc: [ '[' ]; s: 21), - ( cc: [ '\' ]; s: 53), + ( cc: [ '\' ]; s: 54), ( cc: [ ']' ]; s: 22), ( cc: [ 'c' ]; s: 35), ( cc: [ 'e' ]; s: 27), @@ -2219,14 +2263,15 @@ yyt : array [1..yyntrans] of YYTrec = ( ( cc: [ 't' ]; s: 40), ( cc: [ 'u' ]; s: 36), ( cc: [ 'v' ]; s: 33), + ( cc: [ 'w' ]; s: 49), ( cc: [ '{' ]; s: 38), ( cc: [ '|' ]; s: 14), ( cc: [ '}' ]; s: 39), ( cc: [ '~' ]; s: 16), { 1: } - ( cc: [ #1..#8,#11,#13..#31,'$','%','@','^','`',#127..#255 ]; s: 54), - ( cc: [ #9,#12,' ' ]; s: 51), - ( cc: [ #10 ]; s: 52), + ( cc: [ #1..#8,#11,#13..#31,'$','%','@','^','`',#127..#255 ]; s: 55), + ( cc: [ #9,#12,' ' ]; s: 52), + ( cc: [ #10 ]; s: 53), ( cc: [ '!' ]; s: 10), ( cc: [ '"' ]; s: 3), ( cc: [ '#' ]; s: 13), @@ -2243,14 +2288,14 @@ yyt : array [1..yyntrans] of YYTrec = ( ( cc: [ '0' ]; s: 7), ( cc: [ '1'..'9' ]; s: 6), ( cc: [ ':' ]; s: 19), - ( cc: [ ';' ]; s: 50), + ( cc: [ ';' ]; s: 51), ( cc: [ '<' ]; s: 12), ( cc: [ '=' ]; s: 9), ( cc: [ '>' ]; s: 11), ( cc: [ '?' ]; s: 18), ( cc: [ 'A','B','D','G','I'..'K','M','O','Q','R', 'T','U','X'..'Z','_','a','b','d','g','j','k', - 'm','o'..'r','w'..'z' ]; s: 49), + 'm','o'..'r','x'..'z' ]; s: 50), ( cc: [ 'C' ]; s: 29), ( cc: [ 'E' ]; s: 32), ( cc: [ 'F' ]; s: 44), @@ -2262,7 +2307,7 @@ yyt : array [1..yyntrans] of YYTrec = ( ( cc: [ 'V' ]; s: 34), ( cc: [ 'W' ]; s: 31), ( cc: [ '[' ]; s: 21), - ( cc: [ '\' ]; s: 53), + ( cc: [ '\' ]; s: 54), ( cc: [ ']' ]; s: 22), ( cc: [ 'c' ]; s: 35), ( cc: [ 'e' ]; s: 27), @@ -2275,57 +2320,58 @@ yyt : array [1..yyntrans] of YYTrec = ( ( cc: [ 't' ]; s: 40), ( cc: [ 'u' ]; s: 36), ( cc: [ 'v' ]; s: 33), + ( cc: [ 'w' ]; s: 49), ( cc: [ '{' ]; s: 38), ( cc: [ '|' ]; s: 14), ( cc: [ '}' ]; s: 39), ( cc: [ '~' ]; s: 16), { 2: } - ( cc: [ '*' ]; s: 55), - ( cc: [ '/' ]; s: 56), + ( cc: [ '*' ]; s: 56), + ( cc: [ '/' ]; s: 57), { 3: } - ( cc: [ #1..'!','#'..#255 ]; s: 57), - ( cc: [ '"' ]; s: 58), + ( cc: [ #1..'!','#'..#255 ]; s: 58), + ( cc: [ '"' ]; s: 59), { 4: } - ( cc: [ #1..'&','('..#255 ]; s: 59), - ( cc: [ '''' ]; s: 60), + ( cc: [ #1..'&','('..#255 ]; s: 60), + ( cc: [ '''' ]; s: 61), { 5: } - ( cc: [ '"' ]; s: 61), - ( cc: [ '''' ]; s: 62), - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '"' ]; s: 62), + ( cc: [ '''' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 6: } - ( cc: [ '.' ]; s: 67), - ( cc: [ '0'..'9' ]; s: 64), - ( cc: [ 'E','e' ]; s: 68), - ( cc: [ 'L','l' ]; s: 66), - ( cc: [ 'U','u' ]; s: 65), + ( cc: [ '.' ]; s: 68), + ( cc: [ '0'..'9' ]; s: 65), + ( cc: [ 'E','e' ]; s: 69), + ( cc: [ 'L','l' ]; s: 67), + ( cc: [ 'U','u' ]; s: 66), { 7: } - ( cc: [ '.' ]; s: 67), - ( cc: [ '0'..'9' ]; s: 64), - ( cc: [ 'E','e' ]; s: 68), - ( cc: [ 'L','l' ]; s: 66), - ( cc: [ 'U','u' ]; s: 65), - ( cc: [ 'x' ]; s: 69), + ( cc: [ '.' ]; s: 68), + ( cc: [ '0'..'9' ]; s: 65), + ( cc: [ 'E','e' ]; s: 69), + ( cc: [ 'L','l' ]; s: 67), + ( cc: [ 'U','u' ]; s: 66), + ( cc: [ 'x' ]; s: 70), { 8: } - ( cc: [ '>' ]; s: 70), + ( cc: [ '>' ]; s: 71), { 9: } - ( cc: [ '=' ]; s: 71), -{ 10: } ( cc: [ '=' ]; s: 72), -{ 11: } +{ 10: } ( cc: [ '=' ]; s: 73), - ( cc: [ '>' ]; s: 74), +{ 11: } + ( cc: [ '=' ]; s: 74), + ( cc: [ '>' ]; s: 75), { 12: } - ( cc: [ '<' ]; s: 76), - ( cc: [ '=' ]; s: 75), + ( cc: [ '<' ]; s: 77), + ( cc: [ '=' ]; s: 76), { 13: } - ( cc: [ #9 ]; s: 79), - ( cc: [ ' ' ]; s: 82), - ( cc: [ '#' ]; s: 77), - ( cc: [ 'd' ]; s: 84), - ( cc: [ 'e' ]; s: 80), - ( cc: [ 'i' ]; s: 78), - ( cc: [ 'p' ]; s: 83), - ( cc: [ 'u' ]; s: 81), + ( cc: [ #9 ]; s: 80), + ( cc: [ ' ' ]; s: 83), + ( cc: [ '#' ]; s: 78), + ( cc: [ 'd' ]; s: 85), + ( cc: [ 'e' ]; s: 81), + ( cc: [ 'i' ]; s: 79), + ( cc: [ 'p' ]; s: 84), + ( cc: [ 'u' ]; s: 82), { 14: } { 15: } { 16: } @@ -2339,122 +2385,124 @@ yyt : array [1..yyntrans] of YYTrec = ( { 24: } { 25: } { 26: } - ( cc: [ '.' ]; s: 85), + ( cc: [ '.' ]; s: 86), { 27: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'w','y','z' ]; s: 63), - ( cc: [ 'n' ]; s: 87), - ( cc: [ 'x' ]; s: 86), + ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'w','y','z' ]; s: 64), + ( cc: [ 'n' ]; s: 88), + ( cc: [ 'x' ]; s: 87), { 28: } - ( cc: [ '0'..'9','A'..'S','U'..'X','Z','_','a'..'z' ]; s: 63), - ( cc: [ 'T' ]; s: 88), - ( cc: [ 'Y' ]; s: 89), + ( cc: [ '0'..'9','A'..'S','U'..'X','Z','_','a'..'z' ]; s: 64), + ( cc: [ 'T' ]; s: 89), + ( cc: [ 'Y' ]; s: 90), { 29: } - ( cc: [ '0'..'9','B','C','E'..'N','P'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'A' ]; s: 91), - ( cc: [ 'D' ]; s: 90), - ( cc: [ 'O' ]; s: 92), + ( cc: [ '0'..'9','B','C','E'..'N','P'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'A' ]; s: 92), + ( cc: [ 'D' ]; s: 91), + ( cc: [ 'O' ]; s: 93), { 30: } - ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'A' ]; s: 93), + ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'A' ]; s: 94), { 31: } - ( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'I' ]; s: 94), + ( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'I' ]; s: 95), { 32: } - ( cc: [ '0'..'9','A'..'W','Y','Z','_','a'..'z' ]; s: 63), - ( cc: [ 'X' ]; s: 95), + ( cc: [ '0'..'9','A'..'W','Y','Z','_','a'..'z' ]; s: 64), + ( cc: [ 'X' ]; s: 96), { 33: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 63), - ( cc: [ 'o' ]; s: 96), + ( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 64), + ( cc: [ 'o' ]; s: 97), { 34: } - ( cc: [ '0'..'9','A'..'N','P'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'O' ]; s: 97), + ( cc: [ '0'..'9','A'..'N','P'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'O' ]; s: 98), { 35: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'g','i'..'n','p'..'z' ]; s: 63), - ( cc: [ 'h' ]; s: 98), - ( cc: [ 'o' ]; s: 99), + ( cc: [ '0'..'9','A'..'Z','_','a'..'g','i'..'n','p'..'z' ]; s: 64), + ( cc: [ 'h' ]; s: 99), + ( cc: [ 'o' ]; s: 100), { 36: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63), - ( cc: [ 'n' ]; s: 100), + ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 64), + ( cc: [ 'n' ]; s: 101), { 37: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'g','j'..'s','u'..'z' ]; s: 63), - ( cc: [ 'h' ]; s: 102), - ( cc: [ 'i' ]; s: 103), - ( cc: [ 't' ]; s: 101), + ( cc: [ '0'..'9','A'..'Z','_','a'..'g','j'..'s','u'..'z' ]; s: 64), + ( cc: [ 'h' ]; s: 103), + ( cc: [ 'i' ]; s: 104), + ( cc: [ 't' ]; s: 102), { 38: } { 39: } { 40: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'x','z' ]; s: 63), - ( cc: [ 'y' ]; s: 104), + ( cc: [ '0'..'9','A'..'Z','_','a'..'x','z' ]; s: 64), + ( cc: [ 'y' ]; s: 105), { 41: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63), - ( cc: [ 'n' ]; s: 105), + ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 64), + ( cc: [ 'n' ]; s: 106), { 42: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 63), - ( cc: [ 'o' ]; s: 106), + ( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 64), + ( cc: [ 'o' ]; s: 107), { 43: } - ( cc: [ '0'..'9','A'..'Z','_','b'..'k','m'..'z' ]; s: 63), - ( cc: [ 'a' ]; s: 108), - ( cc: [ 'l' ]; s: 107), + ( cc: [ '0'..'9','A'..'Z','_','b'..'k','m'..'z' ]; s: 64), + ( cc: [ 'a' ]; s: 109), + ( cc: [ 'l' ]; s: 108), { 44: } - ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'A' ]; s: 109), + ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'A' ]; s: 110), { 45: } - ( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'E' ]; s: 110), + ( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'E' ]; s: 111), { 46: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63), - ( cc: [ 'e' ]; s: 111), + ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 64), + ( cc: [ 'e' ]; s: 112), { 47: } - ( cc: [ '0'..'9','A'..'T','V'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'U' ]; s: 112), + ( cc: [ '0'..'9','A'..'T','V'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'U' ]; s: 113), { 48: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'t','v'..'z' ]; s: 63), - ( cc: [ 'u' ]; s: 113), + ( cc: [ '0'..'9','A'..'Z','_','a'..'t','v'..'z' ]; s: 64), + ( cc: [ 'u' ]; s: 114), { 49: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'g','i'..'z' ]; s: 64), + ( cc: [ 'h' ]; s: 115), { 50: } + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 51: } { 52: } { 53: } - ( cc: [ #10 ]; s: 114), { 54: } + ( cc: [ #10 ]; s: 116), { 55: } { 56: } { 57: } - ( cc: [ #1..'!','#'..#255 ]; s: 57), - ( cc: [ '"' ]; s: 58), { 58: } + ( cc: [ #1..'!','#'..#255 ]; s: 58), + ( cc: [ '"' ]; s: 59), { 59: } - ( cc: [ #1..'&','('..#255 ]; s: 59), - ( cc: [ '''' ]; s: 60), { 60: } + ( cc: [ #1..'&','('..#255 ]; s: 60), + ( cc: [ '''' ]; s: 61), { 61: } - ( cc: [ #1..'!','#'..#255 ]; s: 61), - ( cc: [ '"' ]; s: 115), { 62: } - ( cc: [ #1..'&','('..#255 ]; s: 62), - ( cc: [ '''' ]; s: 116), + ( cc: [ #1..'!','#'..#255 ]; s: 62), + ( cc: [ '"' ]; s: 117), { 63: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ #1..'&','('..#255 ]; s: 63), + ( cc: [ '''' ]; s: 118), { 64: } - ( cc: [ '.' ]; s: 67), - ( cc: [ '0'..'9' ]; s: 64), - ( cc: [ 'E','e' ]; s: 68), - ( cc: [ 'L','l' ]; s: 66), - ( cc: [ 'U','u' ]; s: 65), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 65: } - ( cc: [ 'L','l' ]; s: 66), + ( cc: [ '.' ]; s: 68), + ( cc: [ '0'..'9' ]; s: 65), + ( cc: [ 'E','e' ]; s: 69), + ( cc: [ 'L','l' ]; s: 67), + ( cc: [ 'U','u' ]; s: 66), { 66: } + ( cc: [ 'L','l' ]; s: 67), { 67: } - ( cc: [ '0'..'9' ]; s: 117), { 68: } - ( cc: [ '+','-' ]; s: 118), ( cc: [ '0'..'9' ]; s: 119), { 69: } - ( cc: [ '0'..'9','A'..'F','a'..'f' ]; s: 69), - ( cc: [ 'L','l' ]; s: 121), - ( cc: [ 'U','u' ]; s: 120), + ( cc: [ '+','-' ]; s: 120), + ( cc: [ '0'..'9' ]; s: 121), { 70: } + ( cc: [ '0'..'9','A'..'F','a'..'f' ]; s: 70), + ( cc: [ 'L','l' ]; s: 123), + ( cc: [ 'U','u' ]; s: 122), { 71: } { 72: } { 73: } @@ -2463,569 +2511,581 @@ yyt : array [1..yyntrans] of YYTrec = ( { 76: } { 77: } { 78: } - ( cc: [ 'f' ]; s: 122), - ( cc: [ 'n' ]; s: 123), { 79: } - ( cc: [ #9,' ' ]; s: 79), - ( cc: [ 'd' ]; s: 84), - ( cc: [ 'e' ]; s: 80), - ( cc: [ 'i' ]; s: 124), - ( cc: [ 'p' ]; s: 83), - ( cc: [ 'u' ]; s: 81), + ( cc: [ 'f' ]; s: 124), + ( cc: [ 'n' ]; s: 125), { 80: } - ( cc: [ 'l' ]; s: 125), - ( cc: [ 'n' ]; s: 126), - ( cc: [ 'r' ]; s: 127), + ( cc: [ #9,' ' ]; s: 80), + ( cc: [ 'd' ]; s: 85), + ( cc: [ 'e' ]; s: 81), + ( cc: [ 'i' ]; s: 126), + ( cc: [ 'p' ]; s: 84), + ( cc: [ 'u' ]; s: 82), { 81: } + ( cc: [ 'l' ]; s: 127), ( cc: [ 'n' ]; s: 128), + ( cc: [ 'r' ]; s: 129), { 82: } - ( cc: [ #9,' ' ]; s: 79), - ( cc: [ '0'..'9' ]; s: 129), - ( cc: [ 'd' ]; s: 84), - ( cc: [ 'e' ]; s: 80), - ( cc: [ 'i' ]; s: 124), - ( cc: [ 'p' ]; s: 83), - ( cc: [ 'u' ]; s: 81), + ( cc: [ 'n' ]; s: 130), { 83: } - ( cc: [ 'r' ]; s: 130), + ( cc: [ #9,' ' ]; s: 80), + ( cc: [ '0'..'9' ]; s: 131), + ( cc: [ 'd' ]; s: 85), + ( cc: [ 'e' ]; s: 81), + ( cc: [ 'i' ]; s: 126), + ( cc: [ 'p' ]; s: 84), + ( cc: [ 'u' ]; s: 82), { 84: } - ( cc: [ 'e' ]; s: 131), + ( cc: [ 'r' ]; s: 132), { 85: } - ( cc: [ '.' ]; s: 132), + ( cc: [ 'e' ]; s: 133), { 86: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 63), - ( cc: [ 't' ]; s: 133), + ( cc: [ '.' ]; s: 134), { 87: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'t','v'..'z' ]; s: 63), - ( cc: [ 'u' ]; s: 134), + ( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 64), + ( cc: [ 't' ]; s: 135), { 88: } - ( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'D' ]; s: 135), + ( cc: [ '0'..'9','A'..'Z','_','a'..'t','v'..'z' ]; s: 64), + ( cc: [ 'u' ]; s: 136), { 89: } - ( cc: [ '0'..'9','A'..'R','T'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'S' ]; s: 136), + ( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'D' ]; s: 137), { 90: } - ( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'E' ]; s: 137), + ( cc: [ '0'..'9','A'..'R','T'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'S' ]; s: 138), { 91: } - ( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'L' ]; s: 138), + ( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'E' ]; s: 139), { 92: } - ( cc: [ '0'..'9','A'..'M','O'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'N' ]; s: 139), + ( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'L' ]; s: 140), { 93: } - ( cc: [ '0'..'9','A','B','D'..'R','T'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'C' ]; s: 141), - ( cc: [ 'S' ]; s: 140), + ( cc: [ '0'..'9','A'..'M','O'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'N' ]; s: 141), { 94: } - ( cc: [ '0'..'9','A'..'M','O'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'N' ]; s: 142), + ( cc: [ '0'..'9','A','B','D'..'R','T'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'C' ]; s: 143), + ( cc: [ 'S' ]; s: 142), { 95: } - ( cc: [ '0'..'9','A'..'O','Q'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'P' ]; s: 143), + ( cc: [ '0'..'9','A'..'M','O'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'N' ]; s: 144), { 96: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'h','j'..'z' ]; s: 63), - ( cc: [ 'i' ]; s: 144), + ( cc: [ '0'..'9','A'..'O','Q'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'P' ]; s: 145), { 97: } - ( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'I' ]; s: 145), + ( cc: [ '0'..'9','A'..'Z','_','a'..'h','j'..'z' ]; s: 64), + ( cc: [ 'i' ]; s: 146), { 98: } - ( cc: [ '0'..'9','A'..'Z','_','b'..'z' ]; s: 63), - ( cc: [ 'a' ]; s: 146), + ( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'I' ]; s: 147), { 99: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63), - ( cc: [ 'n' ]; s: 147), + ( cc: [ '0'..'9','A'..'Z','_','b'..'z' ]; s: 64), + ( cc: [ 'a' ]; s: 148), { 100: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'h','j'..'r','t'..'z' ]; s: 63), - ( cc: [ 'i' ]; s: 148), - ( cc: [ 's' ]; s: 149), + ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 64), + ( cc: [ 'n' ]; s: 149), { 101: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 63), - ( cc: [ 'r' ]; s: 150), + ( cc: [ '0'..'9','A'..'Z','_','a'..'h','j'..'r','t'..'z' ]; s: 64), + ( cc: [ 'i' ]; s: 150), + ( cc: [ 's' ]; s: 151), { 102: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 63), - ( cc: [ 'o' ]; s: 151), + ( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 64), + ( cc: [ 'r' ]; s: 152), { 103: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'f','h'..'z' ]; s: 63), - ( cc: [ 'g' ]; s: 152), + ( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 64), + ( cc: [ 'o' ]; s: 153), { 104: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'o','q'..'z' ]; s: 63), - ( cc: [ 'p' ]; s: 153), + ( cc: [ '0'..'9','A'..'Z','_','a'..'f','h'..'z' ]; s: 64), + ( cc: [ 'g' ]; s: 154), { 105: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 63), - ( cc: [ 't' ]; s: 154), + ( cc: [ '0'..'9','A'..'Z','_','a'..'o','q'..'z' ]; s: 64), + ( cc: [ 'p' ]; s: 155), { 106: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63), - ( cc: [ 'n' ]; s: 155), + ( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 64), + ( cc: [ 't' ]; s: 156), { 107: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 63), - ( cc: [ 'o' ]; s: 156), + ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 64), + ( cc: [ 'n' ]; s: 157), { 108: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 63), - ( cc: [ 'r' ]; s: 157), + ( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 64), + ( cc: [ 'o' ]; s: 158), { 109: } - ( cc: [ '0'..'9','A'..'Q','S'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'R' ]; s: 158), + ( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 64), + ( cc: [ 'r' ]; s: 159), { 110: } - ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'A' ]; s: 159), + ( cc: [ '0'..'9','A'..'Q','S'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'R' ]; s: 160), { 111: } - ( cc: [ '0'..'9','A'..'Z','_','b'..'z' ]; s: 63), - ( cc: [ 'a' ]; s: 160), + ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'A' ]; s: 161), { 112: } - ( cc: [ '0'..'9','A'..'F','H'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'G' ]; s: 161), + ( cc: [ '0'..'9','A'..'Z','_','b'..'z' ]; s: 64), + ( cc: [ 'a' ]; s: 162), { 113: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'f','h'..'z' ]; s: 63), - ( cc: [ 'g' ]; s: 162), + ( cc: [ '0'..'9','A'..'F','H'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'G' ]; s: 163), { 114: } + ( cc: [ '0'..'9','A'..'Z','_','a'..'f','h'..'z' ]; s: 64), + ( cc: [ 'g' ]; s: 164), { 115: } + ( cc: [ '0'..'9','A'..'Z','_','a'..'h','j'..'z' ]; s: 64), + ( cc: [ 'i' ]; s: 165), { 116: } { 117: } - ( cc: [ '0'..'9' ]; s: 117), - ( cc: [ 'E','e' ]; s: 68), { 118: } - ( cc: [ '0'..'9' ]; s: 119), { 119: } ( cc: [ '0'..'9' ]; s: 119), + ( cc: [ 'E','e' ]; s: 69), { 120: } - ( cc: [ 'L','l' ]; s: 121), + ( cc: [ '0'..'9' ]; s: 121), { 121: } + ( cc: [ '0'..'9' ]; s: 121), { 122: } - ( cc: [ 'd' ]; s: 163), + ( cc: [ 'L','l' ]; s: 123), { 123: } - ( cc: [ 'c' ]; s: 164), { 124: } - ( cc: [ 'f' ]; s: 165), - ( cc: [ 'n' ]; s: 123), + ( cc: [ 'd' ]; s: 166), { 125: } - ( cc: [ 'i' ]; s: 167), - ( cc: [ 's' ]; s: 166), + ( cc: [ 'c' ]; s: 167), { 126: } - ( cc: [ 'd' ]; s: 168), + ( cc: [ 'f' ]; s: 168), + ( cc: [ 'n' ]; s: 125), { 127: } - ( cc: [ 'r' ]; s: 169), + ( cc: [ 'i' ]; s: 170), + ( cc: [ 's' ]; s: 169), { 128: } - ( cc: [ 'd' ]; s: 170), + ( cc: [ 'd' ]; s: 171), { 129: } - ( cc: [ ' ' ]; s: 171), - ( cc: [ '0'..'9' ]; s: 129), + ( cc: [ 'r' ]; s: 172), { 130: } - ( cc: [ 'a' ]; s: 172), + ( cc: [ 'd' ]; s: 173), { 131: } - ( cc: [ 'f' ]; s: 173), + ( cc: [ ' ' ]; s: 174), + ( cc: [ '0'..'9' ]; s: 131), { 132: } + ( cc: [ 'a' ]; s: 175), { 133: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63), - ( cc: [ 'e' ]; s: 174), + ( cc: [ 'f' ]; s: 176), { 134: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'l','n'..'z' ]; s: 63), - ( cc: [ 'm' ]; s: 175), { 135: } - ( cc: [ '0'..'9','A','B','D'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'C' ]; s: 176), + ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 64), + ( cc: [ 'e' ]; s: 177), { 136: } - ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 63), - ( cc: [ '_' ]; s: 177), + ( cc: [ '0'..'9','A'..'Z','_','a'..'l','n'..'z' ]; s: 64), + ( cc: [ 'm' ]; s: 178), { 137: } - ( cc: [ '0'..'9','A','B','D'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'C' ]; s: 178), + ( cc: [ '0'..'9','A','B','D'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'C' ]; s: 179), { 138: } - ( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'L' ]; s: 179), + ( cc: [ '0'..'9','A'..'Z','a'..'z' ]; s: 64), + ( cc: [ '_' ]; s: 180), { 139: } - ( cc: [ '0'..'9','A'..'R','T'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'S' ]; s: 180), -{ 140: } - ( cc: [ '0'..'9','A','B','D'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A','B','D'..'Z','_','a'..'z' ]; s: 64), ( cc: [ 'C' ]; s: 181), +{ 140: } + ( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'L' ]; s: 182), { 141: } - ( cc: [ '0'..'9','A'..'J','L'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'K' ]; s: 182), + ( cc: [ '0'..'9','A'..'R','T'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'S' ]; s: 183), { 142: } - ( cc: [ '0'..'9','B'..'F','H'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'A' ]; s: 183), - ( cc: [ 'G' ]; s: 184), + ( cc: [ '0'..'9','A','B','D'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'C' ]; s: 184), { 143: } - ( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'E' ]; s: 185), + ( cc: [ '0'..'9','A'..'J','L'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'K' ]; s: 185), { 144: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'c','e'..'z' ]; s: 63), - ( cc: [ 'd' ]; s: 186), + ( cc: [ '0'..'9','B'..'F','H'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'A' ]; s: 186), + ( cc: [ 'G' ]; s: 187), { 145: } - ( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'D' ]; s: 187), + ( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'E' ]; s: 188), { 146: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 63), - ( cc: [ 'r' ]; s: 188), + ( cc: [ '0'..'9','A'..'Z','_','a'..'c','e'..'z' ]; s: 64), + ( cc: [ 'd' ]; s: 189), { 147: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'r','t'..'z' ]; s: 63), - ( cc: [ 's' ]; s: 189), + ( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'D' ]; s: 190), { 148: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 63), - ( cc: [ 'o' ]; s: 190), + ( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 64), + ( cc: [ 'r' ]; s: 191), { 149: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'h','j'..'z' ]; s: 63), - ( cc: [ 'i' ]; s: 191), + ( cc: [ '0'..'9','A'..'Z','_','a'..'r','t'..'z' ]; s: 64), + ( cc: [ 's' ]; s: 192), { 150: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'t','v'..'z' ]; s: 63), - ( cc: [ 'u' ]; s: 192), + ( cc: [ '0'..'9','A'..'Z','_','a'..'n','p'..'z' ]; s: 64), + ( cc: [ 'o' ]; s: 193), { 151: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 63), - ( cc: [ 'r' ]; s: 193), + ( cc: [ '0'..'9','A'..'Z','_','a'..'h','j'..'z' ]; s: 64), + ( cc: [ 'i' ]; s: 194), { 152: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63), - ( cc: [ 'n' ]; s: 194), + ( cc: [ '0'..'9','A'..'Z','_','a'..'t','v'..'z' ]; s: 64), + ( cc: [ 'u' ]; s: 195), { 153: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63), - ( cc: [ 'e' ]; s: 195), + ( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 64), + ( cc: [ 'r' ]; s: 196), { 154: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 64), + ( cc: [ 'n' ]; s: 197), { 155: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'f','h'..'z' ]; s: 63), - ( cc: [ 'g' ]; s: 196), + ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 64), + ( cc: [ 'e' ]; s: 198), { 156: } - ( cc: [ '0'..'9','A'..'Z','_','b'..'z' ]; s: 63), - ( cc: [ 'a' ]; s: 197), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 157: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'f','h'..'z' ]; s: 64), + ( cc: [ 'g' ]; s: 199), { 158: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','b'..'z' ]; s: 64), + ( cc: [ 'a' ]; s: 200), { 159: } - ( cc: [ '0'..'9','A'..'Q','S'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'R' ]; s: 198), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 160: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 63), - ( cc: [ 'r' ]; s: 199), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 161: } - ( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'E' ]; s: 200), + ( cc: [ '0'..'9','A'..'Q','S'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'R' ]; s: 201), { 162: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63), - ( cc: [ 'e' ]; s: 201), + ( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 64), + ( cc: [ 'r' ]; s: 202), { 163: } - ( cc: [ 'e' ]; s: 202), + ( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'E' ]; s: 203), { 164: } - ( cc: [ 'l' ]; s: 203), -{ 165: } -{ 166: } + ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 64), ( cc: [ 'e' ]; s: 204), +{ 165: } + ( cc: [ '0'..'9','A'..'Z','_','a'..'k','m'..'z' ]; s: 64), + ( cc: [ 'l' ]; s: 205), +{ 166: } + ( cc: [ 'e' ]; s: 206), { 167: } - ( cc: [ 'f' ]; s: 205), + ( cc: [ 'l' ]; s: 207), { 168: } - ( cc: [ 'i' ]; s: 206), { 169: } - ( cc: [ 'o' ]; s: 207), -{ 170: } ( cc: [ 'e' ]; s: 208), +{ 170: } + ( cc: [ 'f' ]; s: 209), { 171: } -{ 172: } - ( cc: [ 'g' ]; s: 209), -{ 173: } ( cc: [ 'i' ]; s: 210), +{ 172: } + ( cc: [ 'o' ]; s: 211), +{ 173: } + ( cc: [ 'e' ]; s: 212), { 174: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 63), - ( cc: [ 'r' ]; s: 211), { 175: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ 'g' ]; s: 213), { 176: } - ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'A' ]; s: 212), + ( cc: [ 'i' ]; s: 214), { 177: } - ( cc: [ '0'..'9','A'..'S','U'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'T' ]; s: 213), + ( cc: [ '0'..'9','A'..'Z','_','a'..'q','s'..'z' ]; s: 64), + ( cc: [ 'r' ]; s: 215), { 178: } - ( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'L' ]; s: 214), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 179: } - ( cc: [ '0'..'9','A','C'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'B' ]; s: 215), + ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'A' ]; s: 216), { 180: } - ( cc: [ '0'..'9','A'..'S','U'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'T' ]; s: 216), + ( cc: [ '0'..'9','A'..'S','U'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'T' ]; s: 217), { 181: } - ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'A' ]; s: 217), + ( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'L' ]; s: 218), { 182: } - ( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'E' ]; s: 218), + ( cc: [ '0'..'9','A','C'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'B' ]; s: 219), { 183: } - ( cc: [ '0'..'9','A'..'O','Q'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'P' ]; s: 219), + ( cc: [ '0'..'9','A'..'S','U'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'T' ]; s: 220), { 184: } - ( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'D' ]; s: 220), + ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'A' ]; s: 221), { 185: } - ( cc: [ '0'..'9','A'..'M','O'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'N' ]; s: 221), + ( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'E' ]; s: 222), { 186: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'O','Q'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'P' ]; s: 223), { 187: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'D' ]; s: 224), { 188: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'M','O'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'N' ]; s: 225), { 189: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 63), - ( cc: [ 't' ]; s: 222), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 190: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63), - ( cc: [ 'n' ]; s: 223), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 191: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'f','h'..'z' ]; s: 63), - ( cc: [ 'g' ]; s: 224), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 192: } - ( cc: [ '0'..'9','A'..'Z','_','a','b','d'..'z' ]; s: 63), - ( cc: [ 'c' ]; s: 225), -{ 193: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 64), ( cc: [ 't' ]; s: 226), +{ 193: } + ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 64), + ( cc: [ 'n' ]; s: 227), { 194: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63), - ( cc: [ 'e' ]; s: 227), + ( cc: [ '0'..'9','A'..'Z','_','a'..'f','h'..'z' ]; s: 64), + ( cc: [ 'g' ]; s: 228), { 195: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'c','e'..'z' ]; s: 63), - ( cc: [ 'd' ]; s: 228), + ( cc: [ '0'..'9','A'..'Z','_','a','b','d'..'z' ]; s: 64), + ( cc: [ 'c' ]; s: 229), { 196: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 64), + ( cc: [ 't' ]; s: 230), { 197: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 63), - ( cc: [ 't' ]; s: 229), + ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 64), + ( cc: [ 'e' ]; s: 231), { 198: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'c','e'..'z' ]; s: 64), + ( cc: [ 'd' ]; s: 232), { 199: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 200: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 64), + ( cc: [ 't' ]; s: 233), { 201: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 202: } - ( cc: [ 'f' ]; s: 230), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 203: } - ( cc: [ 'u' ]; s: 231), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 204: } + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 205: } + ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 64), + ( cc: [ 'e' ]; s: 234), { 206: } - ( cc: [ 'f' ]; s: 232), + ( cc: [ 'f' ]; s: 235), { 207: } - ( cc: [ 'r' ]; s: 233), + ( cc: [ 'u' ]; s: 236), { 208: } - ( cc: [ 'f' ]; s: 234), { 209: } - ( cc: [ 'm' ]; s: 235), { 210: } - ( cc: [ 'n' ]; s: 236), + ( cc: [ 'f' ]; s: 237), { 211: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63), - ( cc: [ 'n' ]; s: 237), + ( cc: [ 'r' ]; s: 238), { 212: } - ( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'L' ]; s: 238), + ( cc: [ 'f' ]; s: 239), { 213: } - ( cc: [ '0'..'9','A'..'Q','S'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'R' ]; s: 239), + ( cc: [ 'm' ]; s: 240), { 214: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ 'n' ]; s: 241), { 215: } - ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'A' ]; s: 240), + ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 64), + ( cc: [ 'n' ]; s: 242), { 216: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'L' ]; s: 243), { 217: } - ( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'L' ]; s: 241), + ( cc: [ '0'..'9','A'..'Q','S'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'R' ]; s: 244), { 218: } - ( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'D' ]; s: 242), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 219: } - ( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'I' ]; s: 243), + ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'A' ]; s: 245), { 220: } - ( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'I' ]; s: 244), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 221: } - ( cc: [ '0'..'9','A'..'S','U'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'T' ]; s: 245), + ( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'L' ]; s: 246), { 222: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'D' ]; s: 247), { 223: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'I' ]; s: 248), { 224: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 63), - ( cc: [ 'n' ]; s: 246), + ( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'I' ]; s: 249), { 225: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 63), - ( cc: [ 't' ]; s: 247), + ( cc: [ '0'..'9','A'..'S','U'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'T' ]; s: 250), { 226: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 227: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'c','e'..'z' ]; s: 63), - ( cc: [ 'd' ]; s: 248), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 228: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63), - ( cc: [ 'e' ]; s: 249), + ( cc: [ '0'..'9','A'..'Z','_','a'..'m','o'..'z' ]; s: 64), + ( cc: [ 'n' ]; s: 251), { 229: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'s','u'..'z' ]; s: 64), + ( cc: [ 't' ]; s: 252), { 230: } - ( cc: [ ' ' ]; s: 250), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 231: } - ( cc: [ 'd' ]; s: 251), + ( cc: [ '0'..'9','A'..'Z','_','a'..'c','e'..'z' ]; s: 64), + ( cc: [ 'd' ]; s: 253), { 232: } + ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 64), + ( cc: [ 'e' ]; s: 254), { 233: } + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 234: } + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 235: } - ( cc: [ 'a' ]; s: 252), + ( cc: [ ' ' ]; s: 255), { 236: } - ( cc: [ 'e' ]; s: 253), + ( cc: [ 'd' ]; s: 256), { 237: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), { 238: } - ( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'L' ]; s: 254), { 239: } - ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'A' ]; s: 255), { 240: } - ( cc: [ '0'..'9','A','B','D'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'C' ]; s: 256), + ( cc: [ 'a' ]; s: 257), { 241: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ 'e' ]; s: 258), { 242: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 243: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'K','M'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'L' ]; s: 259), { 244: } - ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'A' ]; s: 257), + ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'A' ]; s: 260), { 245: } - ( cc: [ '0'..'9','A'..'Q','S'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'R' ]; s: 258), + ( cc: [ '0'..'9','A','B','D'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'C' ]; s: 261), { 246: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 63), - ( cc: [ 'e' ]; s: 259), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 247: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 248: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 249: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'e','g'..'z' ]; s: 63), - ( cc: [ 'f' ]; s: 260), + ( cc: [ '0'..'9','B'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'A' ]; s: 262), { 250: } - ( cc: [ '_' ]; s: 261), + ( cc: [ '0'..'9','A'..'Q','S'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'R' ]; s: 263), { 251: } - ( cc: [ 'e' ]; s: 262), + ( cc: [ '0'..'9','A'..'Z','_','a'..'d','f'..'z' ]; s: 64), + ( cc: [ 'e' ]; s: 264), { 252: } + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 253: } + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 254: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'e','g'..'z' ]; s: 64), + ( cc: [ 'f' ]; s: 265), { 255: } - ( cc: [ '0'..'9','A'..'O','Q'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'P' ]; s: 263), + ( cc: [ '_' ]; s: 266), { 256: } - ( cc: [ '0'..'9','A'..'J','L'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'K' ]; s: 264), + ( cc: [ 'e' ]; s: 267), { 257: } - ( cc: [ '0'..'9','A'..'O','Q'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'P' ]; s: 265), { 258: } - ( cc: [ '0'..'9','A'..'X','Z','_','a'..'z' ]; s: 63), - ( cc: [ 'Y' ]; s: 266), { 259: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'c','e'..'z' ]; s: 63), - ( cc: [ 'd' ]; s: 267), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 260: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'O','Q'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'P' ]; s: 268), { 261: } - ( cc: [ '_' ]; s: 268), + ( cc: [ '0'..'9','A'..'J','L'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'K' ]; s: 269), { 262: } + ( cc: [ '0'..'9','A'..'O','Q'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'P' ]; s: 270), { 263: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'X','Z','_','a'..'z' ]; s: 64), + ( cc: [ 'Y' ]; s: 271), { 264: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'c','e'..'z' ]; s: 64), + ( cc: [ 'd' ]; s: 272), { 265: } - ( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 63), - ( cc: [ 'I' ]; s: 269), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 266: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '_' ]; s: 273), { 267: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), { 268: } - ( cc: [ 'c' ]; s: 270), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 269: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 63), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 270: } - ( cc: [ 'p' ]; s: 271), + ( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 64), + ( cc: [ 'I' ]; s: 274), { 271: } - ( cc: [ 'l' ]; s: 272), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 272: } - ( cc: [ 'u' ]; s: 273), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 273: } - ( cc: [ 's' ]; s: 274), + ( cc: [ 'c' ]; s: 275), { 274: } - ( cc: [ 'p' ]; s: 275), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 64), { 275: } - ( cc: [ 'l' ]; s: 276), + ( cc: [ 'p' ]; s: 276), { 276: } - ( cc: [ 'u' ]; s: 277), + ( cc: [ 'l' ]; s: 277), { 277: } - ( cc: [ 's' ]; s: 278), + ( cc: [ 'u' ]; s: 278), { 278: } - ( cc: [ #9,' ' ]; s: 278), - ( cc: [ #10 ]; s: 279), + ( cc: [ 's' ]; s: 279), { 279: } - ( cc: [ 'e' ]; s: 280), - ( cc: [ '}' ]; s: 281), + ( cc: [ 'p' ]; s: 280), { 280: } - ( cc: [ 'x' ]; s: 282), + ( cc: [ 'l' ]; s: 281), { 281: } - ( cc: [ #10 ]; s: 283), + ( cc: [ 'u' ]; s: 282), { 282: } - ( cc: [ 't' ]; s: 284), + ( cc: [ 's' ]; s: 283), { 283: } - ( cc: [ '#' ]; s: 285), + ( cc: [ #9,' ' ]; s: 283), + ( cc: [ #10 ]; s: 284), { 284: } - ( cc: [ 'e' ]; s: 286), + ( cc: [ 'e' ]; s: 285), + ( cc: [ '}' ]; s: 286), { 285: } - ( cc: [ 'e' ]; s: 287), + ( cc: [ 'x' ]; s: 287), { 286: } - ( cc: [ 'r' ]; s: 288), + ( cc: [ #10 ]; s: 288), { 287: } - ( cc: [ 'n' ]; s: 289), + ( cc: [ 't' ]; s: 289), { 288: } - ( cc: [ 'n' ]; s: 290), + ( cc: [ '#' ]; s: 290), { 289: } - ( cc: [ 'd' ]; s: 291), + ( cc: [ 'e' ]; s: 291), { 290: } - ( cc: [ ' ' ]; s: 292), + ( cc: [ 'e' ]; s: 292), { 291: } - ( cc: [ 'i' ]; s: 293), + ( cc: [ 'r' ]; s: 293), { 292: } - ( cc: [ '"' ]; s: 294), + ( cc: [ 'n' ]; s: 294), { 293: } - ( cc: [ 'f' ]; s: 295), + ( cc: [ 'n' ]; s: 295), { 294: } - ( cc: [ 'C' ]; s: 296), + ( cc: [ 'd' ]; s: 296), { 295: } + ( cc: [ ' ' ]; s: 297), { 296: } - ( cc: [ '"' ]; s: 297), + ( cc: [ 'i' ]; s: 298), { 297: } - ( cc: [ ' ' ]; s: 298), + ( cc: [ '"' ]; s: 299), { 298: } - ( cc: [ '{' ]; s: 299), + ( cc: [ 'f' ]; s: 300), { 299: } - ( cc: [ #10 ]; s: 300), + ( cc: [ 'C' ]; s: 301), { 300: } - ( cc: [ '#' ]; s: 301), { 301: } - ( cc: [ 'e' ]; s: 302), + ( cc: [ '"' ]; s: 302), { 302: } - ( cc: [ 'n' ]; s: 303), + ( cc: [ ' ' ]; s: 303), { 303: } - ( cc: [ 'd' ]; s: 304), + ( cc: [ '{' ]; s: 304), { 304: } - ( cc: [ 'i' ]; s: 305), + ( cc: [ #10 ]; s: 305), { 305: } - ( cc: [ 'f' ]; s: 306) + ( cc: [ '#' ]; s: 306), { 306: } + ( cc: [ 'e' ]; s: 307), +{ 307: } + ( cc: [ 'n' ]; s: 308), +{ 308: } + ( cc: [ 'd' ]; s: 309), +{ 309: } + ( cc: [ 'i' ]; s: 310), +{ 310: } + ( cc: [ 'f' ]; s: 311) +{ 311: } ); yykl : array [0..yynstates-1] of Integer = ( @@ -3082,7 +3142,952 @@ yykl : array [0..yynstates-1] of Integer = ( { 50: } 96, { 51: } 98, { 52: } 100, -{ 53: } 101, +{ 53: } 102, +{ 54: } 103, +{ 55: } 105, +{ 56: } 106, +{ 57: } 107, +{ 58: } 108, +{ 59: } 108, +{ 60: } 109, +{ 61: } 109, +{ 62: } 110, +{ 63: } 110, +{ 64: } 110, +{ 65: } 111, +{ 66: } 113, +{ 67: } 114, +{ 68: } 115, +{ 69: } 115, +{ 70: } 115, +{ 71: } 116, +{ 72: } 117, +{ 73: } 118, +{ 74: } 119, +{ 75: } 120, +{ 76: } 121, +{ 77: } 122, +{ 78: } 123, +{ 79: } 124, +{ 80: } 124, +{ 81: } 124, +{ 82: } 124, +{ 83: } 124, +{ 84: } 124, +{ 85: } 124, +{ 86: } 124, +{ 87: } 124, +{ 88: } 125, +{ 89: } 126, +{ 90: } 127, +{ 91: } 128, +{ 92: } 129, +{ 93: } 130, +{ 94: } 131, +{ 95: } 132, +{ 96: } 133, +{ 97: } 134, +{ 98: } 135, +{ 99: } 136, +{ 100: } 137, +{ 101: } 138, +{ 102: } 139, +{ 103: } 140, +{ 104: } 141, +{ 105: } 142, +{ 106: } 143, +{ 107: } 144, +{ 108: } 145, +{ 109: } 146, +{ 110: } 147, +{ 111: } 148, +{ 112: } 149, +{ 113: } 150, +{ 114: } 151, +{ 115: } 152, +{ 116: } 153, +{ 117: } 153, +{ 118: } 154, +{ 119: } 155, +{ 120: } 156, +{ 121: } 156, +{ 122: } 157, +{ 123: } 158, +{ 124: } 159, +{ 125: } 160, +{ 126: } 160, +{ 127: } 160, +{ 128: } 160, +{ 129: } 160, +{ 130: } 160, +{ 131: } 160, +{ 132: } 160, +{ 133: } 160, +{ 134: } 160, +{ 135: } 161, +{ 136: } 162, +{ 137: } 163, +{ 138: } 164, +{ 139: } 165, +{ 140: } 166, +{ 141: } 167, +{ 142: } 168, +{ 143: } 169, +{ 144: } 170, +{ 145: } 171, +{ 146: } 172, +{ 147: } 173, +{ 148: } 174, +{ 149: } 175, +{ 150: } 176, +{ 151: } 177, +{ 152: } 178, +{ 153: } 179, +{ 154: } 180, +{ 155: } 181, +{ 156: } 182, +{ 157: } 184, +{ 158: } 185, +{ 159: } 186, +{ 160: } 188, +{ 161: } 190, +{ 162: } 191, +{ 163: } 192, +{ 164: } 193, +{ 165: } 194, +{ 166: } 195, +{ 167: } 195, +{ 168: } 195, +{ 169: } 196, +{ 170: } 196, +{ 171: } 196, +{ 172: } 196, +{ 173: } 196, +{ 174: } 196, +{ 175: } 197, +{ 176: } 197, +{ 177: } 197, +{ 178: } 198, +{ 179: } 200, +{ 180: } 201, +{ 181: } 202, +{ 182: } 203, +{ 183: } 204, +{ 184: } 205, +{ 185: } 206, +{ 186: } 207, +{ 187: } 208, +{ 188: } 209, +{ 189: } 210, +{ 190: } 212, +{ 191: } 214, +{ 192: } 216, +{ 193: } 217, +{ 194: } 218, +{ 195: } 219, +{ 196: } 220, +{ 197: } 221, +{ 198: } 222, +{ 199: } 223, +{ 200: } 225, +{ 201: } 226, +{ 202: } 228, +{ 203: } 230, +{ 204: } 232, +{ 205: } 234, +{ 206: } 235, +{ 207: } 235, +{ 208: } 235, +{ 209: } 236, +{ 210: } 237, +{ 211: } 237, +{ 212: } 237, +{ 213: } 237, +{ 214: } 237, +{ 215: } 237, +{ 216: } 238, +{ 217: } 239, +{ 218: } 240, +{ 219: } 242, +{ 220: } 243, +{ 221: } 245, +{ 222: } 246, +{ 223: } 247, +{ 224: } 248, +{ 225: } 249, +{ 226: } 250, +{ 227: } 252, +{ 228: } 254, +{ 229: } 255, +{ 230: } 256, +{ 231: } 258, +{ 232: } 259, +{ 233: } 260, +{ 234: } 262, +{ 235: } 264, +{ 236: } 264, +{ 237: } 264, +{ 238: } 265, +{ 239: } 266, +{ 240: } 267, +{ 241: } 267, +{ 242: } 267, +{ 243: } 269, +{ 244: } 270, +{ 245: } 271, +{ 246: } 272, +{ 247: } 274, +{ 248: } 276, +{ 249: } 278, +{ 250: } 279, +{ 251: } 280, +{ 252: } 281, +{ 253: } 283, +{ 254: } 285, +{ 255: } 286, +{ 256: } 286, +{ 257: } 286, +{ 258: } 287, +{ 259: } 288, +{ 260: } 290, +{ 261: } 291, +{ 262: } 292, +{ 263: } 293, +{ 264: } 294, +{ 265: } 295, +{ 266: } 297, +{ 267: } 297, +{ 268: } 298, +{ 269: } 300, +{ 270: } 302, +{ 271: } 303, +{ 272: } 305, +{ 273: } 307, +{ 274: } 307, +{ 275: } 309, +{ 276: } 309, +{ 277: } 309, +{ 278: } 309, +{ 279: } 309, +{ 280: } 309, +{ 281: } 309, +{ 282: } 309, +{ 283: } 309, +{ 284: } 309, +{ 285: } 309, +{ 286: } 309, +{ 287: } 309, +{ 288: } 309, +{ 289: } 309, +{ 290: } 309, +{ 291: } 309, +{ 292: } 309, +{ 293: } 309, +{ 294: } 309, +{ 295: } 309, +{ 296: } 309, +{ 297: } 309, +{ 298: } 309, +{ 299: } 309, +{ 300: } 309, +{ 301: } 310, +{ 302: } 310, +{ 303: } 310, +{ 304: } 310, +{ 305: } 310, +{ 306: } 310, +{ 307: } 310, +{ 308: } 310, +{ 309: } 310, +{ 310: } 310, +{ 311: } 310 +); + +yykh : array [0..yynstates-1] of Integer = ( +{ 0: } 0, +{ 1: } 0, +{ 2: } 2, +{ 3: } 3, +{ 4: } 4, +{ 5: } 6, +{ 6: } 9, +{ 7: } 12, +{ 8: } 14, +{ 9: } 16, +{ 10: } 18, +{ 11: } 20, +{ 12: } 22, +{ 13: } 23, +{ 14: } 25, +{ 15: } 27, +{ 16: } 29, +{ 17: } 31, +{ 18: } 33, +{ 19: } 35, +{ 20: } 37, +{ 21: } 39, +{ 22: } 41, +{ 23: } 43, +{ 24: } 45, +{ 25: } 47, +{ 26: } 49, +{ 27: } 51, +{ 28: } 53, +{ 29: } 55, +{ 30: } 57, +{ 31: } 59, +{ 32: } 61, +{ 33: } 63, +{ 34: } 65, +{ 35: } 67, +{ 36: } 69, +{ 37: } 71, +{ 38: } 73, +{ 39: } 75, +{ 40: } 77, +{ 41: } 79, +{ 42: } 81, +{ 43: } 83, +{ 44: } 85, +{ 45: } 87, +{ 46: } 89, +{ 47: } 91, +{ 48: } 93, +{ 49: } 95, +{ 50: } 97, +{ 51: } 99, +{ 52: } 101, +{ 53: } 102, +{ 54: } 104, +{ 55: } 105, +{ 56: } 106, +{ 57: } 107, +{ 58: } 107, +{ 59: } 108, +{ 60: } 108, +{ 61: } 109, +{ 62: } 109, +{ 63: } 109, +{ 64: } 110, +{ 65: } 112, +{ 66: } 113, +{ 67: } 114, +{ 68: } 114, +{ 69: } 114, +{ 70: } 115, +{ 71: } 116, +{ 72: } 117, +{ 73: } 118, +{ 74: } 119, +{ 75: } 120, +{ 76: } 121, +{ 77: } 122, +{ 78: } 123, +{ 79: } 123, +{ 80: } 123, +{ 81: } 123, +{ 82: } 123, +{ 83: } 123, +{ 84: } 123, +{ 85: } 123, +{ 86: } 123, +{ 87: } 124, +{ 88: } 125, +{ 89: } 126, +{ 90: } 127, +{ 91: } 128, +{ 92: } 129, +{ 93: } 130, +{ 94: } 131, +{ 95: } 132, +{ 96: } 133, +{ 97: } 134, +{ 98: } 135, +{ 99: } 136, +{ 100: } 137, +{ 101: } 138, +{ 102: } 139, +{ 103: } 140, +{ 104: } 141, +{ 105: } 142, +{ 106: } 143, +{ 107: } 144, +{ 108: } 145, +{ 109: } 146, +{ 110: } 147, +{ 111: } 148, +{ 112: } 149, +{ 113: } 150, +{ 114: } 151, +{ 115: } 152, +{ 116: } 152, +{ 117: } 153, +{ 118: } 154, +{ 119: } 155, +{ 120: } 155, +{ 121: } 156, +{ 122: } 157, +{ 123: } 158, +{ 124: } 159, +{ 125: } 159, +{ 126: } 159, +{ 127: } 159, +{ 128: } 159, +{ 129: } 159, +{ 130: } 159, +{ 131: } 159, +{ 132: } 159, +{ 133: } 159, +{ 134: } 160, +{ 135: } 161, +{ 136: } 162, +{ 137: } 163, +{ 138: } 164, +{ 139: } 165, +{ 140: } 166, +{ 141: } 167, +{ 142: } 168, +{ 143: } 169, +{ 144: } 170, +{ 145: } 171, +{ 146: } 172, +{ 147: } 173, +{ 148: } 174, +{ 149: } 175, +{ 150: } 176, +{ 151: } 177, +{ 152: } 178, +{ 153: } 179, +{ 154: } 180, +{ 155: } 181, +{ 156: } 183, +{ 157: } 184, +{ 158: } 185, +{ 159: } 187, +{ 160: } 189, +{ 161: } 190, +{ 162: } 191, +{ 163: } 192, +{ 164: } 193, +{ 165: } 194, +{ 166: } 194, +{ 167: } 194, +{ 168: } 195, +{ 169: } 195, +{ 170: } 195, +{ 171: } 195, +{ 172: } 195, +{ 173: } 195, +{ 174: } 196, +{ 175: } 196, +{ 176: } 196, +{ 177: } 197, +{ 178: } 199, +{ 179: } 200, +{ 180: } 201, +{ 181: } 202, +{ 182: } 203, +{ 183: } 204, +{ 184: } 205, +{ 185: } 206, +{ 186: } 207, +{ 187: } 208, +{ 188: } 209, +{ 189: } 211, +{ 190: } 213, +{ 191: } 215, +{ 192: } 216, +{ 193: } 217, +{ 194: } 218, +{ 195: } 219, +{ 196: } 220, +{ 197: } 221, +{ 198: } 222, +{ 199: } 224, +{ 200: } 225, +{ 201: } 227, +{ 202: } 229, +{ 203: } 231, +{ 204: } 233, +{ 205: } 234, +{ 206: } 234, +{ 207: } 234, +{ 208: } 235, +{ 209: } 236, +{ 210: } 236, +{ 211: } 236, +{ 212: } 236, +{ 213: } 236, +{ 214: } 236, +{ 215: } 237, +{ 216: } 238, +{ 217: } 239, +{ 218: } 241, +{ 219: } 242, +{ 220: } 244, +{ 221: } 245, +{ 222: } 246, +{ 223: } 247, +{ 224: } 248, +{ 225: } 249, +{ 226: } 251, +{ 227: } 253, +{ 228: } 254, +{ 229: } 255, +{ 230: } 257, +{ 231: } 258, +{ 232: } 259, +{ 233: } 261, +{ 234: } 263, +{ 235: } 263, +{ 236: } 263, +{ 237: } 264, +{ 238: } 265, +{ 239: } 266, +{ 240: } 266, +{ 241: } 266, +{ 242: } 268, +{ 243: } 269, +{ 244: } 270, +{ 245: } 271, +{ 246: } 273, +{ 247: } 275, +{ 248: } 277, +{ 249: } 278, +{ 250: } 279, +{ 251: } 280, +{ 252: } 282, +{ 253: } 284, +{ 254: } 285, +{ 255: } 285, +{ 256: } 285, +{ 257: } 286, +{ 258: } 287, +{ 259: } 289, +{ 260: } 290, +{ 261: } 291, +{ 262: } 292, +{ 263: } 293, +{ 264: } 294, +{ 265: } 296, +{ 266: } 296, +{ 267: } 297, +{ 268: } 299, +{ 269: } 301, +{ 270: } 302, +{ 271: } 304, +{ 272: } 306, +{ 273: } 306, +{ 274: } 308, +{ 275: } 308, +{ 276: } 308, +{ 277: } 308, +{ 278: } 308, +{ 279: } 308, +{ 280: } 308, +{ 281: } 308, +{ 282: } 308, +{ 283: } 308, +{ 284: } 308, +{ 285: } 308, +{ 286: } 308, +{ 287: } 308, +{ 288: } 308, +{ 289: } 308, +{ 290: } 308, +{ 291: } 308, +{ 292: } 308, +{ 293: } 308, +{ 294: } 308, +{ 295: } 308, +{ 296: } 308, +{ 297: } 308, +{ 298: } 308, +{ 299: } 308, +{ 300: } 309, +{ 301: } 309, +{ 302: } 309, +{ 303: } 309, +{ 304: } 309, +{ 305: } 309, +{ 306: } 309, +{ 307: } 309, +{ 308: } 309, +{ 309: } 309, +{ 310: } 309, +{ 311: } 310 +); + +yyml : array [0..yynstates-1] of Integer = ( +{ 0: } 1, +{ 1: } 1, +{ 2: } 1, +{ 3: } 3, +{ 4: } 4, +{ 5: } 5, +{ 6: } 7, +{ 7: } 10, +{ 8: } 13, +{ 9: } 15, +{ 10: } 17, +{ 11: } 19, +{ 12: } 21, +{ 13: } 23, +{ 14: } 24, +{ 15: } 26, +{ 16: } 28, +{ 17: } 30, +{ 18: } 32, +{ 19: } 34, +{ 20: } 36, +{ 21: } 38, +{ 22: } 40, +{ 23: } 42, +{ 24: } 44, +{ 25: } 46, +{ 26: } 48, +{ 27: } 50, +{ 28: } 52, +{ 29: } 54, +{ 30: } 56, +{ 31: } 58, +{ 32: } 60, +{ 33: } 62, +{ 34: } 64, +{ 35: } 66, +{ 36: } 68, +{ 37: } 70, +{ 38: } 72, +{ 39: } 74, +{ 40: } 76, +{ 41: } 78, +{ 42: } 80, +{ 43: } 82, +{ 44: } 84, +{ 45: } 86, +{ 46: } 88, +{ 47: } 90, +{ 48: } 92, +{ 49: } 94, +{ 50: } 96, +{ 51: } 98, +{ 52: } 100, +{ 53: } 102, +{ 54: } 103, +{ 55: } 104, +{ 56: } 105, +{ 57: } 106, +{ 58: } 107, +{ 59: } 107, +{ 60: } 108, +{ 61: } 108, +{ 62: } 109, +{ 63: } 109, +{ 64: } 109, +{ 65: } 110, +{ 66: } 112, +{ 67: } 113, +{ 68: } 114, +{ 69: } 114, +{ 70: } 114, +{ 71: } 115, +{ 72: } 116, +{ 73: } 117, +{ 74: } 118, +{ 75: } 119, +{ 76: } 120, +{ 77: } 121, +{ 78: } 122, +{ 79: } 123, +{ 80: } 123, +{ 81: } 123, +{ 82: } 123, +{ 83: } 123, +{ 84: } 123, +{ 85: } 123, +{ 86: } 123, +{ 87: } 123, +{ 88: } 124, +{ 89: } 125, +{ 90: } 126, +{ 91: } 127, +{ 92: } 128, +{ 93: } 129, +{ 94: } 130, +{ 95: } 131, +{ 96: } 132, +{ 97: } 133, +{ 98: } 134, +{ 99: } 135, +{ 100: } 136, +{ 101: } 137, +{ 102: } 138, +{ 103: } 139, +{ 104: } 140, +{ 105: } 141, +{ 106: } 142, +{ 107: } 143, +{ 108: } 144, +{ 109: } 145, +{ 110: } 146, +{ 111: } 147, +{ 112: } 148, +{ 113: } 149, +{ 114: } 150, +{ 115: } 151, +{ 116: } 152, +{ 117: } 153, +{ 118: } 154, +{ 119: } 155, +{ 120: } 156, +{ 121: } 156, +{ 122: } 157, +{ 123: } 158, +{ 124: } 159, +{ 125: } 160, +{ 126: } 160, +{ 127: } 160, +{ 128: } 160, +{ 129: } 160, +{ 130: } 160, +{ 131: } 160, +{ 132: } 160, +{ 133: } 160, +{ 134: } 160, +{ 135: } 161, +{ 136: } 162, +{ 137: } 163, +{ 138: } 164, +{ 139: } 165, +{ 140: } 166, +{ 141: } 167, +{ 142: } 168, +{ 143: } 169, +{ 144: } 170, +{ 145: } 171, +{ 146: } 172, +{ 147: } 173, +{ 148: } 174, +{ 149: } 175, +{ 150: } 176, +{ 151: } 177, +{ 152: } 178, +{ 153: } 179, +{ 154: } 180, +{ 155: } 181, +{ 156: } 182, +{ 157: } 184, +{ 158: } 185, +{ 159: } 186, +{ 160: } 188, +{ 161: } 190, +{ 162: } 191, +{ 163: } 192, +{ 164: } 193, +{ 165: } 194, +{ 166: } 195, +{ 167: } 195, +{ 168: } 195, +{ 169: } 196, +{ 170: } 196, +{ 171: } 196, +{ 172: } 196, +{ 173: } 196, +{ 174: } 196, +{ 175: } 197, +{ 176: } 197, +{ 177: } 197, +{ 178: } 198, +{ 179: } 200, +{ 180: } 201, +{ 181: } 202, +{ 182: } 203, +{ 183: } 204, +{ 184: } 205, +{ 185: } 206, +{ 186: } 207, +{ 187: } 208, +{ 188: } 209, +{ 189: } 210, +{ 190: } 212, +{ 191: } 214, +{ 192: } 216, +{ 193: } 217, +{ 194: } 218, +{ 195: } 219, +{ 196: } 220, +{ 197: } 221, +{ 198: } 222, +{ 199: } 223, +{ 200: } 225, +{ 201: } 226, +{ 202: } 228, +{ 203: } 230, +{ 204: } 232, +{ 205: } 234, +{ 206: } 235, +{ 207: } 235, +{ 208: } 235, +{ 209: } 236, +{ 210: } 237, +{ 211: } 237, +{ 212: } 237, +{ 213: } 237, +{ 214: } 237, +{ 215: } 237, +{ 216: } 238, +{ 217: } 239, +{ 218: } 240, +{ 219: } 242, +{ 220: } 243, +{ 221: } 245, +{ 222: } 246, +{ 223: } 247, +{ 224: } 248, +{ 225: } 249, +{ 226: } 250, +{ 227: } 252, +{ 228: } 254, +{ 229: } 255, +{ 230: } 256, +{ 231: } 258, +{ 232: } 259, +{ 233: } 260, +{ 234: } 262, +{ 235: } 264, +{ 236: } 264, +{ 237: } 264, +{ 238: } 265, +{ 239: } 266, +{ 240: } 267, +{ 241: } 267, +{ 242: } 267, +{ 243: } 269, +{ 244: } 270, +{ 245: } 271, +{ 246: } 272, +{ 247: } 274, +{ 248: } 276, +{ 249: } 278, +{ 250: } 279, +{ 251: } 280, +{ 252: } 281, +{ 253: } 283, +{ 254: } 285, +{ 255: } 286, +{ 256: } 286, +{ 257: } 286, +{ 258: } 287, +{ 259: } 288, +{ 260: } 290, +{ 261: } 291, +{ 262: } 292, +{ 263: } 293, +{ 264: } 294, +{ 265: } 295, +{ 266: } 297, +{ 267: } 297, +{ 268: } 298, +{ 269: } 300, +{ 270: } 302, +{ 271: } 303, +{ 272: } 305, +{ 273: } 307, +{ 274: } 307, +{ 275: } 309, +{ 276: } 309, +{ 277: } 309, +{ 278: } 309, +{ 279: } 309, +{ 280: } 309, +{ 281: } 309, +{ 282: } 309, +{ 283: } 309, +{ 284: } 309, +{ 285: } 309, +{ 286: } 309, +{ 287: } 309, +{ 288: } 309, +{ 289: } 309, +{ 290: } 309, +{ 291: } 309, +{ 292: } 309, +{ 293: } 309, +{ 294: } 309, +{ 295: } 309, +{ 296: } 309, +{ 297: } 309, +{ 298: } 309, +{ 299: } 309, +{ 300: } 309, +{ 301: } 310, +{ 302: } 310, +{ 303: } 310, +{ 304: } 310, +{ 305: } 310, +{ 306: } 310, +{ 307: } 310, +{ 308: } 310, +{ 309: } 310, +{ 310: } 310, +{ 311: } 310 +); + +yymh : array [0..yynstates-1] of Integer = ( +{ 0: } 0, +{ 1: } 0, +{ 2: } 2, +{ 3: } 3, +{ 4: } 4, +{ 5: } 6, +{ 6: } 9, +{ 7: } 12, +{ 8: } 14, +{ 9: } 16, +{ 10: } 18, +{ 11: } 20, +{ 12: } 22, +{ 13: } 23, +{ 14: } 25, +{ 15: } 27, +{ 16: } 29, +{ 17: } 31, +{ 18: } 33, +{ 19: } 35, +{ 20: } 37, +{ 21: } 39, +{ 22: } 41, +{ 23: } 43, +{ 24: } 45, +{ 25: } 47, +{ 26: } 49, +{ 27: } 51, +{ 28: } 53, +{ 29: } 55, +{ 30: } 57, +{ 31: } 59, +{ 32: } 61, +{ 33: } 63, +{ 34: } 65, +{ 35: } 67, +{ 36: } 69, +{ 37: } 71, +{ 38: } 73, +{ 39: } 75, +{ 40: } 77, +{ 41: } 79, +{ 42: } 81, +{ 43: } 83, +{ 44: } 85, +{ 45: } 87, +{ 46: } 89, +{ 47: } 91, +{ 48: } 93, +{ 49: } 95, +{ 50: } 97, +{ 51: } 99, +{ 52: } 101, +{ 53: } 102, { 54: } 103, { 55: } 104, { 56: } 105, @@ -3144,1748 +4149,833 @@ yykl : array [0..yynstates-1] of Integer = ( { 112: } 148, { 113: } 149, { 114: } 150, -{ 115: } 150, -{ 116: } 151, -{ 117: } 152, -{ 118: } 153, -{ 119: } 153, -{ 120: } 154, -{ 121: } 155, -{ 122: } 156, -{ 123: } 157, -{ 124: } 157, -{ 125: } 157, -{ 126: } 157, -{ 127: } 157, -{ 128: } 157, -{ 129: } 157, -{ 130: } 157, -{ 131: } 157, -{ 132: } 157, -{ 133: } 158, -{ 134: } 159, -{ 135: } 160, -{ 136: } 161, -{ 137: } 162, -{ 138: } 163, -{ 139: } 164, -{ 140: } 165, -{ 141: } 166, -{ 142: } 167, -{ 143: } 168, -{ 144: } 169, -{ 145: } 170, -{ 146: } 171, -{ 147: } 172, -{ 148: } 173, -{ 149: } 174, -{ 150: } 175, -{ 151: } 176, -{ 152: } 177, -{ 153: } 178, -{ 154: } 179, +{ 115: } 151, +{ 116: } 152, +{ 117: } 153, +{ 118: } 154, +{ 119: } 155, +{ 120: } 155, +{ 121: } 156, +{ 122: } 157, +{ 123: } 158, +{ 124: } 159, +{ 125: } 159, +{ 126: } 159, +{ 127: } 159, +{ 128: } 159, +{ 129: } 159, +{ 130: } 159, +{ 131: } 159, +{ 132: } 159, +{ 133: } 159, +{ 134: } 160, +{ 135: } 161, +{ 136: } 162, +{ 137: } 163, +{ 138: } 164, +{ 139: } 165, +{ 140: } 166, +{ 141: } 167, +{ 142: } 168, +{ 143: } 169, +{ 144: } 170, +{ 145: } 171, +{ 146: } 172, +{ 147: } 173, +{ 148: } 174, +{ 149: } 175, +{ 150: } 176, +{ 151: } 177, +{ 152: } 178, +{ 153: } 179, +{ 154: } 180, { 155: } 181, -{ 156: } 182, -{ 157: } 183, +{ 156: } 183, +{ 157: } 184, { 158: } 185, { 159: } 187, -{ 160: } 188, -{ 161: } 189, -{ 162: } 190, -{ 163: } 191, -{ 164: } 191, -{ 165: } 191, -{ 166: } 192, -{ 167: } 192, -{ 168: } 192, -{ 169: } 192, -{ 170: } 192, -{ 171: } 192, -{ 172: } 193, -{ 173: } 193, -{ 174: } 193, -{ 175: } 194, +{ 160: } 189, +{ 161: } 190, +{ 162: } 191, +{ 163: } 192, +{ 164: } 193, +{ 165: } 194, +{ 166: } 194, +{ 167: } 194, +{ 168: } 195, +{ 169: } 195, +{ 170: } 195, +{ 171: } 195, +{ 172: } 195, +{ 173: } 195, +{ 174: } 196, +{ 175: } 196, { 176: } 196, { 177: } 197, -{ 178: } 198, -{ 179: } 199, -{ 180: } 200, -{ 181: } 201, -{ 182: } 202, -{ 183: } 203, -{ 184: } 204, -{ 185: } 205, -{ 186: } 206, +{ 178: } 199, +{ 179: } 200, +{ 180: } 201, +{ 181: } 202, +{ 182: } 203, +{ 183: } 204, +{ 184: } 205, +{ 185: } 206, +{ 186: } 207, { 187: } 208, -{ 188: } 210, -{ 189: } 212, +{ 188: } 209, +{ 189: } 211, { 190: } 213, -{ 191: } 214, -{ 192: } 215, -{ 193: } 216, -{ 194: } 217, -{ 195: } 218, -{ 196: } 219, +{ 191: } 215, +{ 192: } 216, +{ 193: } 217, +{ 194: } 218, +{ 195: } 219, +{ 196: } 220, { 197: } 221, { 198: } 222, { 199: } 224, -{ 200: } 226, -{ 201: } 228, -{ 202: } 230, -{ 203: } 230, -{ 204: } 230, -{ 205: } 231, -{ 206: } 232, -{ 207: } 232, -{ 208: } 232, -{ 209: } 232, -{ 210: } 232, -{ 211: } 232, -{ 212: } 233, -{ 213: } 234, -{ 214: } 235, +{ 200: } 225, +{ 201: } 227, +{ 202: } 229, +{ 203: } 231, +{ 204: } 233, +{ 205: } 234, +{ 206: } 234, +{ 207: } 234, +{ 208: } 235, +{ 209: } 236, +{ 210: } 236, +{ 211: } 236, +{ 212: } 236, +{ 213: } 236, +{ 214: } 236, { 215: } 237, { 216: } 238, -{ 217: } 240, +{ 217: } 239, { 218: } 241, { 219: } 242, -{ 220: } 243, -{ 221: } 244, -{ 222: } 245, +{ 220: } 244, +{ 221: } 245, +{ 222: } 246, { 223: } 247, -{ 224: } 249, -{ 225: } 250, +{ 224: } 248, +{ 225: } 249, { 226: } 251, { 227: } 253, { 228: } 254, { 229: } 255, { 230: } 257, -{ 231: } 257, -{ 232: } 257, -{ 233: } 258, -{ 234: } 259, -{ 235: } 260, -{ 236: } 260, -{ 237: } 260, -{ 238: } 262, -{ 239: } 263, -{ 240: } 264, -{ 241: } 265, -{ 242: } 267, -{ 243: } 269, -{ 244: } 271, -{ 245: } 272, -{ 246: } 273, -{ 247: } 274, -{ 248: } 276, -{ 249: } 278, -{ 250: } 279, -{ 251: } 279, -{ 252: } 279, -{ 253: } 280, -{ 254: } 281, -{ 255: } 283, -{ 256: } 284, -{ 257: } 285, -{ 258: } 286, -{ 259: } 287, -{ 260: } 288, -{ 261: } 290, -{ 262: } 290, -{ 263: } 291, -{ 264: } 293, -{ 265: } 295, -{ 266: } 296, -{ 267: } 298, -{ 268: } 300, -{ 269: } 300, -{ 270: } 302, -{ 271: } 302, -{ 272: } 302, -{ 273: } 302, -{ 274: } 302, -{ 275: } 302, -{ 276: } 302, -{ 277: } 302, -{ 278: } 302, -{ 279: } 302, -{ 280: } 302, -{ 281: } 302, -{ 282: } 302, -{ 283: } 302, -{ 284: } 302, -{ 285: } 302, -{ 286: } 302, -{ 287: } 302, -{ 288: } 302, -{ 289: } 302, -{ 290: } 302, -{ 291: } 302, -{ 292: } 302, -{ 293: } 302, -{ 294: } 302, -{ 295: } 302, -{ 296: } 303, -{ 297: } 303, -{ 298: } 303, -{ 299: } 303, -{ 300: } 303, -{ 301: } 303, -{ 302: } 303, -{ 303: } 303, -{ 304: } 303, -{ 305: } 303, -{ 306: } 303 -); - -yykh : array [0..yynstates-1] of Integer = ( -{ 0: } 0, -{ 1: } 0, -{ 2: } 2, -{ 3: } 3, -{ 4: } 4, -{ 5: } 6, -{ 6: } 9, -{ 7: } 12, -{ 8: } 14, -{ 9: } 16, -{ 10: } 18, -{ 11: } 20, -{ 12: } 22, -{ 13: } 23, -{ 14: } 25, -{ 15: } 27, -{ 16: } 29, -{ 17: } 31, -{ 18: } 33, -{ 19: } 35, -{ 20: } 37, -{ 21: } 39, -{ 22: } 41, -{ 23: } 43, -{ 24: } 45, -{ 25: } 47, -{ 26: } 49, -{ 27: } 51, -{ 28: } 53, -{ 29: } 55, -{ 30: } 57, -{ 31: } 59, -{ 32: } 61, -{ 33: } 63, -{ 34: } 65, -{ 35: } 67, -{ 36: } 69, -{ 37: } 71, -{ 38: } 73, -{ 39: } 75, -{ 40: } 77, -{ 41: } 79, -{ 42: } 81, -{ 43: } 83, -{ 44: } 85, -{ 45: } 87, -{ 46: } 89, -{ 47: } 91, -{ 48: } 93, -{ 49: } 95, -{ 50: } 97, -{ 51: } 99, -{ 52: } 100, -{ 53: } 102, -{ 54: } 103, -{ 55: } 104, -{ 56: } 105, -{ 57: } 105, -{ 58: } 106, -{ 59: } 106, -{ 60: } 107, -{ 61: } 107, -{ 62: } 107, -{ 63: } 108, -{ 64: } 110, -{ 65: } 111, -{ 66: } 112, -{ 67: } 112, -{ 68: } 112, -{ 69: } 113, -{ 70: } 114, -{ 71: } 115, -{ 72: } 116, -{ 73: } 117, -{ 74: } 118, -{ 75: } 119, -{ 76: } 120, -{ 77: } 121, -{ 78: } 121, -{ 79: } 121, -{ 80: } 121, -{ 81: } 121, -{ 82: } 121, -{ 83: } 121, -{ 84: } 121, -{ 85: } 121, -{ 86: } 122, -{ 87: } 123, -{ 88: } 124, -{ 89: } 125, -{ 90: } 126, -{ 91: } 127, -{ 92: } 128, -{ 93: } 129, -{ 94: } 130, -{ 95: } 131, -{ 96: } 132, -{ 97: } 133, -{ 98: } 134, -{ 99: } 135, -{ 100: } 136, -{ 101: } 137, -{ 102: } 138, -{ 103: } 139, -{ 104: } 140, -{ 105: } 141, -{ 106: } 142, -{ 107: } 143, -{ 108: } 144, -{ 109: } 145, -{ 110: } 146, -{ 111: } 147, -{ 112: } 148, -{ 113: } 149, -{ 114: } 149, -{ 115: } 150, -{ 116: } 151, -{ 117: } 152, -{ 118: } 152, -{ 119: } 153, -{ 120: } 154, -{ 121: } 155, -{ 122: } 156, -{ 123: } 156, -{ 124: } 156, -{ 125: } 156, -{ 126: } 156, -{ 127: } 156, -{ 128: } 156, -{ 129: } 156, -{ 130: } 156, -{ 131: } 156, -{ 132: } 157, -{ 133: } 158, -{ 134: } 159, -{ 135: } 160, -{ 136: } 161, -{ 137: } 162, -{ 138: } 163, -{ 139: } 164, -{ 140: } 165, -{ 141: } 166, -{ 142: } 167, -{ 143: } 168, -{ 144: } 169, -{ 145: } 170, -{ 146: } 171, -{ 147: } 172, -{ 148: } 173, -{ 149: } 174, -{ 150: } 175, -{ 151: } 176, -{ 152: } 177, -{ 153: } 178, -{ 154: } 180, -{ 155: } 181, -{ 156: } 182, -{ 157: } 184, -{ 158: } 186, -{ 159: } 187, -{ 160: } 188, -{ 161: } 189, -{ 162: } 190, -{ 163: } 190, -{ 164: } 190, -{ 165: } 191, -{ 166: } 191, -{ 167: } 191, -{ 168: } 191, -{ 169: } 191, -{ 170: } 191, -{ 171: } 192, -{ 172: } 192, -{ 173: } 192, -{ 174: } 193, -{ 175: } 195, -{ 176: } 196, -{ 177: } 197, -{ 178: } 198, -{ 179: } 199, -{ 180: } 200, -{ 181: } 201, -{ 182: } 202, -{ 183: } 203, -{ 184: } 204, -{ 185: } 205, -{ 186: } 207, -{ 187: } 209, -{ 188: } 211, -{ 189: } 212, -{ 190: } 213, -{ 191: } 214, -{ 192: } 215, -{ 193: } 216, -{ 194: } 217, -{ 195: } 218, -{ 196: } 220, -{ 197: } 221, -{ 198: } 223, -{ 199: } 225, -{ 200: } 227, -{ 201: } 229, -{ 202: } 229, -{ 203: } 229, -{ 204: } 230, -{ 205: } 231, -{ 206: } 231, -{ 207: } 231, -{ 208: } 231, -{ 209: } 231, -{ 210: } 231, -{ 211: } 232, -{ 212: } 233, -{ 213: } 234, -{ 214: } 236, -{ 215: } 237, -{ 216: } 239, -{ 217: } 240, -{ 218: } 241, -{ 219: } 242, -{ 220: } 243, -{ 221: } 244, -{ 222: } 246, -{ 223: } 248, -{ 224: } 249, -{ 225: } 250, -{ 226: } 252, -{ 227: } 253, -{ 228: } 254, -{ 229: } 256, -{ 230: } 256, -{ 231: } 256, -{ 232: } 257, -{ 233: } 258, -{ 234: } 259, -{ 235: } 259, -{ 236: } 259, -{ 237: } 261, -{ 238: } 262, -{ 239: } 263, -{ 240: } 264, +{ 231: } 258, +{ 232: } 259, +{ 233: } 261, +{ 234: } 263, +{ 235: } 263, +{ 236: } 263, +{ 237: } 264, +{ 238: } 265, +{ 239: } 266, +{ 240: } 266, { 241: } 266, { 242: } 268, -{ 243: } 270, -{ 244: } 271, -{ 245: } 272, +{ 243: } 269, +{ 244: } 270, +{ 245: } 271, { 246: } 273, { 247: } 275, { 248: } 277, { 249: } 278, -{ 250: } 278, -{ 251: } 278, -{ 252: } 279, -{ 253: } 280, -{ 254: } 282, -{ 255: } 283, -{ 256: } 284, -{ 257: } 285, -{ 258: } 286, -{ 259: } 287, -{ 260: } 289, -{ 261: } 289, -{ 262: } 290, -{ 263: } 292, -{ 264: } 294, -{ 265: } 295, -{ 266: } 297, -{ 267: } 299, -{ 268: } 299, -{ 269: } 301, -{ 270: } 301, -{ 271: } 301, -{ 272: } 301, -{ 273: } 301, -{ 274: } 301, -{ 275: } 301, -{ 276: } 301, -{ 277: } 301, -{ 278: } 301, -{ 279: } 301, -{ 280: } 301, -{ 281: } 301, -{ 282: } 301, -{ 283: } 301, -{ 284: } 301, -{ 285: } 301, -{ 286: } 301, -{ 287: } 301, -{ 288: } 301, -{ 289: } 301, -{ 290: } 301, -{ 291: } 301, -{ 292: } 301, -{ 293: } 301, -{ 294: } 301, -{ 295: } 302, -{ 296: } 302, -{ 297: } 302, -{ 298: } 302, -{ 299: } 302, -{ 300: } 302, -{ 301: } 302, -{ 302: } 302, -{ 303: } 302, -{ 304: } 302, -{ 305: } 302, -{ 306: } 303 -); - -yyml : array [0..yynstates-1] of Integer = ( -{ 0: } 1, -{ 1: } 1, -{ 2: } 1, -{ 3: } 3, -{ 4: } 4, -{ 5: } 5, -{ 6: } 7, -{ 7: } 10, -{ 8: } 13, -{ 9: } 15, -{ 10: } 17, -{ 11: } 19, -{ 12: } 21, -{ 13: } 23, -{ 14: } 24, -{ 15: } 26, -{ 16: } 28, -{ 17: } 30, -{ 18: } 32, -{ 19: } 34, -{ 20: } 36, -{ 21: } 38, -{ 22: } 40, -{ 23: } 42, -{ 24: } 44, -{ 25: } 46, -{ 26: } 48, -{ 27: } 50, -{ 28: } 52, -{ 29: } 54, -{ 30: } 56, -{ 31: } 58, -{ 32: } 60, -{ 33: } 62, -{ 34: } 64, -{ 35: } 66, -{ 36: } 68, -{ 37: } 70, -{ 38: } 72, -{ 39: } 74, -{ 40: } 76, -{ 41: } 78, -{ 42: } 80, -{ 43: } 82, -{ 44: } 84, -{ 45: } 86, -{ 46: } 88, -{ 47: } 90, -{ 48: } 92, -{ 49: } 94, -{ 50: } 96, -{ 51: } 98, -{ 52: } 100, -{ 53: } 101, -{ 54: } 102, -{ 55: } 103, -{ 56: } 104, -{ 57: } 105, -{ 58: } 105, -{ 59: } 106, -{ 60: } 106, -{ 61: } 107, -{ 62: } 107, -{ 63: } 107, -{ 64: } 108, -{ 65: } 110, -{ 66: } 111, -{ 67: } 112, -{ 68: } 112, -{ 69: } 112, -{ 70: } 113, -{ 71: } 114, -{ 72: } 115, -{ 73: } 116, -{ 74: } 117, -{ 75: } 118, -{ 76: } 119, -{ 77: } 120, -{ 78: } 121, -{ 79: } 121, -{ 80: } 121, -{ 81: } 121, -{ 82: } 121, -{ 83: } 121, -{ 84: } 121, -{ 85: } 121, -{ 86: } 121, -{ 87: } 122, -{ 88: } 123, -{ 89: } 124, -{ 90: } 125, -{ 91: } 126, -{ 92: } 127, -{ 93: } 128, -{ 94: } 129, -{ 95: } 130, -{ 96: } 131, -{ 97: } 132, -{ 98: } 133, -{ 99: } 134, -{ 100: } 135, -{ 101: } 136, -{ 102: } 137, -{ 103: } 138, -{ 104: } 139, -{ 105: } 140, -{ 106: } 141, -{ 107: } 142, -{ 108: } 143, -{ 109: } 144, -{ 110: } 145, -{ 111: } 146, -{ 112: } 147, -{ 113: } 148, -{ 114: } 149, -{ 115: } 150, -{ 116: } 151, -{ 117: } 152, -{ 118: } 153, -{ 119: } 153, -{ 120: } 154, -{ 121: } 155, -{ 122: } 156, -{ 123: } 157, -{ 124: } 157, -{ 125: } 157, -{ 126: } 157, -{ 127: } 157, -{ 128: } 157, -{ 129: } 157, -{ 130: } 157, -{ 131: } 157, -{ 132: } 157, -{ 133: } 158, -{ 134: } 159, -{ 135: } 160, -{ 136: } 161, -{ 137: } 162, -{ 138: } 163, -{ 139: } 164, -{ 140: } 165, -{ 141: } 166, -{ 142: } 167, -{ 143: } 168, -{ 144: } 169, -{ 145: } 170, -{ 146: } 171, -{ 147: } 172, -{ 148: } 173, -{ 149: } 174, -{ 150: } 175, -{ 151: } 176, -{ 152: } 177, -{ 153: } 178, -{ 154: } 179, -{ 155: } 181, -{ 156: } 182, -{ 157: } 183, -{ 158: } 185, -{ 159: } 187, -{ 160: } 188, -{ 161: } 189, -{ 162: } 190, -{ 163: } 191, -{ 164: } 191, -{ 165: } 191, -{ 166: } 192, -{ 167: } 192, -{ 168: } 192, -{ 169: } 192, -{ 170: } 192, -{ 171: } 192, -{ 172: } 193, -{ 173: } 193, -{ 174: } 193, -{ 175: } 194, -{ 176: } 196, -{ 177: } 197, -{ 178: } 198, -{ 179: } 199, -{ 180: } 200, -{ 181: } 201, -{ 182: } 202, -{ 183: } 203, -{ 184: } 204, -{ 185: } 205, -{ 186: } 206, -{ 187: } 208, -{ 188: } 210, -{ 189: } 212, -{ 190: } 213, -{ 191: } 214, -{ 192: } 215, -{ 193: } 216, -{ 194: } 217, -{ 195: } 218, -{ 196: } 219, -{ 197: } 221, -{ 198: } 222, -{ 199: } 224, -{ 200: } 226, -{ 201: } 228, -{ 202: } 230, -{ 203: } 230, -{ 204: } 230, -{ 205: } 231, -{ 206: } 232, -{ 207: } 232, -{ 208: } 232, -{ 209: } 232, -{ 210: } 232, -{ 211: } 232, -{ 212: } 233, -{ 213: } 234, -{ 214: } 235, -{ 215: } 237, -{ 216: } 238, -{ 217: } 240, -{ 218: } 241, -{ 219: } 242, -{ 220: } 243, -{ 221: } 244, -{ 222: } 245, -{ 223: } 247, -{ 224: } 249, -{ 225: } 250, -{ 226: } 251, -{ 227: } 253, -{ 228: } 254, -{ 229: } 255, -{ 230: } 257, -{ 231: } 257, -{ 232: } 257, -{ 233: } 258, -{ 234: } 259, -{ 235: } 260, -{ 236: } 260, -{ 237: } 260, -{ 238: } 262, -{ 239: } 263, -{ 240: } 264, -{ 241: } 265, -{ 242: } 267, -{ 243: } 269, -{ 244: } 271, -{ 245: } 272, -{ 246: } 273, -{ 247: } 274, -{ 248: } 276, -{ 249: } 278, { 250: } 279, -{ 251: } 279, -{ 252: } 279, -{ 253: } 280, -{ 254: } 281, -{ 255: } 283, -{ 256: } 284, -{ 257: } 285, -{ 258: } 286, -{ 259: } 287, -{ 260: } 288, -{ 261: } 290, -{ 262: } 290, -{ 263: } 291, -{ 264: } 293, -{ 265: } 295, -{ 266: } 296, -{ 267: } 298, -{ 268: } 300, -{ 269: } 300, -{ 270: } 302, -{ 271: } 302, -{ 272: } 302, -{ 273: } 302, -{ 274: } 302, -{ 275: } 302, -{ 276: } 302, -{ 277: } 302, -{ 278: } 302, -{ 279: } 302, -{ 280: } 302, -{ 281: } 302, -{ 282: } 302, -{ 283: } 302, -{ 284: } 302, -{ 285: } 302, -{ 286: } 302, -{ 287: } 302, -{ 288: } 302, -{ 289: } 302, -{ 290: } 302, -{ 291: } 302, -{ 292: } 302, -{ 293: } 302, -{ 294: } 302, -{ 295: } 302, -{ 296: } 303, -{ 297: } 303, -{ 298: } 303, -{ 299: } 303, -{ 300: } 303, -{ 301: } 303, -{ 302: } 303, -{ 303: } 303, -{ 304: } 303, -{ 305: } 303, -{ 306: } 303 -); - -yymh : array [0..yynstates-1] of Integer = ( -{ 0: } 0, -{ 1: } 0, -{ 2: } 2, -{ 3: } 3, -{ 4: } 4, -{ 5: } 6, -{ 6: } 9, -{ 7: } 12, -{ 8: } 14, -{ 9: } 16, -{ 10: } 18, -{ 11: } 20, -{ 12: } 22, -{ 13: } 23, -{ 14: } 25, -{ 15: } 27, -{ 16: } 29, -{ 17: } 31, -{ 18: } 33, -{ 19: } 35, -{ 20: } 37, -{ 21: } 39, -{ 22: } 41, -{ 23: } 43, -{ 24: } 45, -{ 25: } 47, -{ 26: } 49, -{ 27: } 51, -{ 28: } 53, -{ 29: } 55, -{ 30: } 57, -{ 31: } 59, -{ 32: } 61, -{ 33: } 63, -{ 34: } 65, -{ 35: } 67, -{ 36: } 69, -{ 37: } 71, -{ 38: } 73, -{ 39: } 75, -{ 40: } 77, -{ 41: } 79, -{ 42: } 81, -{ 43: } 83, -{ 44: } 85, -{ 45: } 87, -{ 46: } 89, -{ 47: } 91, -{ 48: } 93, -{ 49: } 95, -{ 50: } 97, -{ 51: } 99, -{ 52: } 100, -{ 53: } 101, -{ 54: } 102, -{ 55: } 103, -{ 56: } 104, -{ 57: } 104, -{ 58: } 105, -{ 59: } 105, -{ 60: } 106, -{ 61: } 106, -{ 62: } 106, -{ 63: } 107, -{ 64: } 109, -{ 65: } 110, -{ 66: } 111, -{ 67: } 111, -{ 68: } 111, -{ 69: } 112, -{ 70: } 113, -{ 71: } 114, -{ 72: } 115, -{ 73: } 116, -{ 74: } 117, -{ 75: } 118, -{ 76: } 119, -{ 77: } 120, -{ 78: } 120, -{ 79: } 120, -{ 80: } 120, -{ 81: } 120, -{ 82: } 120, -{ 83: } 120, -{ 84: } 120, -{ 85: } 120, -{ 86: } 121, -{ 87: } 122, -{ 88: } 123, -{ 89: } 124, -{ 90: } 125, -{ 91: } 126, -{ 92: } 127, -{ 93: } 128, -{ 94: } 129, -{ 95: } 130, -{ 96: } 131, -{ 97: } 132, -{ 98: } 133, -{ 99: } 134, -{ 100: } 135, -{ 101: } 136, -{ 102: } 137, -{ 103: } 138, -{ 104: } 139, -{ 105: } 140, -{ 106: } 141, -{ 107: } 142, -{ 108: } 143, -{ 109: } 144, -{ 110: } 145, -{ 111: } 146, -{ 112: } 147, -{ 113: } 148, -{ 114: } 149, -{ 115: } 150, -{ 116: } 151, -{ 117: } 152, -{ 118: } 152, -{ 119: } 153, -{ 120: } 154, -{ 121: } 155, -{ 122: } 156, -{ 123: } 156, -{ 124: } 156, -{ 125: } 156, -{ 126: } 156, -{ 127: } 156, -{ 128: } 156, -{ 129: } 156, -{ 130: } 156, -{ 131: } 156, -{ 132: } 157, -{ 133: } 158, -{ 134: } 159, -{ 135: } 160, -{ 136: } 161, -{ 137: } 162, -{ 138: } 163, -{ 139: } 164, -{ 140: } 165, -{ 141: } 166, -{ 142: } 167, -{ 143: } 168, -{ 144: } 169, -{ 145: } 170, -{ 146: } 171, -{ 147: } 172, -{ 148: } 173, -{ 149: } 174, -{ 150: } 175, -{ 151: } 176, -{ 152: } 177, -{ 153: } 178, -{ 154: } 180, -{ 155: } 181, -{ 156: } 182, -{ 157: } 184, -{ 158: } 186, -{ 159: } 187, -{ 160: } 188, -{ 161: } 189, -{ 162: } 190, -{ 163: } 190, -{ 164: } 190, -{ 165: } 191, -{ 166: } 191, -{ 167: } 191, -{ 168: } 191, -{ 169: } 191, -{ 170: } 191, -{ 171: } 192, -{ 172: } 192, -{ 173: } 192, -{ 174: } 193, -{ 175: } 195, -{ 176: } 196, -{ 177: } 197, -{ 178: } 198, -{ 179: } 199, -{ 180: } 200, -{ 181: } 201, -{ 182: } 202, -{ 183: } 203, -{ 184: } 204, -{ 185: } 205, -{ 186: } 207, -{ 187: } 209, -{ 188: } 211, -{ 189: } 212, -{ 190: } 213, -{ 191: } 214, -{ 192: } 215, -{ 193: } 216, -{ 194: } 217, -{ 195: } 218, -{ 196: } 220, -{ 197: } 221, -{ 198: } 223, -{ 199: } 225, -{ 200: } 227, -{ 201: } 229, -{ 202: } 229, -{ 203: } 229, -{ 204: } 230, -{ 205: } 231, -{ 206: } 231, -{ 207: } 231, -{ 208: } 231, -{ 209: } 231, -{ 210: } 231, -{ 211: } 232, -{ 212: } 233, -{ 213: } 234, -{ 214: } 236, -{ 215: } 237, -{ 216: } 239, -{ 217: } 240, -{ 218: } 241, -{ 219: } 242, -{ 220: } 243, -{ 221: } 244, -{ 222: } 246, -{ 223: } 248, -{ 224: } 249, -{ 225: } 250, -{ 226: } 252, -{ 227: } 253, -{ 228: } 254, -{ 229: } 256, -{ 230: } 256, -{ 231: } 256, -{ 232: } 257, -{ 233: } 258, -{ 234: } 259, -{ 235: } 259, -{ 236: } 259, -{ 237: } 261, -{ 238: } 262, -{ 239: } 263, -{ 240: } 264, -{ 241: } 266, -{ 242: } 268, -{ 243: } 270, -{ 244: } 271, -{ 245: } 272, -{ 246: } 273, -{ 247: } 275, -{ 248: } 277, -{ 249: } 278, -{ 250: } 278, -{ 251: } 278, -{ 252: } 279, -{ 253: } 280, -{ 254: } 282, -{ 255: } 283, -{ 256: } 284, -{ 257: } 285, -{ 258: } 286, -{ 259: } 287, -{ 260: } 289, -{ 261: } 289, -{ 262: } 290, -{ 263: } 292, +{ 251: } 280, +{ 252: } 282, +{ 253: } 284, +{ 254: } 285, +{ 255: } 285, +{ 256: } 285, +{ 257: } 286, +{ 258: } 287, +{ 259: } 289, +{ 260: } 290, +{ 261: } 291, +{ 262: } 292, +{ 263: } 293, { 264: } 294, -{ 265: } 295, -{ 266: } 297, -{ 267: } 299, +{ 265: } 296, +{ 266: } 296, +{ 267: } 297, { 268: } 299, { 269: } 301, -{ 270: } 301, -{ 271: } 301, -{ 272: } 301, -{ 273: } 301, -{ 274: } 301, -{ 275: } 301, -{ 276: } 301, -{ 277: } 301, -{ 278: } 301, -{ 279: } 301, -{ 280: } 301, -{ 281: } 301, -{ 282: } 301, -{ 283: } 301, -{ 284: } 301, -{ 285: } 301, -{ 286: } 301, -{ 287: } 301, -{ 288: } 301, -{ 289: } 301, -{ 290: } 301, -{ 291: } 301, -{ 292: } 301, -{ 293: } 301, -{ 294: } 301, -{ 295: } 302, -{ 296: } 302, -{ 297: } 302, -{ 298: } 302, -{ 299: } 302, -{ 300: } 302, -{ 301: } 302, -{ 302: } 302, -{ 303: } 302, -{ 304: } 302, -{ 305: } 302, -{ 306: } 303 +{ 270: } 302, +{ 271: } 304, +{ 272: } 306, +{ 273: } 306, +{ 274: } 308, +{ 275: } 308, +{ 276: } 308, +{ 277: } 308, +{ 278: } 308, +{ 279: } 308, +{ 280: } 308, +{ 281: } 308, +{ 282: } 308, +{ 283: } 308, +{ 284: } 308, +{ 285: } 308, +{ 286: } 308, +{ 287: } 308, +{ 288: } 308, +{ 289: } 308, +{ 290: } 308, +{ 291: } 308, +{ 292: } 308, +{ 293: } 308, +{ 294: } 308, +{ 295: } 308, +{ 296: } 308, +{ 297: } 308, +{ 298: } 308, +{ 299: } 308, +{ 300: } 309, +{ 301: } 309, +{ 302: } 309, +{ 303: } 309, +{ 304: } 309, +{ 305: } 309, +{ 306: } 309, +{ 307: } 309, +{ 308: } 309, +{ 309: } 309, +{ 310: } 309, +{ 311: } 310 ); yytl : array [0..yynstates-1] of Integer = ( { 0: } 1, -{ 1: } 54, -{ 2: } 107, -{ 3: } 109, -{ 4: } 111, -{ 5: } 113, -{ 6: } 116, -{ 7: } 121, -{ 8: } 127, -{ 9: } 128, -{ 10: } 129, -{ 11: } 130, -{ 12: } 132, -{ 13: } 134, -{ 14: } 142, -{ 15: } 142, -{ 16: } 142, -{ 17: } 142, -{ 18: } 142, -{ 19: } 142, -{ 20: } 142, -{ 21: } 142, -{ 22: } 142, -{ 23: } 142, -{ 24: } 142, -{ 25: } 142, -{ 26: } 142, -{ 27: } 143, -{ 28: } 146, -{ 29: } 149, -{ 30: } 153, -{ 31: } 155, -{ 32: } 157, -{ 33: } 159, -{ 34: } 161, -{ 35: } 163, -{ 36: } 166, -{ 37: } 168, -{ 38: } 172, -{ 39: } 172, -{ 40: } 172, -{ 41: } 174, -{ 42: } 176, -{ 43: } 178, -{ 44: } 181, -{ 45: } 183, -{ 46: } 185, -{ 47: } 187, -{ 48: } 189, -{ 49: } 191, -{ 50: } 192, -{ 51: } 192, -{ 52: } 192, -{ 53: } 192, -{ 54: } 193, -{ 55: } 193, -{ 56: } 193, -{ 57: } 193, -{ 58: } 195, -{ 59: } 195, -{ 60: } 197, -{ 61: } 197, -{ 62: } 199, -{ 63: } 201, -{ 64: } 202, -{ 65: } 207, -{ 66: } 208, -{ 67: } 208, -{ 68: } 209, -{ 69: } 211, -{ 70: } 214, -{ 71: } 214, -{ 72: } 214, -{ 73: } 214, -{ 74: } 214, -{ 75: } 214, -{ 76: } 214, -{ 77: } 214, -{ 78: } 214, -{ 79: } 216, -{ 80: } 222, -{ 81: } 225, -{ 82: } 226, -{ 83: } 233, -{ 84: } 234, -{ 85: } 235, -{ 86: } 236, -{ 87: } 238, -{ 88: } 240, -{ 89: } 242, -{ 90: } 244, -{ 91: } 246, -{ 92: } 248, -{ 93: } 250, -{ 94: } 253, -{ 95: } 255, -{ 96: } 257, -{ 97: } 259, -{ 98: } 261, -{ 99: } 263, -{ 100: } 265, -{ 101: } 268, -{ 102: } 270, -{ 103: } 272, -{ 104: } 274, -{ 105: } 276, -{ 106: } 278, -{ 107: } 280, -{ 108: } 282, -{ 109: } 284, -{ 110: } 286, -{ 111: } 288, -{ 112: } 290, -{ 113: } 292, -{ 114: } 294, -{ 115: } 294, -{ 116: } 294, -{ 117: } 294, -{ 118: } 296, -{ 119: } 297, -{ 120: } 298, -{ 121: } 299, -{ 122: } 299, -{ 123: } 300, -{ 124: } 301, -{ 125: } 303, -{ 126: } 305, -{ 127: } 306, -{ 128: } 307, -{ 129: } 308, -{ 130: } 310, -{ 131: } 311, -{ 132: } 312, -{ 133: } 312, -{ 134: } 314, -{ 135: } 316, -{ 136: } 318, -{ 137: } 320, -{ 138: } 322, -{ 139: } 324, -{ 140: } 326, -{ 141: } 328, -{ 142: } 330, -{ 143: } 333, -{ 144: } 335, -{ 145: } 337, -{ 146: } 339, -{ 147: } 341, -{ 148: } 343, -{ 149: } 345, -{ 150: } 347, -{ 151: } 349, -{ 152: } 351, -{ 153: } 353, -{ 154: } 355, -{ 155: } 356, -{ 156: } 358, -{ 157: } 360, -{ 158: } 361, -{ 159: } 362, -{ 160: } 364, -{ 161: } 366, -{ 162: } 368, -{ 163: } 370, -{ 164: } 371, -{ 165: } 372, -{ 166: } 372, -{ 167: } 373, -{ 168: } 374, -{ 169: } 375, -{ 170: } 376, -{ 171: } 377, -{ 172: } 377, -{ 173: } 378, -{ 174: } 379, -{ 175: } 381, -{ 176: } 382, -{ 177: } 384, -{ 178: } 386, -{ 179: } 388, -{ 180: } 390, -{ 181: } 392, -{ 182: } 394, -{ 183: } 396, -{ 184: } 398, -{ 185: } 400, -{ 186: } 402, -{ 187: } 403, -{ 188: } 404, -{ 189: } 405, -{ 190: } 407, -{ 191: } 409, -{ 192: } 411, -{ 193: } 413, -{ 194: } 415, -{ 195: } 417, -{ 196: } 419, -{ 197: } 420, -{ 198: } 422, -{ 199: } 423, -{ 200: } 424, -{ 201: } 425, -{ 202: } 426, -{ 203: } 427, -{ 204: } 428, -{ 205: } 428, -{ 206: } 428, -{ 207: } 429, -{ 208: } 430, -{ 209: } 431, -{ 210: } 432, -{ 211: } 433, -{ 212: } 435, -{ 213: } 437, -{ 214: } 439, -{ 215: } 440, -{ 216: } 442, -{ 217: } 443, -{ 218: } 445, -{ 219: } 447, -{ 220: } 449, -{ 221: } 451, -{ 222: } 453, -{ 223: } 454, -{ 224: } 455, -{ 225: } 457, -{ 226: } 459, -{ 227: } 460, -{ 228: } 462, -{ 229: } 464, -{ 230: } 465, -{ 231: } 466, -{ 232: } 467, -{ 233: } 467, -{ 234: } 467, -{ 235: } 467, -{ 236: } 468, -{ 237: } 469, -{ 238: } 470, -{ 239: } 472, -{ 240: } 474, -{ 241: } 476, -{ 242: } 477, -{ 243: } 478, -{ 244: } 479, -{ 245: } 481, -{ 246: } 483, -{ 247: } 485, -{ 248: } 486, -{ 249: } 487, -{ 250: } 489, -{ 251: } 490, -{ 252: } 491, -{ 253: } 491, -{ 254: } 491, -{ 255: } 492, -{ 256: } 494, -{ 257: } 496, -{ 258: } 498, -{ 259: } 500, -{ 260: } 502, -{ 261: } 503, -{ 262: } 504, -{ 263: } 504, -{ 264: } 505, -{ 265: } 506, -{ 266: } 508, -{ 267: } 509, -{ 268: } 510, -{ 269: } 511, -{ 270: } 512, -{ 271: } 513, -{ 272: } 514, -{ 273: } 515, -{ 274: } 516, -{ 275: } 517, -{ 276: } 518, -{ 277: } 519, -{ 278: } 520, -{ 279: } 522, -{ 280: } 524, -{ 281: } 525, -{ 282: } 526, -{ 283: } 527, -{ 284: } 528, -{ 285: } 529, -{ 286: } 530, -{ 287: } 531, -{ 288: } 532, -{ 289: } 533, -{ 290: } 534, -{ 291: } 535, -{ 292: } 536, -{ 293: } 537, -{ 294: } 538, -{ 295: } 539, -{ 296: } 539, -{ 297: } 540, -{ 298: } 541, -{ 299: } 542, -{ 300: } 543, -{ 301: } 544, -{ 302: } 545, -{ 303: } 546, -{ 304: } 547, -{ 305: } 548, -{ 306: } 549 -); - -yyth : array [0..yynstates-1] of Integer = ( -{ 0: } 53, -{ 1: } 106, -{ 2: } 108, -{ 3: } 110, -{ 4: } 112, +{ 1: } 55, +{ 2: } 109, +{ 3: } 111, +{ 4: } 113, { 5: } 115, -{ 6: } 120, -{ 7: } 126, -{ 8: } 127, -{ 9: } 128, -{ 10: } 129, -{ 11: } 131, -{ 12: } 133, -{ 13: } 141, -{ 14: } 141, -{ 15: } 141, -{ 16: } 141, -{ 17: } 141, -{ 18: } 141, -{ 19: } 141, -{ 20: } 141, -{ 21: } 141, -{ 22: } 141, -{ 23: } 141, -{ 24: } 141, -{ 25: } 141, -{ 26: } 142, +{ 6: } 118, +{ 7: } 123, +{ 8: } 129, +{ 9: } 130, +{ 10: } 131, +{ 11: } 132, +{ 12: } 134, +{ 13: } 136, +{ 14: } 144, +{ 15: } 144, +{ 16: } 144, +{ 17: } 144, +{ 18: } 144, +{ 19: } 144, +{ 20: } 144, +{ 21: } 144, +{ 22: } 144, +{ 23: } 144, +{ 24: } 144, +{ 25: } 144, +{ 26: } 144, { 27: } 145, { 28: } 148, -{ 29: } 152, -{ 30: } 154, -{ 31: } 156, -{ 32: } 158, -{ 33: } 160, -{ 34: } 162, +{ 29: } 151, +{ 30: } 155, +{ 31: } 157, +{ 32: } 159, +{ 33: } 161, +{ 34: } 163, { 35: } 165, -{ 36: } 167, -{ 37: } 171, -{ 38: } 171, -{ 39: } 171, -{ 40: } 173, -{ 41: } 175, -{ 42: } 177, +{ 36: } 168, +{ 37: } 170, +{ 38: } 174, +{ 39: } 174, +{ 40: } 174, +{ 41: } 176, +{ 42: } 178, { 43: } 180, -{ 44: } 182, -{ 45: } 184, -{ 46: } 186, -{ 47: } 188, -{ 48: } 190, -{ 49: } 191, -{ 50: } 191, -{ 51: } 191, -{ 52: } 191, -{ 53: } 192, -{ 54: } 192, -{ 55: } 192, -{ 56: } 192, -{ 57: } 194, -{ 58: } 194, -{ 59: } 196, -{ 60: } 196, -{ 61: } 198, -{ 62: } 200, -{ 63: } 201, -{ 64: } 206, -{ 65: } 207, -{ 66: } 207, -{ 67: } 208, -{ 68: } 210, +{ 44: } 183, +{ 45: } 185, +{ 46: } 187, +{ 47: } 189, +{ 48: } 191, +{ 49: } 193, +{ 50: } 195, +{ 51: } 196, +{ 52: } 196, +{ 53: } 196, +{ 54: } 196, +{ 55: } 197, +{ 56: } 197, +{ 57: } 197, +{ 58: } 197, +{ 59: } 199, +{ 60: } 199, +{ 61: } 201, +{ 62: } 201, +{ 63: } 203, +{ 64: } 205, +{ 65: } 206, +{ 66: } 211, +{ 67: } 212, +{ 68: } 212, { 69: } 213, -{ 70: } 213, -{ 71: } 213, -{ 72: } 213, -{ 73: } 213, -{ 74: } 213, -{ 75: } 213, -{ 76: } 213, -{ 77: } 213, -{ 78: } 215, -{ 79: } 221, -{ 80: } 224, -{ 81: } 225, -{ 82: } 232, -{ 83: } 233, -{ 84: } 234, -{ 85: } 235, -{ 86: } 237, -{ 87: } 239, -{ 88: } 241, -{ 89: } 243, -{ 90: } 245, -{ 91: } 247, -{ 92: } 249, +{ 70: } 215, +{ 71: } 218, +{ 72: } 218, +{ 73: } 218, +{ 74: } 218, +{ 75: } 218, +{ 76: } 218, +{ 77: } 218, +{ 78: } 218, +{ 79: } 218, +{ 80: } 220, +{ 81: } 226, +{ 82: } 229, +{ 83: } 230, +{ 84: } 237, +{ 85: } 238, +{ 86: } 239, +{ 87: } 240, +{ 88: } 242, +{ 89: } 244, +{ 90: } 246, +{ 91: } 248, +{ 92: } 250, { 93: } 252, { 94: } 254, -{ 95: } 256, -{ 96: } 258, -{ 97: } 260, -{ 98: } 262, -{ 99: } 264, +{ 95: } 257, +{ 96: } 259, +{ 97: } 261, +{ 98: } 263, +{ 99: } 265, { 100: } 267, { 101: } 269, -{ 102: } 271, -{ 103: } 273, -{ 104: } 275, -{ 105: } 277, -{ 106: } 279, -{ 107: } 281, -{ 108: } 283, -{ 109: } 285, -{ 110: } 287, -{ 111: } 289, -{ 112: } 291, -{ 113: } 293, -{ 114: } 293, -{ 115: } 293, -{ 116: } 293, -{ 117: } 295, -{ 118: } 296, -{ 119: } 297, -{ 120: } 298, -{ 121: } 298, -{ 122: } 299, -{ 123: } 300, -{ 124: } 302, -{ 125: } 304, -{ 126: } 305, -{ 127: } 306, -{ 128: } 307, -{ 129: } 309, -{ 130: } 310, -{ 131: } 311, -{ 132: } 311, -{ 133: } 313, -{ 134: } 315, -{ 135: } 317, -{ 136: } 319, -{ 137: } 321, -{ 138: } 323, -{ 139: } 325, -{ 140: } 327, -{ 141: } 329, +{ 102: } 272, +{ 103: } 274, +{ 104: } 276, +{ 105: } 278, +{ 106: } 280, +{ 107: } 282, +{ 108: } 284, +{ 109: } 286, +{ 110: } 288, +{ 111: } 290, +{ 112: } 292, +{ 113: } 294, +{ 114: } 296, +{ 115: } 298, +{ 116: } 300, +{ 117: } 300, +{ 118: } 300, +{ 119: } 300, +{ 120: } 302, +{ 121: } 303, +{ 122: } 304, +{ 123: } 305, +{ 124: } 305, +{ 125: } 306, +{ 126: } 307, +{ 127: } 309, +{ 128: } 311, +{ 129: } 312, +{ 130: } 313, +{ 131: } 314, +{ 132: } 316, +{ 133: } 317, +{ 134: } 318, +{ 135: } 318, +{ 136: } 320, +{ 137: } 322, +{ 138: } 324, +{ 139: } 326, +{ 140: } 328, +{ 141: } 330, { 142: } 332, { 143: } 334, { 144: } 336, -{ 145: } 338, -{ 146: } 340, -{ 147: } 342, -{ 148: } 344, -{ 149: } 346, -{ 150: } 348, -{ 151: } 350, -{ 152: } 352, -{ 153: } 354, -{ 154: } 355, -{ 155: } 357, -{ 156: } 359, -{ 157: } 360, -{ 158: } 361, -{ 159: } 363, -{ 160: } 365, -{ 161: } 367, -{ 162: } 369, -{ 163: } 370, -{ 164: } 371, -{ 165: } 371, -{ 166: } 372, -{ 167: } 373, -{ 168: } 374, -{ 169: } 375, -{ 170: } 376, -{ 171: } 376, -{ 172: } 377, -{ 173: } 378, -{ 174: } 380, -{ 175: } 381, -{ 176: } 383, -{ 177: } 385, -{ 178: } 387, -{ 179: } 389, -{ 180: } 391, -{ 181: } 393, -{ 182: } 395, -{ 183: } 397, -{ 184: } 399, -{ 185: } 401, -{ 186: } 402, -{ 187: } 403, -{ 188: } 404, -{ 189: } 406, -{ 190: } 408, -{ 191: } 410, -{ 192: } 412, -{ 193: } 414, -{ 194: } 416, -{ 195: } 418, -{ 196: } 419, -{ 197: } 421, -{ 198: } 422, -{ 199: } 423, -{ 200: } 424, -{ 201: } 425, -{ 202: } 426, -{ 203: } 427, -{ 204: } 427, -{ 205: } 427, -{ 206: } 428, -{ 207: } 429, -{ 208: } 430, -{ 209: } 431, -{ 210: } 432, -{ 211: } 434, -{ 212: } 436, -{ 213: } 438, -{ 214: } 439, -{ 215: } 441, -{ 216: } 442, -{ 217: } 444, -{ 218: } 446, -{ 219: } 448, -{ 220: } 450, -{ 221: } 452, -{ 222: } 453, -{ 223: } 454, -{ 224: } 456, -{ 225: } 458, -{ 226: } 459, -{ 227: } 461, -{ 228: } 463, -{ 229: } 464, -{ 230: } 465, -{ 231: } 466, -{ 232: } 466, -{ 233: } 466, -{ 234: } 466, -{ 235: } 467, -{ 236: } 468, -{ 237: } 469, -{ 238: } 471, -{ 239: } 473, -{ 240: } 475, -{ 241: } 476, -{ 242: } 477, -{ 243: } 478, -{ 244: } 480, -{ 245: } 482, -{ 246: } 484, -{ 247: } 485, -{ 248: } 486, -{ 249: } 488, -{ 250: } 489, -{ 251: } 490, -{ 252: } 490, -{ 253: } 490, -{ 254: } 491, -{ 255: } 493, -{ 256: } 495, -{ 257: } 497, -{ 258: } 499, -{ 259: } 501, -{ 260: } 502, -{ 261: } 503, -{ 262: } 503, -{ 263: } 504, -{ 264: } 505, -{ 265: } 507, -{ 266: } 508, -{ 267: } 509, -{ 268: } 510, -{ 269: } 511, -{ 270: } 512, -{ 271: } 513, -{ 272: } 514, -{ 273: } 515, -{ 274: } 516, -{ 275: } 517, -{ 276: } 518, -{ 277: } 519, -{ 278: } 521, -{ 279: } 523, -{ 280: } 524, -{ 281: } 525, -{ 282: } 526, -{ 283: } 527, -{ 284: } 528, -{ 285: } 529, -{ 286: } 530, -{ 287: } 531, -{ 288: } 532, -{ 289: } 533, -{ 290: } 534, -{ 291: } 535, -{ 292: } 536, -{ 293: } 537, -{ 294: } 538, -{ 295: } 538, -{ 296: } 539, -{ 297: } 540, -{ 298: } 541, -{ 299: } 542, -{ 300: } 543, -{ 301: } 544, -{ 302: } 545, -{ 303: } 546, -{ 304: } 547, -{ 305: } 548, -{ 306: } 548 +{ 145: } 339, +{ 146: } 341, +{ 147: } 343, +{ 148: } 345, +{ 149: } 347, +{ 150: } 349, +{ 151: } 351, +{ 152: } 353, +{ 153: } 355, +{ 154: } 357, +{ 155: } 359, +{ 156: } 361, +{ 157: } 362, +{ 158: } 364, +{ 159: } 366, +{ 160: } 367, +{ 161: } 368, +{ 162: } 370, +{ 163: } 372, +{ 164: } 374, +{ 165: } 376, +{ 166: } 378, +{ 167: } 379, +{ 168: } 380, +{ 169: } 380, +{ 170: } 381, +{ 171: } 382, +{ 172: } 383, +{ 173: } 384, +{ 174: } 385, +{ 175: } 385, +{ 176: } 386, +{ 177: } 387, +{ 178: } 389, +{ 179: } 390, +{ 180: } 392, +{ 181: } 394, +{ 182: } 396, +{ 183: } 398, +{ 184: } 400, +{ 185: } 402, +{ 186: } 404, +{ 187: } 406, +{ 188: } 408, +{ 189: } 410, +{ 190: } 411, +{ 191: } 412, +{ 192: } 413, +{ 193: } 415, +{ 194: } 417, +{ 195: } 419, +{ 196: } 421, +{ 197: } 423, +{ 198: } 425, +{ 199: } 427, +{ 200: } 428, +{ 201: } 430, +{ 202: } 431, +{ 203: } 432, +{ 204: } 433, +{ 205: } 434, +{ 206: } 436, +{ 207: } 437, +{ 208: } 438, +{ 209: } 438, +{ 210: } 438, +{ 211: } 439, +{ 212: } 440, +{ 213: } 441, +{ 214: } 442, +{ 215: } 443, +{ 216: } 445, +{ 217: } 447, +{ 218: } 449, +{ 219: } 450, +{ 220: } 452, +{ 221: } 453, +{ 222: } 455, +{ 223: } 457, +{ 224: } 459, +{ 225: } 461, +{ 226: } 463, +{ 227: } 464, +{ 228: } 465, +{ 229: } 467, +{ 230: } 469, +{ 231: } 470, +{ 232: } 472, +{ 233: } 474, +{ 234: } 475, +{ 235: } 476, +{ 236: } 477, +{ 237: } 478, +{ 238: } 478, +{ 239: } 478, +{ 240: } 478, +{ 241: } 479, +{ 242: } 480, +{ 243: } 481, +{ 244: } 483, +{ 245: } 485, +{ 246: } 487, +{ 247: } 488, +{ 248: } 489, +{ 249: } 490, +{ 250: } 492, +{ 251: } 494, +{ 252: } 496, +{ 253: } 497, +{ 254: } 498, +{ 255: } 500, +{ 256: } 501, +{ 257: } 502, +{ 258: } 502, +{ 259: } 502, +{ 260: } 503, +{ 261: } 505, +{ 262: } 507, +{ 263: } 509, +{ 264: } 511, +{ 265: } 513, +{ 266: } 514, +{ 267: } 515, +{ 268: } 515, +{ 269: } 516, +{ 270: } 517, +{ 271: } 519, +{ 272: } 520, +{ 273: } 521, +{ 274: } 522, +{ 275: } 523, +{ 276: } 524, +{ 277: } 525, +{ 278: } 526, +{ 279: } 527, +{ 280: } 528, +{ 281: } 529, +{ 282: } 530, +{ 283: } 531, +{ 284: } 533, +{ 285: } 535, +{ 286: } 536, +{ 287: } 537, +{ 288: } 538, +{ 289: } 539, +{ 290: } 540, +{ 291: } 541, +{ 292: } 542, +{ 293: } 543, +{ 294: } 544, +{ 295: } 545, +{ 296: } 546, +{ 297: } 547, +{ 298: } 548, +{ 299: } 549, +{ 300: } 550, +{ 301: } 550, +{ 302: } 551, +{ 303: } 552, +{ 304: } 553, +{ 305: } 554, +{ 306: } 555, +{ 307: } 556, +{ 308: } 557, +{ 309: } 558, +{ 310: } 559, +{ 311: } 560 +); + +yyth : array [0..yynstates-1] of Integer = ( +{ 0: } 54, +{ 1: } 108, +{ 2: } 110, +{ 3: } 112, +{ 4: } 114, +{ 5: } 117, +{ 6: } 122, +{ 7: } 128, +{ 8: } 129, +{ 9: } 130, +{ 10: } 131, +{ 11: } 133, +{ 12: } 135, +{ 13: } 143, +{ 14: } 143, +{ 15: } 143, +{ 16: } 143, +{ 17: } 143, +{ 18: } 143, +{ 19: } 143, +{ 20: } 143, +{ 21: } 143, +{ 22: } 143, +{ 23: } 143, +{ 24: } 143, +{ 25: } 143, +{ 26: } 144, +{ 27: } 147, +{ 28: } 150, +{ 29: } 154, +{ 30: } 156, +{ 31: } 158, +{ 32: } 160, +{ 33: } 162, +{ 34: } 164, +{ 35: } 167, +{ 36: } 169, +{ 37: } 173, +{ 38: } 173, +{ 39: } 173, +{ 40: } 175, +{ 41: } 177, +{ 42: } 179, +{ 43: } 182, +{ 44: } 184, +{ 45: } 186, +{ 46: } 188, +{ 47: } 190, +{ 48: } 192, +{ 49: } 194, +{ 50: } 195, +{ 51: } 195, +{ 52: } 195, +{ 53: } 195, +{ 54: } 196, +{ 55: } 196, +{ 56: } 196, +{ 57: } 196, +{ 58: } 198, +{ 59: } 198, +{ 60: } 200, +{ 61: } 200, +{ 62: } 202, +{ 63: } 204, +{ 64: } 205, +{ 65: } 210, +{ 66: } 211, +{ 67: } 211, +{ 68: } 212, +{ 69: } 214, +{ 70: } 217, +{ 71: } 217, +{ 72: } 217, +{ 73: } 217, +{ 74: } 217, +{ 75: } 217, +{ 76: } 217, +{ 77: } 217, +{ 78: } 217, +{ 79: } 219, +{ 80: } 225, +{ 81: } 228, +{ 82: } 229, +{ 83: } 236, +{ 84: } 237, +{ 85: } 238, +{ 86: } 239, +{ 87: } 241, +{ 88: } 243, +{ 89: } 245, +{ 90: } 247, +{ 91: } 249, +{ 92: } 251, +{ 93: } 253, +{ 94: } 256, +{ 95: } 258, +{ 96: } 260, +{ 97: } 262, +{ 98: } 264, +{ 99: } 266, +{ 100: } 268, +{ 101: } 271, +{ 102: } 273, +{ 103: } 275, +{ 104: } 277, +{ 105: } 279, +{ 106: } 281, +{ 107: } 283, +{ 108: } 285, +{ 109: } 287, +{ 110: } 289, +{ 111: } 291, +{ 112: } 293, +{ 113: } 295, +{ 114: } 297, +{ 115: } 299, +{ 116: } 299, +{ 117: } 299, +{ 118: } 299, +{ 119: } 301, +{ 120: } 302, +{ 121: } 303, +{ 122: } 304, +{ 123: } 304, +{ 124: } 305, +{ 125: } 306, +{ 126: } 308, +{ 127: } 310, +{ 128: } 311, +{ 129: } 312, +{ 130: } 313, +{ 131: } 315, +{ 132: } 316, +{ 133: } 317, +{ 134: } 317, +{ 135: } 319, +{ 136: } 321, +{ 137: } 323, +{ 138: } 325, +{ 139: } 327, +{ 140: } 329, +{ 141: } 331, +{ 142: } 333, +{ 143: } 335, +{ 144: } 338, +{ 145: } 340, +{ 146: } 342, +{ 147: } 344, +{ 148: } 346, +{ 149: } 348, +{ 150: } 350, +{ 151: } 352, +{ 152: } 354, +{ 153: } 356, +{ 154: } 358, +{ 155: } 360, +{ 156: } 361, +{ 157: } 363, +{ 158: } 365, +{ 159: } 366, +{ 160: } 367, +{ 161: } 369, +{ 162: } 371, +{ 163: } 373, +{ 164: } 375, +{ 165: } 377, +{ 166: } 378, +{ 167: } 379, +{ 168: } 379, +{ 169: } 380, +{ 170: } 381, +{ 171: } 382, +{ 172: } 383, +{ 173: } 384, +{ 174: } 384, +{ 175: } 385, +{ 176: } 386, +{ 177: } 388, +{ 178: } 389, +{ 179: } 391, +{ 180: } 393, +{ 181: } 395, +{ 182: } 397, +{ 183: } 399, +{ 184: } 401, +{ 185: } 403, +{ 186: } 405, +{ 187: } 407, +{ 188: } 409, +{ 189: } 410, +{ 190: } 411, +{ 191: } 412, +{ 192: } 414, +{ 193: } 416, +{ 194: } 418, +{ 195: } 420, +{ 196: } 422, +{ 197: } 424, +{ 198: } 426, +{ 199: } 427, +{ 200: } 429, +{ 201: } 430, +{ 202: } 431, +{ 203: } 432, +{ 204: } 433, +{ 205: } 435, +{ 206: } 436, +{ 207: } 437, +{ 208: } 437, +{ 209: } 437, +{ 210: } 438, +{ 211: } 439, +{ 212: } 440, +{ 213: } 441, +{ 214: } 442, +{ 215: } 444, +{ 216: } 446, +{ 217: } 448, +{ 218: } 449, +{ 219: } 451, +{ 220: } 452, +{ 221: } 454, +{ 222: } 456, +{ 223: } 458, +{ 224: } 460, +{ 225: } 462, +{ 226: } 463, +{ 227: } 464, +{ 228: } 466, +{ 229: } 468, +{ 230: } 469, +{ 231: } 471, +{ 232: } 473, +{ 233: } 474, +{ 234: } 475, +{ 235: } 476, +{ 236: } 477, +{ 237: } 477, +{ 238: } 477, +{ 239: } 477, +{ 240: } 478, +{ 241: } 479, +{ 242: } 480, +{ 243: } 482, +{ 244: } 484, +{ 245: } 486, +{ 246: } 487, +{ 247: } 488, +{ 248: } 489, +{ 249: } 491, +{ 250: } 493, +{ 251: } 495, +{ 252: } 496, +{ 253: } 497, +{ 254: } 499, +{ 255: } 500, +{ 256: } 501, +{ 257: } 501, +{ 258: } 501, +{ 259: } 502, +{ 260: } 504, +{ 261: } 506, +{ 262: } 508, +{ 263: } 510, +{ 264: } 512, +{ 265: } 513, +{ 266: } 514, +{ 267: } 514, +{ 268: } 515, +{ 269: } 516, +{ 270: } 518, +{ 271: } 519, +{ 272: } 520, +{ 273: } 521, +{ 274: } 522, +{ 275: } 523, +{ 276: } 524, +{ 277: } 525, +{ 278: } 526, +{ 279: } 527, +{ 280: } 528, +{ 281: } 529, +{ 282: } 530, +{ 283: } 532, +{ 284: } 534, +{ 285: } 535, +{ 286: } 536, +{ 287: } 537, +{ 288: } 538, +{ 289: } 539, +{ 290: } 540, +{ 291: } 541, +{ 292: } 542, +{ 293: } 543, +{ 294: } 544, +{ 295: } 545, +{ 296: } 546, +{ 297: } 547, +{ 298: } 548, +{ 299: } 549, +{ 300: } 549, +{ 301: } 550, +{ 302: } 551, +{ 303: } 552, +{ 304: } 553, +{ 305: } 554, +{ 306: } 555, +{ 307: } 556, +{ 308: } 557, +{ 309: } 558, +{ 310: } 559, +{ 311: } 559 );