diff options
author | svenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-08-12 19:05:21 +0000 |
---|---|---|
committer | svenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-08-12 19:05:21 +0000 |
commit | b488c95e03a5f8e9031553f9f9e1a7ce6c26b6a2 (patch) | |
tree | 6667a371f0259a95c4fdb0a98bc0a626e8e13230 /packages/fcl-res | |
parent | eed0bd6d7fa96e8148b44516a574ed89233bdf78 (diff) | |
download | fpc-b488c95e03a5f8e9031553f9f9e1a7ce6c26b6a2.tar.gz |
fcl-res: numeric expressions
Reintegrate fpcres-rc branch by Martok
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@46379 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-res')
-rw-r--r-- | packages/fcl-res/src/rclex.inc | 534 | ||||
-rw-r--r-- | packages/fcl-res/src/rclex.l | 6 | ||||
-rw-r--r-- | packages/fcl-res/src/rcparser.pas | 2791 | ||||
-rw-r--r-- | packages/fcl-res/src/rcparser.y | 30 |
4 files changed, 1971 insertions, 1390 deletions
diff --git a/packages/fcl-res/src/rclex.inc b/packages/fcl-res/src/rclex.inc index bdd6d15abd..0c7de18023 100644 --- a/packages/fcl-res/src/rclex.inc +++ b/packages/fcl-res/src/rclex.inc @@ -92,9 +92,9 @@ begin return(_ILLEGAL); 8: - return(_NUMDECIMAL); + return(_NUMBER); 9: - return(_NUMHEX); + return(_NUMBER); 10: begin start(INSTRING); strbuf:= ''; end; 11: @@ -151,8 +151,8 @@ type YYTRec = record const -yynmarks = 59; -yynmatches = 59; +yynmarks = 60; +yynmatches = 60; yyntrans = 116; yynstates = 88; @@ -170,6 +170,7 @@ yyk : array [1..yynmarks] of Integer = ( { 8: } { 9: } { 10: } + 23, 24, { 11: } 8, @@ -320,6 +321,7 @@ yym : array [1..yynmatches] of Integer = ( { 8: } { 9: } { 10: } + 23, 24, { 11: } 8, @@ -458,12 +460,12 @@ yym : array [1..yynmatches] of Integer = ( yyt : array [1..yyntrans] of YYTrec = ( { 0: } - ( cc: [ #1..#8,#11,#13..#31,'!','#'..'''','*','+', - '-','.',':'..'@','['..'^','`','|','~'..#255 ]; s: 23), + ( cc: [ #1..#8,#11,#13..#31,'!','#','$','''','*','+', + '-','.',':'..'@','['..']','`',#127..#255 ]; s: 23), ( cc: [ #9,#12,' ' ]; s: 22), ( cc: [ #10 ]; s: 20), ( cc: [ '"' ]; s: 14), - ( cc: [ '(',')',',' ]; s: 21), + ( cc: [ '%','&','(',')',',','^','|','~' ]; s: 21), ( cc: [ '/' ]; s: 10), ( cc: [ '0' ]; s: 13), ( cc: [ '1'..'9' ]; s: 11), @@ -474,12 +476,12 @@ yyt : array [1..yyntrans] of YYTrec = ( ( cc: [ '{' ]; s: 16), ( cc: [ '}' ]; s: 18), { 1: } - ( cc: [ #1..#8,#11,#13..#31,'!','#'..'''','*','+', - '-','.',':'..'@','['..'^','`','|','~'..#255 ]; s: 23), + ( cc: [ #1..#8,#11,#13..#31,'!','#','$','''','*','+', + '-','.',':'..'@','['..']','`',#127..#255 ]; s: 23), ( cc: [ #9,#12,' ' ]; s: 22), ( cc: [ #10 ]; s: 20), ( cc: [ '"' ]; s: 14), - ( cc: [ '(',')',',' ]; s: 21), + ( cc: [ '%','&','(',')',',','^','|','~' ]; s: 21), ( cc: [ '/' ]; s: 10), ( cc: [ '0' ]; s: 13), ( cc: [ '1'..'9' ]; s: 11), @@ -677,52 +679,143 @@ yykl : array [0..yynstates-1] of Integer = ( { 8: } 3, { 9: } 3, { 10: } 3, -{ 11: } 4, -{ 12: } 6, -{ 13: } 9, -{ 14: } 11, -{ 15: } 13, -{ 16: } 15, -{ 17: } 17, -{ 18: } 19, -{ 19: } 21, -{ 20: } 23, -{ 21: } 24, -{ 22: } 26, -{ 23: } 28, -{ 24: } 29, -{ 25: } 30, -{ 26: } 31, -{ 27: } 32, -{ 28: } 33, -{ 29: } 34, -{ 30: } 36, -{ 31: } 37, -{ 32: } 38, -{ 33: } 39, -{ 34: } 40, -{ 35: } 41, -{ 36: } 42, -{ 37: } 43, -{ 38: } 44, +{ 11: } 5, +{ 12: } 7, +{ 13: } 10, +{ 14: } 12, +{ 15: } 14, +{ 16: } 16, +{ 17: } 18, +{ 18: } 20, +{ 19: } 22, +{ 20: } 24, +{ 21: } 25, +{ 22: } 27, +{ 23: } 29, +{ 24: } 30, +{ 25: } 31, +{ 26: } 32, +{ 27: } 33, +{ 28: } 34, +{ 29: } 35, +{ 30: } 37, +{ 31: } 38, +{ 32: } 39, +{ 33: } 40, +{ 34: } 41, +{ 35: } 42, +{ 36: } 43, +{ 37: } 44, +{ 38: } 45, +{ 39: } 46, +{ 40: } 46, +{ 41: } 46, +{ 42: } 46, +{ 43: } 47, +{ 44: } 48, +{ 45: } 49, +{ 46: } 50, +{ 47: } 51, +{ 48: } 52, +{ 49: } 52, +{ 50: } 53, +{ 51: } 55, +{ 52: } 55, +{ 53: } 55, +{ 54: } 55, +{ 55: } 56, +{ 56: } 56, +{ 57: } 58, +{ 58: } 58, +{ 59: } 58, +{ 60: } 58, +{ 61: } 58, +{ 62: } 58, +{ 63: } 58, +{ 64: } 58, +{ 65: } 58, +{ 66: } 58, +{ 67: } 59, +{ 68: } 60, +{ 69: } 61, +{ 70: } 61, +{ 71: } 61, +{ 72: } 61, +{ 73: } 61, +{ 74: } 61, +{ 75: } 61, +{ 76: } 61, +{ 77: } 61, +{ 78: } 61, +{ 79: } 61, +{ 80: } 61, +{ 81: } 61, +{ 82: } 61, +{ 83: } 61, +{ 84: } 61, +{ 85: } 61, +{ 86: } 61, +{ 87: } 61 +); + +yykh : array [0..yynstates-1] of Integer = ( +{ 0: } 1, +{ 1: } 2, +{ 2: } 2, +{ 3: } 2, +{ 4: } 2, +{ 5: } 2, +{ 6: } 2, +{ 7: } 2, +{ 8: } 2, +{ 9: } 2, +{ 10: } 4, +{ 11: } 6, +{ 12: } 9, +{ 13: } 11, +{ 14: } 13, +{ 15: } 15, +{ 16: } 17, +{ 17: } 19, +{ 18: } 21, +{ 19: } 23, +{ 20: } 24, +{ 21: } 26, +{ 22: } 28, +{ 23: } 29, +{ 24: } 30, +{ 25: } 31, +{ 26: } 32, +{ 27: } 33, +{ 28: } 34, +{ 29: } 36, +{ 30: } 37, +{ 31: } 38, +{ 32: } 39, +{ 33: } 40, +{ 34: } 41, +{ 35: } 42, +{ 36: } 43, +{ 37: } 44, +{ 38: } 45, { 39: } 45, { 40: } 45, { 41: } 45, -{ 42: } 45, -{ 43: } 46, -{ 44: } 47, -{ 45: } 48, -{ 46: } 49, -{ 47: } 50, +{ 42: } 46, +{ 43: } 47, +{ 44: } 48, +{ 45: } 49, +{ 46: } 50, +{ 47: } 51, { 48: } 51, -{ 49: } 51, -{ 50: } 52, +{ 49: } 52, +{ 50: } 54, { 51: } 54, { 52: } 54, { 53: } 54, -{ 54: } 54, +{ 54: } 55, { 55: } 55, -{ 56: } 55, +{ 56: } 57, { 57: } 57, { 58: } 57, { 59: } 57, @@ -732,9 +825,9 @@ yykl : array [0..yynstates-1] of Integer = ( { 63: } 57, { 64: } 57, { 65: } 57, -{ 66: } 57, -{ 67: } 58, -{ 68: } 59, +{ 66: } 58, +{ 67: } 59, +{ 68: } 60, { 69: } 60, { 70: } 60, { 71: } 60, @@ -756,20 +849,20 @@ yykl : array [0..yynstates-1] of Integer = ( { 87: } 60 ); -yykh : array [0..yynstates-1] of Integer = ( +yyml : array [0..yynstates-1] of Integer = ( { 0: } 1, { 1: } 2, -{ 2: } 2, -{ 3: } 2, -{ 4: } 2, -{ 5: } 2, -{ 6: } 2, -{ 7: } 2, -{ 8: } 2, -{ 9: } 2, +{ 2: } 3, +{ 3: } 3, +{ 4: } 3, +{ 5: } 3, +{ 6: } 3, +{ 7: } 3, +{ 8: } 3, +{ 9: } 3, { 10: } 3, { 11: } 5, -{ 12: } 8, +{ 12: } 7, { 13: } 10, { 14: } 12, { 15: } 14, @@ -777,134 +870,134 @@ yykh : array [0..yynstates-1] of Integer = ( { 17: } 18, { 18: } 20, { 19: } 22, -{ 20: } 23, +{ 20: } 24, { 21: } 25, { 22: } 27, -{ 23: } 28, -{ 24: } 29, -{ 25: } 30, -{ 26: } 31, -{ 27: } 32, -{ 28: } 33, +{ 23: } 29, +{ 24: } 30, +{ 25: } 31, +{ 26: } 32, +{ 27: } 33, +{ 28: } 34, { 29: } 35, -{ 30: } 36, -{ 31: } 37, -{ 32: } 38, -{ 33: } 39, -{ 34: } 40, -{ 35: } 41, -{ 36: } 42, -{ 37: } 43, -{ 38: } 44, -{ 39: } 44, -{ 40: } 44, -{ 41: } 44, -{ 42: } 45, -{ 43: } 46, -{ 44: } 47, -{ 45: } 48, -{ 46: } 49, -{ 47: } 50, -{ 48: } 50, -{ 49: } 51, +{ 30: } 37, +{ 31: } 38, +{ 32: } 39, +{ 33: } 40, +{ 34: } 41, +{ 35: } 42, +{ 36: } 43, +{ 37: } 44, +{ 38: } 45, +{ 39: } 46, +{ 40: } 46, +{ 41: } 46, +{ 42: } 46, +{ 43: } 47, +{ 44: } 48, +{ 45: } 49, +{ 46: } 50, +{ 47: } 51, +{ 48: } 52, +{ 49: } 52, { 50: } 53, -{ 51: } 53, -{ 52: } 53, -{ 53: } 53, -{ 54: } 54, -{ 55: } 54, +{ 51: } 55, +{ 52: } 55, +{ 53: } 55, +{ 54: } 55, +{ 55: } 56, { 56: } 56, -{ 57: } 56, -{ 58: } 56, -{ 59: } 56, -{ 60: } 56, -{ 61: } 56, -{ 62: } 56, -{ 63: } 56, -{ 64: } 56, -{ 65: } 56, -{ 66: } 57, -{ 67: } 58, -{ 68: } 59, -{ 69: } 59, -{ 70: } 59, -{ 71: } 59, -{ 72: } 59, -{ 73: } 59, -{ 74: } 59, -{ 75: } 59, -{ 76: } 59, -{ 77: } 59, -{ 78: } 59, -{ 79: } 59, -{ 80: } 59, -{ 81: } 59, -{ 82: } 59, -{ 83: } 59, -{ 84: } 59, -{ 85: } 59, -{ 86: } 59, -{ 87: } 59 +{ 57: } 58, +{ 58: } 58, +{ 59: } 58, +{ 60: } 58, +{ 61: } 58, +{ 62: } 58, +{ 63: } 58, +{ 64: } 58, +{ 65: } 58, +{ 66: } 58, +{ 67: } 59, +{ 68: } 60, +{ 69: } 61, +{ 70: } 61, +{ 71: } 61, +{ 72: } 61, +{ 73: } 61, +{ 74: } 61, +{ 75: } 61, +{ 76: } 61, +{ 77: } 61, +{ 78: } 61, +{ 79: } 61, +{ 80: } 61, +{ 81: } 61, +{ 82: } 61, +{ 83: } 61, +{ 84: } 61, +{ 85: } 61, +{ 86: } 61, +{ 87: } 61 ); -yyml : array [0..yynstates-1] of Integer = ( +yymh : array [0..yynstates-1] of Integer = ( { 0: } 1, { 1: } 2, -{ 2: } 3, -{ 3: } 3, -{ 4: } 3, -{ 5: } 3, -{ 6: } 3, -{ 7: } 3, -{ 8: } 3, -{ 9: } 3, -{ 10: } 3, -{ 11: } 4, -{ 12: } 6, -{ 13: } 9, -{ 14: } 11, -{ 15: } 13, -{ 16: } 15, -{ 17: } 17, -{ 18: } 19, -{ 19: } 21, -{ 20: } 23, -{ 21: } 24, -{ 22: } 26, -{ 23: } 28, -{ 24: } 29, -{ 25: } 30, -{ 26: } 31, -{ 27: } 32, -{ 28: } 33, -{ 29: } 34, -{ 30: } 36, -{ 31: } 37, -{ 32: } 38, -{ 33: } 39, -{ 34: } 40, -{ 35: } 41, -{ 36: } 42, -{ 37: } 43, -{ 38: } 44, +{ 2: } 2, +{ 3: } 2, +{ 4: } 2, +{ 5: } 2, +{ 6: } 2, +{ 7: } 2, +{ 8: } 2, +{ 9: } 2, +{ 10: } 4, +{ 11: } 6, +{ 12: } 9, +{ 13: } 11, +{ 14: } 13, +{ 15: } 15, +{ 16: } 17, +{ 17: } 19, +{ 18: } 21, +{ 19: } 23, +{ 20: } 24, +{ 21: } 26, +{ 22: } 28, +{ 23: } 29, +{ 24: } 30, +{ 25: } 31, +{ 26: } 32, +{ 27: } 33, +{ 28: } 34, +{ 29: } 36, +{ 30: } 37, +{ 31: } 38, +{ 32: } 39, +{ 33: } 40, +{ 34: } 41, +{ 35: } 42, +{ 36: } 43, +{ 37: } 44, +{ 38: } 45, { 39: } 45, { 40: } 45, { 41: } 45, -{ 42: } 45, -{ 43: } 46, -{ 44: } 47, -{ 45: } 48, -{ 46: } 49, -{ 47: } 50, +{ 42: } 46, +{ 43: } 47, +{ 44: } 48, +{ 45: } 49, +{ 46: } 50, +{ 47: } 51, { 48: } 51, -{ 49: } 51, -{ 50: } 52, +{ 49: } 52, +{ 50: } 54, { 51: } 54, { 52: } 54, { 53: } 54, -{ 54: } 54, +{ 54: } 55, { 55: } 55, -{ 56: } 55, +{ 56: } 57, { 57: } 57, { 58: } 57, { 59: } 57, @@ -914,9 +1007,9 @@ yyml : array [0..yynstates-1] of Integer = ( { 63: } 57, { 64: } 57, { 65: } 57, -{ 66: } 57, -{ 67: } 58, -{ 68: } 59, +{ 66: } 58, +{ 67: } 59, +{ 68: } 60, { 69: } 60, { 70: } 60, { 71: } 60, @@ -938,97 +1031,6 @@ yyml : array [0..yynstates-1] of Integer = ( { 87: } 60 ); -yymh : array [0..yynstates-1] of Integer = ( -{ 0: } 1, -{ 1: } 2, -{ 2: } 2, -{ 3: } 2, -{ 4: } 2, -{ 5: } 2, -{ 6: } 2, -{ 7: } 2, -{ 8: } 2, -{ 9: } 2, -{ 10: } 3, -{ 11: } 5, -{ 12: } 8, -{ 13: } 10, -{ 14: } 12, -{ 15: } 14, -{ 16: } 16, -{ 17: } 18, -{ 18: } 20, -{ 19: } 22, -{ 20: } 23, -{ 21: } 25, -{ 22: } 27, -{ 23: } 28, -{ 24: } 29, -{ 25: } 30, -{ 26: } 31, -{ 27: } 32, -{ 28: } 33, -{ 29: } 35, -{ 30: } 36, -{ 31: } 37, -{ 32: } 38, -{ 33: } 39, -{ 34: } 40, -{ 35: } 41, -{ 36: } 42, -{ 37: } 43, -{ 38: } 44, -{ 39: } 44, -{ 40: } 44, -{ 41: } 44, -{ 42: } 45, -{ 43: } 46, -{ 44: } 47, -{ 45: } 48, -{ 46: } 49, -{ 47: } 50, -{ 48: } 50, -{ 49: } 51, -{ 50: } 53, -{ 51: } 53, -{ 52: } 53, -{ 53: } 53, -{ 54: } 54, -{ 55: } 54, -{ 56: } 56, -{ 57: } 56, -{ 58: } 56, -{ 59: } 56, -{ 60: } 56, -{ 61: } 56, -{ 62: } 56, -{ 63: } 56, -{ 64: } 56, -{ 65: } 56, -{ 66: } 57, -{ 67: } 58, -{ 68: } 59, -{ 69: } 59, -{ 70: } 59, -{ 71: } 59, -{ 72: } 59, -{ 73: } 59, -{ 74: } 59, -{ 75: } 59, -{ 76: } 59, -{ 77: } 59, -{ 78: } 59, -{ 79: } 59, -{ 80: } 59, -{ 81: } 59, -{ 82: } 59, -{ 83: } 59, -{ 84: } 59, -{ 85: } 59, -{ 86: } 59, -{ 87: } 59 -); - yytl : array [0..yynstates-1] of Integer = ( { 0: } 1, { 1: } 15, diff --git a/packages/fcl-res/src/rclex.l b/packages/fcl-res/src/rclex.l index b41959093e..d58bf1b080 100644 --- a/packages/fcl-res/src/rclex.l +++ b/packages/fcl-res/src/rclex.l @@ -75,8 +75,8 @@ IDENT [a-zA-Z_]([a-zA-Z0-9_])* <INCOMMENT>"*/" start(0); <INCOMMENT>\0 return(_ILLEGAL); -{D}*L? return(_NUMDECIMAL); -0x{H}*L? return(_NUMHEX); +{D}*L? return(_NUMBER); +0x{H}*L? return(_NUMBER); \" begin start(INSTRING); strbuf:= ''; end; <INSTRING>\"\" strbuf:= strbuf + '"'; <INSTRING>\" begin @@ -104,7 +104,7 @@ END|} return(_END); return(_ID); end; [ \t\n\f] ; -[,()] returnc(yytext[1]); +[,()|^&+-*/%~] returnc(yytext[1]); . return(_ILLEGAL); %% diff --git a/packages/fcl-res/src/rcparser.pas b/packages/fcl-res/src/rcparser.pas index f67ce4b064..4faef52eda 100644 --- a/packages/fcl-res/src/rcparser.pas +++ b/packages/fcl-res/src/rcparser.pas @@ -130,6 +130,14 @@ begin Result.v:= StrToInt(s); end; +function Max(a, b: LongWord): LongWord; inline; +begin + if a > b then + Result:= a + else + Result:= b; +end; + var aktresource: TAbstractResource; language: TLangID; @@ -233,54 +241,54 @@ end; var yycapture: AnsiString; const _ILLEGAL = 257; -const _NUMDECIMAL = 258; -const _NUMHEX = 259; -const _QUOTEDSTR = 260; -const _STR_StringFileInfo = 261; -const _STR_VarFileInfo = 262; -const _STR_Translation = 263; -const _BEGIN = 264; -const _END = 265; -const _ID = 266; -const _LANGUAGE = 267; -const _CHARACTERISTICS = 268; -const _VERSION = 269; -const _MOVEABLE = 270; -const _FIXED = 271; -const _PURE = 272; -const _IMPURE = 273; -const _PRELOAD = 274; -const _LOADONCALL = 275; -const _DISCARDABLE = 276; -const _BITMAP = 277; -const _CURSOR = 278; -const _ICON = 279; -const _STRINGTABLE = 280; -const _VERSIONINFO = 281; -const _ANICURSOR = 282; -const _ANIICON = 283; -const _DLGINCLUDE = 284; -const _DLGINIT = 285; -const _HTML = 286; -const _MANIFEST = 287; -const _MESSAGETABLE = 288; -const _PLUGPLAY = 289; -const _RCDATA = 290; -const _VXD = 291; -const _FILEVERSION = 292; -const _PRODUCTVERSION = 293; -const _FILEFLAGSMASK = 294; -const _FILEFLAGS = 295; -const _FILEOS = 296; -const _FILETYPE = 297; -const _FILESUBTYPE = 298; -const _BLOCK = 299; -const _VALUE = 300; -const _ACCELERATORS = 301; -const _DIALOG = 302; -const _DIALOGEX = 303; -const _MENU = 304; -const _MENUEX = 305; +const _NUMBER = 258; +const _QUOTEDSTR = 259; +const _STR_StringFileInfo = 260; +const _STR_VarFileInfo = 261; +const _STR_Translation = 262; +const _BEGIN = 263; +const _END = 264; +const _ID = 265; +const _LANGUAGE = 266; +const _CHARACTERISTICS = 267; +const _VERSION = 268; +const _MOVEABLE = 269; +const _FIXED = 270; +const _PURE = 271; +const _IMPURE = 272; +const _PRELOAD = 273; +const _LOADONCALL = 274; +const _DISCARDABLE = 275; +const _BITMAP = 276; +const _CURSOR = 277; +const _ICON = 278; +const _STRINGTABLE = 279; +const _VERSIONINFO = 280; +const _ANICURSOR = 281; +const _ANIICON = 282; +const _DLGINCLUDE = 283; +const _DLGINIT = 284; +const _HTML = 285; +const _MANIFEST = 286; +const _MESSAGETABLE = 287; +const _PLUGPLAY = 288; +const _RCDATA = 289; +const _VXD = 290; +const _FILEVERSION = 291; +const _PRODUCTVERSION = 292; +const _FILEFLAGSMASK = 293; +const _FILEFLAGS = 294; +const _FILEOS = 295; +const _FILETYPE = 296; +const _FILESUBTYPE = 297; +const _BLOCK = 298; +const _VALUE = 299; +const _ACCELERATORS = 300; +const _DIALOG = 301; +const _DIALOGEX = 302; +const _MENU = 303; +const _MENUEX = 304; +const _NUMNEG = 305; type YYSType = record case Integer of 1 : ( yyString : String ); @@ -525,54 +533,81 @@ begin yyval.yyrcnumtype:= str_to_num(yytext); end; 76 : begin - yyval.yyrcnumtype:= str_to_num(yytext); + yyval := yyv[yysp-0]; end; 77 : begin - yyval := yyv[yysp-0]; + yyval.yyrcnumtype:= yyv[yysp-1].yyrcnumtype; end; 78 : begin - yyval.yyrcnumtype:= yyv[yysp-1].yyrcnumtype; + yyval.yyrcnumtype.v:= not yyv[yysp-0].yyrcnumtype.v; yyval.yyrcnumtype.long:= yyv[yysp-0].yyrcnumtype.long; end; 79 : begin - yyval.yyString:= yytext; + yyval.yyrcnumtype.v:= -yyv[yysp-0].yyrcnumtype.v; yyval.yyrcnumtype.long:= yyv[yysp-0].yyrcnumtype.long; end; 80 : begin - yyval := yyv[yysp-0]; + yyval.yyrcnumtype.v:= yyv[yysp-2].yyrcnumtype.v * yyv[yysp-0].yyrcnumtype.v; yyval.yyrcnumtype.long:= yyv[yysp-2].yyrcnumtype.long or yyv[yysp-0].yyrcnumtype.long; end; 81 : begin - yyval.yyTFileStream:= TFileStream.Create(yytext, fmOpenRead or fmShareDenyWrite); + yyval.yyrcnumtype.v:= yyv[yysp-2].yyrcnumtype.v div Max(1, yyv[yysp-0].yyrcnumtype.v); yyval.yyrcnumtype.long:= yyv[yysp-2].yyrcnumtype.long or yyv[yysp-0].yyrcnumtype.long; end; 82 : begin - yyval.yyString:= yytext; + yyval.yyrcnumtype.v:= yyv[yysp-2].yyrcnumtype.v mod Max(1, yyv[yysp-0].yyrcnumtype.v); yyval.yyrcnumtype.long:= yyv[yysp-2].yyrcnumtype.long or yyv[yysp-0].yyrcnumtype.long; end; 83 : begin - yyval.yyString:= yytext; + yyval.yyrcnumtype.v:= yyv[yysp-2].yyrcnumtype.v + yyv[yysp-0].yyrcnumtype.v; yyval.yyrcnumtype.long:= yyv[yysp-2].yyrcnumtype.long or yyv[yysp-0].yyrcnumtype.long; end; 84 : begin - yyval.yyString:= yytext; + yyval.yyrcnumtype.v:= yyv[yysp-2].yyrcnumtype.v - yyv[yysp-0].yyrcnumtype.v; yyval.yyrcnumtype.long:= yyv[yysp-2].yyrcnumtype.long or yyv[yysp-0].yyrcnumtype.long; end; 85 : begin - yyval.yyString:= yytext; + yyval.yyrcnumtype.v:= yyv[yysp-2].yyrcnumtype.v and yyv[yysp-0].yyrcnumtype.v; yyval.yyrcnumtype.long:= yyv[yysp-2].yyrcnumtype.long or yyv[yysp-0].yyrcnumtype.long; end; 86 : begin - yyval.yyTMemoryStream:= TMemoryStream.Create; + yyval.yyrcnumtype.v:= yyv[yysp-2].yyrcnumtype.v xor yyv[yysp-0].yyrcnumtype.v; yyval.yyrcnumtype.long:= yyv[yysp-2].yyrcnumtype.long or yyv[yysp-0].yyrcnumtype.long; end; 87 : begin - yyval := yyv[yysp-1]; + yyval.yyrcnumtype.v:= yyv[yysp-2].yyrcnumtype.v or yyv[yysp-0].yyrcnumtype.v; yyval.yyrcnumtype.long:= yyv[yysp-2].yyrcnumtype.long or yyv[yysp-0].yyrcnumtype.long; end; 88 : begin - yyval.yyTMemoryStream:= yyv[yysp-1].yyTMemoryStream; + yyval.yyString:= yytext; end; 89 : begin - yyval := yyv[yysp-3]; + yyval := yyv[yysp-0]; end; 90 : begin + yyval.yyTFileStream:= TFileStream.Create(yytext, fmOpenRead or fmShareDenyWrite); + end; + 91 : begin + yyval.yyString:= yytext; + end; + 92 : begin + yyval.yyString:= yytext; + end; + 93 : begin + yyval.yyString:= yytext; + end; + 94 : begin + yyval.yyString:= yytext; + end; + 95 : begin + yyval.yyTMemoryStream:= TMemoryStream.Create; + end; + 96 : begin + yyval := yyv[yysp-1]; + end; + 97 : begin + yyval.yyTMemoryStream:= yyv[yysp-1].yyTMemoryStream; + end; + 98 : begin + yyval := yyv[yysp-3]; + end; + 99 : begin yyval.yyTMemoryStream:= yyv[yysp-1].yyTMemoryStream; yyval.yyTMemoryStream.WriteBuffer(yyv[yysp-0].yyString[1], Length(yyv[yysp-0].yyString)); end; - 91 : begin + 100 : begin yyval.yyTMemoryStream:= yyv[yysp-1].yyTMemoryStream; if yyv[yysp-0].yyrcnumtype.long then @@ -595,25 +630,26 @@ type YYARec = record const -yynacts = 261; -yyngotos = 121; -yynstates = 160; -yynrules = 91; +yynacts = 619; +yyngotos = 141; +yynstates = 179; +yynrules = 100; yya : array [1..yynacts] of YYARec = ( { 0: } { 1: } ( sym: 0; act: 0 ), ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), - ( sym: 260; act: 20 ), - ( sym: 261; act: 21 ), - ( sym: 262; act: 22 ), - ( sym: 263; act: 23 ), - ( sym: 266; act: 24 ), - ( sym: 267; act: 25 ), - ( sym: 280; act: 26 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), + ( sym: 259; act: 21 ), + ( sym: 260; act: 22 ), + ( sym: 261; act: 23 ), + ( sym: 262; act: 24 ), + ( sym: 265; act: 25 ), + ( sym: 266; act: 26 ), + ( sym: 279; act: 27 ), { 2: } { 3: } { 4: } @@ -625,53 +661,117 @@ yya : array [1..yynacts] of YYARec = ( { 10: } { 11: } ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), - ( sym: 260; act: 20 ), - ( sym: 261; act: 21 ), - ( sym: 262; act: 22 ), - ( sym: 263; act: 23 ), - ( sym: 266; act: 24 ), - ( sym: 277; act: 29 ), - ( sym: 278; act: 30 ), - ( sym: 279; act: 31 ), - ( sym: 281; act: 32 ), - ( sym: 282; act: 33 ), - ( sym: 283; act: 34 ), - ( sym: 284; act: 35 ), - ( sym: 285; act: 36 ), - ( sym: 286; act: 37 ), - ( sym: 287; act: 38 ), - ( sym: 288; act: 39 ), - ( sym: 289; act: 40 ), - ( sym: 290; act: 41 ), - ( sym: 291; act: 42 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), + ( sym: 259; act: 21 ), + ( sym: 260; act: 22 ), + ( sym: 261; act: 23 ), + ( sym: 262; act: 24 ), + ( sym: 265; act: 25 ), + ( sym: 276; act: 30 ), + ( sym: 277; act: 31 ), + ( sym: 278; act: 32 ), + ( sym: 280; act: 33 ), + ( sym: 281; act: 34 ), + ( sym: 282; act: 35 ), + ( sym: 283; act: 36 ), + ( sym: 284; act: 37 ), + ( sym: 285; act: 38 ), + ( sym: 286; act: 39 ), + ( sym: 287; act: 40 ), + ( sym: 288; act: 41 ), + ( sym: 289; act: 42 ), + ( sym: 290; act: 43 ), { 12: } { 13: } { 14: } { 15: } + ( sym: 37; act: 44 ), + ( sym: 38; act: 45 ), + ( sym: 42; act: 46 ), + ( sym: 43; act: 47 ), + ( sym: 45; act: 48 ), + ( sym: 47; act: 49 ), + ( sym: 94; act: 50 ), + ( sym: 124; act: 51 ), + ( sym: 0; act: -74 ), + ( sym: 40; act: -74 ), + ( sym: 44; act: -74 ), + ( sym: 126; act: -74 ), + ( sym: 258; act: -74 ), + ( sym: 259; act: -74 ), + ( sym: 260; act: -74 ), + ( sym: 261; act: -74 ), + ( sym: 262; act: -74 ), + ( sym: 263; act: -74 ), + ( sym: 265; act: -74 ), + ( sym: 266; act: -74 ), + ( sym: 267; act: -74 ), + ( sym: 268; act: -74 ), + ( sym: 269; act: -74 ), + ( sym: 270; act: -74 ), + ( sym: 271; act: -74 ), + ( sym: 272; act: -74 ), + ( sym: 273; act: -74 ), + ( sym: 274; act: -74 ), + ( sym: 275; act: -74 ), + ( sym: 276; act: -74 ), + ( sym: 277; act: -74 ), + ( sym: 278; act: -74 ), + ( sym: 279; act: -74 ), + ( sym: 280; act: -74 ), + ( sym: 281; act: -74 ), + ( sym: 282; act: -74 ), + ( sym: 283; act: -74 ), + ( sym: 284; act: -74 ), + ( sym: 285; act: -74 ), + ( sym: 286; act: -74 ), + ( sym: 287; act: -74 ), + ( sym: 288; act: -74 ), + ( sym: 289; act: -74 ), + ( sym: 290; act: -74 ), + ( sym: 291; act: -74 ), + ( sym: 292; act: -74 ), + ( sym: 293; act: -74 ), + ( sym: 294; act: -74 ), + ( sym: 295; act: -74 ), + ( sym: 296; act: -74 ), + ( sym: 297; act: -74 ), { 16: } { 17: } ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 18: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 19: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 20: } { 21: } { 22: } { 23: } { 24: } { 25: } - ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), { 26: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 27: } +{ 28: } + ( sym: 259; act: -38 ), ( sym: 260; act: -38 ), ( sym: 261; act: -38 ), ( sym: 262; act: -38 ), - ( sym: 263; act: -38 ), + ( sym: 266; act: -38 ), ( sym: 267; act: -38 ), ( sym: 268; act: -38 ), ( sym: 269; act: -38 ), @@ -681,9 +781,7 @@ yya : array [1..yynacts] of YYARec = ( ( sym: 273; act: -38 ), ( sym: 274; act: -38 ), ( sym: 275; act: -38 ), - ( sym: 276; act: -38 ), - ( sym: 264; act: -40 ), -{ 28: } + ( sym: 263; act: -40 ), { 29: } { 30: } { 31: } @@ -699,329 +797,643 @@ yya : array [1..yynacts] of YYARec = ( { 41: } { 42: } { 43: } - ( sym: 41; act: 52 ), { 44: } - ( sym: 44; act: 53 ), + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 45: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 46: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 47: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 48: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 49: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 50: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 51: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 52: } + ( sym: 37; act: 44 ), + ( sym: 38; act: 45 ), + ( sym: 41; act: 71 ), + ( sym: 42; act: 46 ), + ( sym: 43; act: 47 ), + ( sym: 45; act: 48 ), + ( sym: 47; act: 49 ), + ( sym: 94; act: 50 ), + ( sym: 124; act: 51 ), { 53: } - ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), { 54: } - ( sym: 264; act: 63 ), - ( sym: 267; act: 64 ), - ( sym: 268; act: 65 ), - ( sym: 269; act: 66 ), - ( sym: 270; act: 67 ), - ( sym: 271; act: 68 ), - ( sym: 272; act: 69 ), - ( sym: 273; act: 70 ), - ( sym: 274; act: 71 ), - ( sym: 275; act: 72 ), - ( sym: 276; act: 73 ), { 55: } - ( sym: 264; act: 74 ), - ( sym: 267; act: 64 ), - ( sym: 268; act: 65 ), - ( sym: 269; act: 66 ), - ( sym: 270; act: 67 ), - ( sym: 271; act: 68 ), - ( sym: 272; act: 69 ), - ( sym: 273; act: 70 ), - ( sym: 274; act: 71 ), - ( sym: 275; act: 72 ), - ( sym: 276; act: 73 ), + ( sym: 44; act: 72 ), { 56: } - ( sym: 260; act: 20 ), - ( sym: 261; act: 21 ), - ( sym: 262; act: 22 ), - ( sym: 263; act: 23 ), - ( sym: 267; act: 64 ), - ( sym: 268; act: 65 ), - ( sym: 269; act: 66 ), - ( sym: 270; act: 67 ), - ( sym: 271; act: 68 ), - ( sym: 272; act: 69 ), - ( sym: 273; act: 70 ), - ( sym: 274; act: 71 ), - ( sym: 275; act: 72 ), - ( sym: 276; act: 73 ), { 57: } - ( sym: 260; act: 20 ), - ( sym: 261; act: 21 ), - ( sym: 262; act: 22 ), - ( sym: 263; act: 23 ), - ( sym: 267; act: 64 ), - ( sym: 268; act: 65 ), - ( sym: 269; act: 66 ), - ( sym: 270; act: 67 ), - ( sym: 271; act: 68 ), - ( sym: 272; act: 69 ), - ( sym: 273; act: 70 ), - ( sym: 274; act: 71 ), - ( sym: 275; act: 72 ), - ( sym: 276; act: 73 ), { 58: } - ( sym: 260; act: 20 ), - ( sym: 261; act: 21 ), - ( sym: 262; act: 22 ), - ( sym: 263; act: 23 ), - ( sym: 267; act: 64 ), - ( sym: 268; act: 65 ), - ( sym: 269; act: 66 ), - ( sym: 270; act: 67 ), - ( sym: 271; act: 68 ), - ( sym: 272; act: 69 ), - ( sym: 273; act: 70 ), - ( sym: 274; act: 71 ), - ( sym: 275; act: 72 ), - ( sym: 276; act: 73 ), { 59: } - ( sym: 260; act: 20 ), - ( sym: 261; act: 21 ), - ( sym: 262; act: 22 ), - ( sym: 263; act: 23 ), - ( sym: 267; act: 64 ), - ( sym: 268; act: 65 ), - ( sym: 269; act: 66 ), - ( sym: 270; act: 67 ), - ( sym: 271; act: 68 ), - ( sym: 272; act: 69 ), - ( sym: 273; act: 70 ), - ( sym: 274; act: 71 ), - ( sym: 275; act: 72 ), - ( sym: 276; act: 73 ), { 60: } - ( sym: 264; act: 80 ), - ( sym: 292; act: 81 ), - ( sym: 293; act: 82 ), - ( sym: 294; act: 83 ), - ( sym: 295; act: 84 ), - ( sym: 296; act: 85 ), - ( sym: 297; act: 86 ), - ( sym: 298; act: 87 ), { 61: } { 62: } { 63: } { 64: } - ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 37; act: 44 ), + ( sym: 42; act: 46 ), + ( sym: 43; act: 47 ), + ( sym: 45; act: 48 ), + ( sym: 47; act: 49 ), + ( sym: 0; act: -85 ), + ( sym: 38; act: -85 ), + ( sym: 40; act: -85 ), + ( sym: 41; act: -85 ), + ( sym: 44; act: -85 ), + ( sym: 94; act: -85 ), + ( sym: 124; act: -85 ), + ( sym: 126; act: -85 ), + ( sym: 258; act: -85 ), + ( sym: 259; act: -85 ), + ( sym: 260; act: -85 ), + ( sym: 261; act: -85 ), + ( sym: 262; act: -85 ), + ( sym: 263; act: -85 ), + ( sym: 265; act: -85 ), + ( sym: 266; act: -85 ), + ( sym: 267; act: -85 ), + ( sym: 268; act: -85 ), + ( sym: 269; act: -85 ), + ( sym: 270; act: -85 ), + ( sym: 271; act: -85 ), + ( sym: 272; act: -85 ), + ( sym: 273; act: -85 ), + ( sym: 274; act: -85 ), + ( sym: 275; act: -85 ), + ( sym: 276; act: -85 ), + ( sym: 277; act: -85 ), + ( sym: 278; act: -85 ), + ( sym: 279; act: -85 ), + ( sym: 280; act: -85 ), + ( sym: 281; act: -85 ), + ( sym: 282; act: -85 ), + ( sym: 283; act: -85 ), + ( sym: 284; act: -85 ), + ( sym: 285; act: -85 ), + ( sym: 286; act: -85 ), + ( sym: 287; act: -85 ), + ( sym: 288; act: -85 ), + ( sym: 289; act: -85 ), + ( sym: 290; act: -85 ), + ( sym: 291; act: -85 ), + ( sym: 292; act: -85 ), + ( sym: 293; act: -85 ), + ( sym: 294; act: -85 ), + ( sym: 295; act: -85 ), + ( sym: 296; act: -85 ), + ( sym: 297; act: -85 ), { 65: } - ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), { 66: } - ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 37; act: 44 ), + ( sym: 42; act: 46 ), + ( sym: 47; act: 49 ), + ( sym: 0; act: -83 ), + ( sym: 38; act: -83 ), + ( sym: 40; act: -83 ), + ( sym: 41; act: -83 ), + ( sym: 43; act: -83 ), + ( sym: 44; act: -83 ), + ( sym: 45; act: -83 ), + ( sym: 94; act: -83 ), + ( sym: 124; act: -83 ), + ( sym: 126; act: -83 ), + ( sym: 258; act: -83 ), + ( sym: 259; act: -83 ), + ( sym: 260; act: -83 ), + ( sym: 261; act: -83 ), + ( sym: 262; act: -83 ), + ( sym: 263; act: -83 ), + ( sym: 265; act: -83 ), + ( sym: 266; act: -83 ), + ( sym: 267; act: -83 ), + ( sym: 268; act: -83 ), + ( sym: 269; act: -83 ), + ( sym: 270; act: -83 ), + ( sym: 271; act: -83 ), + ( sym: 272; act: -83 ), + ( sym: 273; act: -83 ), + ( sym: 274; act: -83 ), + ( sym: 275; act: -83 ), + ( sym: 276; act: -83 ), + ( sym: 277; act: -83 ), + ( sym: 278; act: -83 ), + ( sym: 279; act: -83 ), + ( sym: 280; act: -83 ), + ( sym: 281; act: -83 ), + ( sym: 282; act: -83 ), + ( sym: 283; act: -83 ), + ( sym: 284; act: -83 ), + ( sym: 285; act: -83 ), + ( sym: 286; act: -83 ), + ( sym: 287; act: -83 ), + ( sym: 288; act: -83 ), + ( sym: 289; act: -83 ), + ( sym: 290; act: -83 ), + ( sym: 291; act: -83 ), + ( sym: 292; act: -83 ), + ( sym: 293; act: -83 ), + ( sym: 294; act: -83 ), + ( sym: 295; act: -83 ), + ( sym: 296; act: -83 ), + ( sym: 297; act: -83 ), { 67: } + ( sym: 37; act: 44 ), + ( sym: 42; act: 46 ), + ( sym: 47; act: 49 ), + ( sym: 0; act: -84 ), + ( sym: 38; act: -84 ), + ( sym: 40; act: -84 ), + ( sym: 41; act: -84 ), + ( sym: 43; act: -84 ), + ( sym: 44; act: -84 ), + ( sym: 45; act: -84 ), + ( sym: 94; act: -84 ), + ( sym: 124; act: -84 ), + ( sym: 126; act: -84 ), + ( sym: 258; act: -84 ), + ( sym: 259; act: -84 ), + ( sym: 260; act: -84 ), + ( sym: 261; act: -84 ), + ( sym: 262; act: -84 ), + ( sym: 263; act: -84 ), + ( sym: 265; act: -84 ), + ( sym: 266; act: -84 ), + ( sym: 267; act: -84 ), + ( sym: 268; act: -84 ), + ( sym: 269; act: -84 ), + ( sym: 270; act: -84 ), + ( sym: 271; act: -84 ), + ( sym: 272; act: -84 ), + ( sym: 273; act: -84 ), + ( sym: 274; act: -84 ), + ( sym: 275; act: -84 ), + ( sym: 276; act: -84 ), + ( sym: 277; act: -84 ), + ( sym: 278; act: -84 ), + ( sym: 279; act: -84 ), + ( sym: 280; act: -84 ), + ( sym: 281; act: -84 ), + ( sym: 282; act: -84 ), + ( sym: 283; act: -84 ), + ( sym: 284; act: -84 ), + ( sym: 285; act: -84 ), + ( sym: 286; act: -84 ), + ( sym: 287; act: -84 ), + ( sym: 288; act: -84 ), + ( sym: 289; act: -84 ), + ( sym: 290; act: -84 ), + ( sym: 291; act: -84 ), + ( sym: 292; act: -84 ), + ( sym: 293; act: -84 ), + ( sym: 294; act: -84 ), + ( sym: 295; act: -84 ), + ( sym: 296; act: -84 ), + ( sym: 297; act: -84 ), { 68: } { 69: } + ( sym: 37; act: 44 ), + ( sym: 38; act: 45 ), + ( sym: 42; act: 46 ), + ( sym: 43; act: 47 ), + ( sym: 45; act: 48 ), + ( sym: 47; act: 49 ), + ( sym: 0; act: -86 ), + ( sym: 40; act: -86 ), + ( sym: 41; act: -86 ), + ( sym: 44; act: -86 ), + ( sym: 94; act: -86 ), + ( sym: 124; act: -86 ), + ( sym: 126; act: -86 ), + ( sym: 258; act: -86 ), + ( sym: 259; act: -86 ), + ( sym: 260; act: -86 ), + ( sym: 261; act: -86 ), + ( sym: 262; act: -86 ), + ( sym: 263; act: -86 ), + ( sym: 265; act: -86 ), + ( sym: 266; act: -86 ), + ( sym: 267; act: -86 ), + ( sym: 268; act: -86 ), + ( sym: 269; act: -86 ), + ( sym: 270; act: -86 ), + ( sym: 271; act: -86 ), + ( sym: 272; act: -86 ), + ( sym: 273; act: -86 ), + ( sym: 274; act: -86 ), + ( sym: 275; act: -86 ), + ( sym: 276; act: -86 ), + ( sym: 277; act: -86 ), + ( sym: 278; act: -86 ), + ( sym: 279; act: -86 ), + ( sym: 280; act: -86 ), + ( sym: 281; act: -86 ), + ( sym: 282; act: -86 ), + ( sym: 283; act: -86 ), + ( sym: 284; act: -86 ), + ( sym: 285; act: -86 ), + ( sym: 286; act: -86 ), + ( sym: 287; act: -86 ), + ( sym: 288; act: -86 ), + ( sym: 289; act: -86 ), + ( sym: 290; act: -86 ), + ( sym: 291; act: -86 ), + ( sym: 292; act: -86 ), + ( sym: 293; act: -86 ), + ( sym: 294; act: -86 ), + ( sym: 295; act: -86 ), + ( sym: 296; act: -86 ), + ( sym: 297; act: -86 ), { 70: } + ( sym: 37; act: 44 ), + ( sym: 38; act: 45 ), + ( sym: 42; act: 46 ), + ( sym: 43; act: 47 ), + ( sym: 45; act: 48 ), + ( sym: 47; act: 49 ), + ( sym: 94; act: 50 ), + ( sym: 0; act: -87 ), + ( sym: 40; act: -87 ), + ( sym: 41; act: -87 ), + ( sym: 44; act: -87 ), + ( sym: 124; act: -87 ), + ( sym: 126; act: -87 ), + ( sym: 258; act: -87 ), + ( sym: 259; act: -87 ), + ( sym: 260; act: -87 ), + ( sym: 261; act: -87 ), + ( sym: 262; act: -87 ), + ( sym: 263; act: -87 ), + ( sym: 265; act: -87 ), + ( sym: 266; act: -87 ), + ( sym: 267; act: -87 ), + ( sym: 268; act: -87 ), + ( sym: 269; act: -87 ), + ( sym: 270; act: -87 ), + ( sym: 271; act: -87 ), + ( sym: 272; act: -87 ), + ( sym: 273; act: -87 ), + ( sym: 274; act: -87 ), + ( sym: 275; act: -87 ), + ( sym: 276; act: -87 ), + ( sym: 277; act: -87 ), + ( sym: 278; act: -87 ), + ( sym: 279; act: -87 ), + ( sym: 280; act: -87 ), + ( sym: 281; act: -87 ), + ( sym: 282; act: -87 ), + ( sym: 283; act: -87 ), + ( sym: 284; act: -87 ), + ( sym: 285; act: -87 ), + ( sym: 286; act: -87 ), + ( sym: 287; act: -87 ), + ( sym: 288; act: -87 ), + ( sym: 289; act: -87 ), + ( sym: 290; act: -87 ), + ( sym: 291; act: -87 ), + ( sym: 292; act: -87 ), + ( sym: 293; act: -87 ), + ( sym: 294; act: -87 ), + ( sym: 295; act: -87 ), + ( sym: 296; act: -87 ), + ( sym: 297; act: -87 ), { 71: } { 72: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 73: } + ( sym: 263; act: 82 ), + ( sym: 266; act: 83 ), + ( sym: 267; act: 84 ), + ( sym: 268; act: 85 ), + ( sym: 269; act: 86 ), + ( sym: 270; act: 87 ), + ( sym: 271; act: 88 ), + ( sym: 272; act: 89 ), + ( sym: 273; act: 90 ), + ( sym: 274; act: 91 ), + ( sym: 275; act: 92 ), { 74: } + ( sym: 263; act: 93 ), + ( sym: 266; act: 83 ), + ( sym: 267; act: 84 ), + ( sym: 268; act: 85 ), + ( sym: 269; act: 86 ), + ( sym: 270; act: 87 ), + ( sym: 271; act: 88 ), + ( sym: 272; act: 89 ), + ( sym: 273; act: 90 ), + ( sym: 274; act: 91 ), + ( sym: 275; act: 92 ), { 75: } + ( sym: 259; act: 21 ), + ( sym: 260; act: 22 ), + ( sym: 261; act: 23 ), + ( sym: 262; act: 24 ), + ( sym: 266; act: 83 ), + ( sym: 267; act: 84 ), + ( sym: 268; act: 85 ), + ( sym: 269; act: 86 ), + ( sym: 270; act: 87 ), + ( sym: 271; act: 88 ), + ( sym: 272; act: 89 ), + ( sym: 273; act: 90 ), + ( sym: 274; act: 91 ), + ( sym: 275; act: 92 ), { 76: } + ( sym: 259; act: 21 ), + ( sym: 260; act: 22 ), + ( sym: 261; act: 23 ), + ( sym: 262; act: 24 ), + ( sym: 266; act: 83 ), + ( sym: 267; act: 84 ), + ( sym: 268; act: 85 ), + ( sym: 269; act: 86 ), + ( sym: 270; act: 87 ), + ( sym: 271; act: 88 ), + ( sym: 272; act: 89 ), + ( sym: 273; act: 90 ), + ( sym: 274; act: 91 ), + ( sym: 275; act: 92 ), { 77: } + ( sym: 259; act: 21 ), + ( sym: 260; act: 22 ), + ( sym: 261; act: 23 ), + ( sym: 262; act: 24 ), + ( sym: 266; act: 83 ), + ( sym: 267; act: 84 ), + ( sym: 268; act: 85 ), + ( sym: 269; act: 86 ), + ( sym: 270; act: 87 ), + ( sym: 271; act: 88 ), + ( sym: 272; act: 89 ), + ( sym: 273; act: 90 ), + ( sym: 274; act: 91 ), + ( sym: 275; act: 92 ), { 78: } + ( sym: 259; act: 21 ), + ( sym: 260; act: 22 ), + ( sym: 261; act: 23 ), + ( sym: 262; act: 24 ), + ( sym: 266; act: 83 ), + ( sym: 267; act: 84 ), + ( sym: 268; act: 85 ), + ( sym: 269; act: 86 ), + ( sym: 270; act: 87 ), + ( sym: 271; act: 88 ), + ( sym: 272; act: 89 ), + ( sym: 273; act: 90 ), + ( sym: 274; act: 91 ), + ( sym: 275; act: 92 ), { 79: } + ( sym: 263; act: 99 ), + ( sym: 291; act: 100 ), + ( sym: 292; act: 101 ), + ( sym: 293; act: 102 ), + ( sym: 294; act: 103 ), + ( sym: 295; act: 104 ), + ( sym: 296; act: 105 ), + ( sym: 297; act: 106 ), { 80: } { 81: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), { 82: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), { 83: } ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 84: } ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 85: } ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 86: } - ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), { 87: } - ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), { 88: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), - ( sym: 265; act: 104 ), { 89: } - ( sym: 44; act: 105 ), { 90: } { 91: } { 92: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), - ( sym: 260; act: 20 ), - ( sym: 261; act: 21 ), - ( sym: 262; act: 22 ), - ( sym: 263; act: 23 ), { 93: } - ( sym: 44; act: 109 ), - ( sym: 265; act: 110 ), { 94: } - ( sym: 265; act: 111 ), - ( sym: 299; act: 112 ), { 95: } - ( sym: 44; act: 113 ), { 96: } - ( sym: 44; act: 114 ), { 97: } { 98: } { 99: } { 100: } + ( sym: 258; act: 20 ), { 101: } + ( sym: 258; act: 20 ), { 102: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 103: } - ( sym: 44; act: 116 ), - ( sym: 260; act: 20 ), - ( sym: 261; act: 21 ), - ( sym: 262; act: 22 ), - ( sym: 263; act: 23 ), + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 104: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 105: } ( sym: 40; act: 17 ), - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 106: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 107: } + ( sym: 258; act: 20 ), + ( sym: 264; act: 123 ), { 108: } + ( sym: 44; act: 124 ), { 109: } { 110: } { 111: } + ( sym: 258; act: 20 ), + ( sym: 259; act: 21 ), + ( sym: 260; act: 22 ), + ( sym: 261; act: 23 ), + ( sym: 262; act: 24 ), { 112: } - ( sym: 261; act: 119 ), - ( sym: 262; act: 120 ), + ( sym: 44; act: 128 ), + ( sym: 264; act: 129 ), { 113: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 264; act: 130 ), + ( sym: 298; act: 131 ), { 114: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 44; act: 132 ), { 115: } + ( sym: 44; act: 133 ), { 116: } - ( sym: 260; act: 20 ), - ( sym: 261; act: 21 ), - ( sym: 262; act: 22 ), - ( sym: 263; act: 23 ), { 117: } { 118: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), - ( sym: 260; act: 20 ), - ( sym: 261; act: 21 ), - ( sym: 262; act: 22 ), - ( sym: 263; act: 23 ), { 119: } - ( sym: 264; act: 125 ), { 120: } - ( sym: 264; act: 126 ), { 121: } - ( sym: 44; act: 127 ), { 122: } - ( sym: 44; act: 128 ), + ( sym: 44; act: 135 ), + ( sym: 259; act: 21 ), + ( sym: 260; act: 22 ), + ( sym: 261; act: 23 ), + ( sym: 262; act: 24 ), { 123: } { 124: } + ( sym: 40; act: 17 ), + ( sym: 45; act: 18 ), + ( sym: 126; act: 19 ), + ( sym: 258; act: 20 ), { 125: } { 126: } - ( sym: 300; act: 131 ), { 127: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), { 128: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), { 129: } - ( sym: 265; act: 134 ), - ( sym: 299; act: 135 ), { 130: } - ( sym: 265; act: 136 ), { 131: } - ( sym: 263; act: 137 ), + ( sym: 260; act: 138 ), + ( sym: 261; act: 139 ), { 132: } - ( sym: 44; act: 138 ), + ( sym: 258; act: 20 ), { 133: } - ( sym: 44; act: 139 ), + ( sym: 258; act: 20 ), { 134: } { 135: } - ( sym: 260; act: 20 ), - ( sym: 261; act: 21 ), - ( sym: 262; act: 22 ), - ( sym: 263; act: 23 ), + ( sym: 259; act: 21 ), + ( sym: 260; act: 22 ), + ( sym: 261; act: 23 ), + ( sym: 262; act: 24 ), { 136: } { 137: } - ( sym: 44; act: 141 ), + ( sym: 258; act: 20 ), + ( sym: 259; act: 21 ), + ( sym: 260; act: 22 ), + ( sym: 261; act: 23 ), + ( sym: 262; act: 24 ), { 138: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 263; act: 144 ), { 139: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 263; act: 145 ), { 140: } - ( sym: 264; act: 144 ), + ( sym: 44; act: 146 ), { 141: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 44; act: 147 ), { 142: } { 143: } { 144: } { 145: } - ( sym: 44; act: 148 ), - ( sym: 265; act: -35 ), + ( sym: 299; act: 150 ), { 146: } - ( sym: 44; act: 149 ), + ( sym: 258; act: 20 ), { 147: } + ( sym: 258; act: 20 ), { 148: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 264; act: 153 ), + ( sym: 298; act: 154 ), { 149: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), + ( sym: 264; act: 155 ), { 150: } - ( sym: 265; act: 153 ), - ( sym: 300; act: 154 ), + ( sym: 262; act: 156 ), { 151: } - ( sym: 44; act: 155 ), + ( sym: 44; act: 157 ), { 152: } + ( sym: 44; act: 158 ), { 153: } { 154: } - ( sym: 260; act: 20 ), - ( sym: 261; act: 21 ), - ( sym: 262; act: 22 ), - ( sym: 263; act: 23 ), + ( sym: 259; act: 21 ), + ( sym: 260; act: 22 ), + ( sym: 261; act: 23 ), + ( sym: 262; act: 24 ), { 155: } - ( sym: 258; act: 18 ), - ( sym: 259; act: 19 ), { 156: } - ( sym: 44; act: 158 ), + ( sym: 44; act: 160 ), { 157: } + ( sym: 258; act: 20 ), { 158: } - ( sym: 260; act: 20 ), - ( sym: 261; act: 21 ), - ( sym: 262; act: 22 ), - ( sym: 263; act: 23 ) + ( sym: 258; act: 20 ), { 159: } + ( sym: 263; act: 163 ), +{ 160: } + ( sym: 258; act: 20 ), +{ 161: } +{ 162: } +{ 163: } +{ 164: } + ( sym: 44; act: 167 ), + ( sym: 264; act: -35 ), +{ 165: } + ( sym: 44; act: 168 ), +{ 166: } +{ 167: } + ( sym: 258; act: 20 ), +{ 168: } + ( sym: 258; act: 20 ), +{ 169: } + ( sym: 264; act: 172 ), + ( sym: 299; act: 173 ), +{ 170: } + ( sym: 44; act: 174 ), +{ 171: } +{ 172: } +{ 173: } + ( sym: 259; act: 21 ), + ( sym: 260; act: 22 ), + ( sym: 261; act: 23 ), + ( sym: 262; act: 24 ), +{ 174: } + ( sym: 258; act: 20 ), +{ 175: } + ( sym: 44; act: 177 ), +{ 176: } +{ 177: } + ( sym: 259; act: 21 ), + ( sym: 260; act: 22 ), + ( sym: 261; act: 23 ), + ( sym: 262; act: 24 ) +{ 178: } ); yyg : array [1..yyngotos] of YYARec = ( @@ -1053,8 +1465,8 @@ yyg : array [1..yyngotos] of YYARec = ( { 9: } { 10: } { 11: } - ( sym: -9; act: 27 ), - ( sym: -8; act: 28 ), + ( sym: -9; act: 28 ), + ( sym: -8; act: 29 ), ( sym: -7; act: 12 ), ( sym: -5; act: 13 ), ( sym: -4; act: 14 ), @@ -1067,33 +1479,37 @@ yyg : array [1..yyngotos] of YYARec = ( { 16: } { 17: } ( sym: -4; act: 14 ), - ( sym: -3; act: 43 ), + ( sym: -3; act: 52 ), { 18: } + ( sym: -4; act: 14 ), + ( sym: -3; act: 53 ), { 19: } + ( sym: -4; act: 14 ), + ( sym: -3; act: 54 ), { 20: } { 21: } { 22: } { 23: } { 24: } { 25: } +{ 26: } ( sym: -4; act: 14 ), ( sym: -3; act: 15 ), - ( sym: -2; act: 44 ), -{ 26: } - ( sym: -36; act: 45 ), + ( sym: -2; act: 55 ), { 27: } - ( sym: -35; act: 46 ), - ( sym: -34; act: 47 ), + ( sym: -36; act: 56 ), { 28: } + ( sym: -35; act: 57 ), + ( sym: -34; act: 58 ), { 29: } - ( sym: -23; act: 48 ), { 30: } - ( sym: -24; act: 49 ), + ( sym: -23; act: 59 ), { 31: } - ( sym: -25; act: 50 ), + ( sym: -24; act: 60 ), { 32: } - ( sym: -27; act: 51 ), + ( sym: -25; act: 61 ), { 33: } + ( sym: -27; act: 62 ), { 34: } { 35: } { 36: } @@ -1105,207 +1521,242 @@ yyg : array [1..yyngotos] of YYARec = ( { 42: } { 43: } { 44: } + ( sym: -4; act: 14 ), + ( sym: -3; act: 63 ), { 45: } - ( sym: -22; act: 54 ), + ( sym: -4; act: 14 ), + ( sym: -3; act: 64 ), { 46: } - ( sym: -22; act: 55 ), + ( sym: -4; act: 14 ), + ( sym: -3; act: 65 ), { 47: } - ( sym: -22; act: 56 ), + ( sym: -4; act: 14 ), + ( sym: -3; act: 66 ), { 48: } - ( sym: -22; act: 57 ), + ( sym: -4; act: 14 ), + ( sym: -3; act: 67 ), { 49: } - ( sym: -22; act: 58 ), + ( sym: -4; act: 14 ), + ( sym: -3; act: 68 ), { 50: } - ( sym: -22; act: 59 ), + ( sym: -4; act: 14 ), + ( sym: -3; act: 69 ), { 51: } - ( sym: -26; act: 60 ), + ( sym: -4; act: 14 ), + ( sym: -3; act: 70 ), { 52: } { 53: } - ( sym: -4; act: 14 ), - ( sym: -3; act: 15 ), - ( sym: -2; act: 61 ), { 54: } - ( sym: -39; act: 62 ), { 55: } - ( sym: -39; act: 62 ), { 56: } - ( sym: -39; act: 62 ), - ( sym: -7; act: 75 ), - ( sym: -6; act: 76 ), + ( sym: -22; act: 73 ), { 57: } - ( sym: -39; act: 62 ), - ( sym: -7; act: 75 ), - ( sym: -6; act: 77 ), + ( sym: -22; act: 74 ), { 58: } - ( sym: -39; act: 62 ), - ( sym: -7; act: 75 ), - ( sym: -6; act: 78 ), + ( sym: -22; act: 75 ), { 59: } - ( sym: -39; act: 62 ), - ( sym: -7; act: 75 ), - ( sym: -6; act: 79 ), + ( sym: -22; act: 76 ), { 60: } + ( sym: -22; act: 77 ), { 61: } + ( sym: -22; act: 78 ), { 62: } + ( sym: -26; act: 79 ), { 63: } - ( sym: -37; act: 88 ), { 64: } - ( sym: -4; act: 14 ), - ( sym: -3; act: 15 ), - ( sym: -2; act: 89 ), { 65: } - ( sym: -4; act: 14 ), - ( sym: -3; act: 15 ), - ( sym: -2; act: 90 ), { 66: } - ( sym: -4; act: 14 ), - ( sym: -3; act: 15 ), - ( sym: -2; act: 91 ), { 67: } { 68: } { 69: } { 70: } { 71: } { 72: } + ( sym: -4; act: 14 ), + ( sym: -3; act: 15 ), + ( sym: -2; act: 80 ), { 73: } + ( sym: -39; act: 81 ), { 74: } - ( sym: -40; act: 92 ), - ( sym: -10; act: 93 ), + ( sym: -39; act: 81 ), { 75: } + ( sym: -39; act: 81 ), + ( sym: -7; act: 94 ), + ( sym: -6; act: 95 ), { 76: } + ( sym: -39; act: 81 ), + ( sym: -7; act: 94 ), + ( sym: -6; act: 96 ), { 77: } + ( sym: -39; act: 81 ), + ( sym: -7; act: 94 ), + ( sym: -6; act: 97 ), { 78: } + ( sym: -39; act: 81 ), + ( sym: -7; act: 94 ), + ( sym: -6; act: 98 ), { 79: } { 80: } - ( sym: -28; act: 94 ), { 81: } - ( sym: -4; act: 95 ), { 82: } - ( sym: -4; act: 96 ), + ( sym: -37; act: 107 ), { 83: } ( sym: -4; act: 14 ), ( sym: -3; act: 15 ), - ( sym: -2; act: 97 ), + ( sym: -2; act: 108 ), { 84: } ( sym: -4; act: 14 ), ( sym: -3; act: 15 ), - ( sym: -2; act: 98 ), + ( sym: -2; act: 109 ), { 85: } ( sym: -4; act: 14 ), ( sym: -3; act: 15 ), - ( sym: -2; act: 99 ), + ( sym: -2; act: 110 ), { 86: } - ( sym: -4; act: 14 ), - ( sym: -3; act: 15 ), - ( sym: -2; act: 100 ), { 87: } - ( sym: -4; act: 14 ), - ( sym: -3; act: 15 ), - ( sym: -2; act: 101 ), { 88: } - ( sym: -38; act: 102 ), - ( sym: -4; act: 103 ), { 89: } { 90: } { 91: } { 92: } - ( sym: -11; act: 106 ), - ( sym: -7; act: 107 ), - ( sym: -4; act: 108 ), { 93: } + ( sym: -40; act: 111 ), + ( sym: -10; act: 112 ), { 94: } { 95: } { 96: } { 97: } { 98: } { 99: } + ( sym: -28; act: 113 ), { 100: } + ( sym: -4; act: 114 ), { 101: } + ( sym: -4; act: 115 ), { 102: } + ( sym: -4; act: 14 ), + ( sym: -3; act: 15 ), + ( sym: -2; act: 116 ), { 103: } - ( sym: -7; act: 115 ), + ( sym: -4; act: 14 ), + ( sym: -3; act: 15 ), + ( sym: -2; act: 117 ), { 104: } + ( sym: -4; act: 14 ), + ( sym: -3; act: 15 ), + ( sym: -2; act: 118 ), { 105: } ( sym: -4; act: 14 ), ( sym: -3; act: 15 ), - ( sym: -2; act: 117 ), + ( sym: -2; act: 119 ), { 106: } + ( sym: -4; act: 14 ), + ( sym: -3; act: 15 ), + ( sym: -2; act: 120 ), { 107: } + ( sym: -38; act: 121 ), + ( sym: -4; act: 122 ), { 108: } { 109: } - ( sym: -41; act: 118 ), { 110: } { 111: } + ( sym: -11; act: 125 ), + ( sym: -7; act: 126 ), + ( sym: -4; act: 127 ), { 112: } { 113: } - ( sym: -4; act: 121 ), { 114: } - ( sym: -4; act: 122 ), { 115: } { 116: } - ( sym: -7; act: 123 ), { 117: } { 118: } - ( sym: -11; act: 124 ), - ( sym: -7; act: 107 ), - ( sym: -4; act: 108 ), { 119: } { 120: } { 121: } { 122: } + ( sym: -7; act: 134 ), { 123: } { 124: } + ( sym: -4; act: 14 ), + ( sym: -3; act: 15 ), + ( sym: -2; act: 136 ), { 125: } - ( sym: -29; act: 129 ), { 126: } - ( sym: -30; act: 130 ), { 127: } - ( sym: -4; act: 132 ), { 128: } - ( sym: -4; act: 133 ), + ( sym: -41; act: 137 ), { 129: } { 130: } { 131: } { 132: } + ( sym: -4; act: 140 ), { 133: } + ( sym: -4; act: 141 ), { 134: } { 135: } - ( sym: -7; act: 140 ), + ( sym: -7; act: 142 ), { 136: } { 137: } + ( sym: -11; act: 143 ), + ( sym: -7; act: 126 ), + ( sym: -4; act: 127 ), { 138: } - ( sym: -4; act: 142 ), { 139: } - ( sym: -4; act: 143 ), { 140: } { 141: } - ( sym: -33; act: 145 ), - ( sym: -4; act: 146 ), { 142: } { 143: } { 144: } - ( sym: -32; act: 147 ), + ( sym: -29; act: 148 ), { 145: } + ( sym: -30; act: 149 ), { 146: } + ( sym: -4; act: 151 ), { 147: } - ( sym: -31; act: 150 ), + ( sym: -4; act: 152 ), { 148: } - ( sym: -4; act: 151 ), { 149: } - ( sym: -4; act: 152 ), { 150: } { 151: } { 152: } { 153: } { 154: } - ( sym: -7; act: 156 ), + ( sym: -7; act: 159 ), { 155: } - ( sym: -4; act: 157 ), { 156: } { 157: } + ( sym: -4; act: 161 ), { 158: } - ( sym: -7; act: 159 ) + ( sym: -4; act: 162 ), { 159: } +{ 160: } + ( sym: -33; act: 164 ), + ( sym: -4; act: 165 ), +{ 161: } +{ 162: } +{ 163: } + ( sym: -32; act: 166 ), +{ 164: } +{ 165: } +{ 166: } + ( sym: -31; act: 169 ), +{ 167: } + ( sym: -4; act: 170 ), +{ 168: } + ( sym: -4; act: 171 ), +{ 169: } +{ 170: } +{ 171: } +{ 172: } +{ 173: } + ( sym: -7; act: 175 ), +{ 174: } + ( sym: -4; act: 176 ), +{ 175: } +{ 176: } +{ 177: } + ( sym: -7; act: 178 ) +{ 178: } ); yyd : array [0..yynstates-1] of Integer = ( @@ -1321,159 +1772,360 @@ yyd : array [0..yynstates-1] of Integer = ( { 9: } -3, { 10: } -2, { 11: } 0, -{ 12: } -80, +{ 12: } -89, { 13: } -60, -{ 14: } -77, -{ 15: } -74, +{ 14: } -76, +{ 15: } 0, { 16: } -59, { 17: } 0, -{ 18: } -75, -{ 19: } -76, -{ 20: } -82, -{ 21: } -83, -{ 22: } -84, -{ 23: } -85, -{ 24: } -79, -{ 25: } 0, -{ 26: } -42, -{ 27: } 0, -{ 28: } -58, -{ 29: } -11, -{ 30: } -13, -{ 31: } -15, -{ 32: } -17, -{ 33: } -48, -{ 34: } -49, -{ 35: } -50, -{ 36: } -51, -{ 37: } -52, -{ 38: } -53, -{ 39: } -54, -{ 40: } -55, -{ 41: } -56, -{ 42: } -57, -{ 43: } 0, +{ 18: } 0, +{ 19: } 0, +{ 20: } -75, +{ 21: } -91, +{ 22: } -92, +{ 23: } -93, +{ 24: } -94, +{ 25: } -88, +{ 26: } 0, +{ 27: } -42, +{ 28: } 0, +{ 29: } -58, +{ 30: } -11, +{ 31: } -13, +{ 32: } -15, +{ 33: } -17, +{ 34: } -48, +{ 35: } -49, +{ 36: } -50, +{ 37: } -51, +{ 38: } -52, +{ 39: } -53, +{ 40: } -54, +{ 41: } -55, +{ 42: } -56, +{ 43: } -57, { 44: } 0, -{ 45: } -61, -{ 46: } -61, -{ 47: } -61, -{ 48: } -61, -{ 49: } -61, -{ 50: } -61, -{ 51: } -19, -{ 52: } -78, -{ 53: } 0, -{ 54: } 0, +{ 45: } 0, +{ 46: } 0, +{ 47: } 0, +{ 48: } 0, +{ 49: } 0, +{ 50: } 0, +{ 51: } 0, +{ 52: } 0, +{ 53: } -79, +{ 54: } -78, { 55: } 0, -{ 56: } 0, -{ 57: } 0, -{ 58: } 0, -{ 59: } 0, -{ 60: } 0, -{ 61: } -73, -{ 62: } -62, -{ 63: } -44, +{ 56: } -61, +{ 57: } -61, +{ 58: } -61, +{ 59: } -61, +{ 60: } -61, +{ 61: } -61, +{ 62: } -19, +{ 63: } -82, { 64: } 0, -{ 65: } 0, +{ 65: } -80, { 66: } 0, -{ 67: } -66, -{ 68: } -67, -{ 69: } -68, -{ 70: } -69, -{ 71: } -70, -{ 72: } -71, -{ 73: } -72, -{ 74: } -86, -{ 75: } -81, -{ 76: } -39, -{ 77: } -12, -{ 78: } -14, -{ 79: } -16, -{ 80: } -27, -{ 81: } 0, -{ 82: } 0, +{ 67: } 0, +{ 68: } -81, +{ 69: } 0, +{ 70: } 0, +{ 71: } -77, +{ 72: } 0, +{ 73: } 0, +{ 74: } 0, +{ 75: } 0, +{ 76: } 0, +{ 77: } 0, +{ 78: } 0, +{ 79: } 0, +{ 80: } -73, +{ 81: } -62, +{ 82: } -44, { 83: } 0, { 84: } 0, { 85: } 0, -{ 86: } 0, -{ 87: } 0, -{ 88: } 0, -{ 89: } 0, -{ 90: } -64, -{ 91: } -65, -{ 92: } 0, -{ 93: } 0, -{ 94: } 0, -{ 95: } 0, -{ 96: } 0, -{ 97: } -22, -{ 98: } -23, -{ 99: } -24, -{ 100: } -25, -{ 101: } -26, -{ 102: } -45, +{ 86: } -66, +{ 87: } -67, +{ 88: } -68, +{ 89: } -69, +{ 90: } -70, +{ 91: } -71, +{ 92: } -72, +{ 93: } -95, +{ 94: } -90, +{ 95: } -39, +{ 96: } -12, +{ 97: } -14, +{ 98: } -16, +{ 99: } -27, +{ 100: } 0, +{ 101: } 0, +{ 102: } 0, { 103: } 0, -{ 104: } -43, +{ 104: } 0, { 105: } 0, -{ 106: } -87, -{ 107: } -90, -{ 108: } -91, -{ 109: } -88, -{ 110: } -41, -{ 111: } -18, +{ 106: } 0, +{ 107: } 0, +{ 108: } 0, +{ 109: } -64, +{ 110: } -65, +{ 111: } 0, { 112: } 0, { 113: } 0, { 114: } 0, -{ 115: } -47, -{ 116: } 0, -{ 117: } -63, -{ 118: } 0, -{ 119: } 0, -{ 120: } 0, -{ 121: } 0, +{ 115: } 0, +{ 116: } -22, +{ 117: } -23, +{ 118: } -24, +{ 119: } -25, +{ 120: } -26, +{ 121: } -45, { 122: } 0, -{ 123: } -46, -{ 124: } -89, -{ 125: } -30, -{ 126: } 0, -{ 127: } 0, -{ 128: } 0, -{ 129: } 0, -{ 130: } 0, +{ 123: } -43, +{ 124: } 0, +{ 125: } -96, +{ 126: } -99, +{ 127: } -100, +{ 128: } -97, +{ 129: } -41, +{ 130: } -18, { 131: } 0, { 132: } 0, { 133: } 0, -{ 134: } -28, +{ 134: } -47, { 135: } 0, -{ 136: } -29, +{ 136: } -63, { 137: } 0, { 138: } 0, { 139: } 0, { 140: } 0, { 141: } 0, -{ 142: } -20, -{ 143: } -21, -{ 144: } -31, +{ 142: } -46, +{ 143: } -98, +{ 144: } -30, { 145: } 0, { 146: } 0, -{ 147: } -33, +{ 147: } 0, { 148: } 0, { 149: } 0, { 150: } 0, { 151: } 0, -{ 152: } -36, -{ 153: } -32, +{ 152: } 0, +{ 153: } -28, { 154: } 0, -{ 155: } 0, +{ 155: } -29, { 156: } 0, -{ 157: } -37, +{ 157: } 0, { 158: } 0, -{ 159: } -34 +{ 159: } 0, +{ 160: } 0, +{ 161: } -20, +{ 162: } -21, +{ 163: } -31, +{ 164: } 0, +{ 165: } 0, +{ 166: } -33, +{ 167: } 0, +{ 168: } 0, +{ 169: } 0, +{ 170: } 0, +{ 171: } -36, +{ 172: } -32, +{ 173: } 0, +{ 174: } 0, +{ 175: } 0, +{ 176: } -37, +{ 177: } 0, +{ 178: } -34 ); yyal : array [0..yynstates-1] of Integer = ( { 0: } 1, { 1: } 1, +{ 2: } 13, +{ 3: } 13, +{ 4: } 13, +{ 5: } 13, +{ 6: } 13, +{ 7: } 13, +{ 8: } 13, +{ 9: } 13, +{ 10: } 13, +{ 11: } 13, +{ 12: } 36, +{ 13: } 36, +{ 14: } 36, +{ 15: } 36, +{ 16: } 87, +{ 17: } 87, +{ 18: } 91, +{ 19: } 95, +{ 20: } 99, +{ 21: } 99, +{ 22: } 99, +{ 23: } 99, +{ 24: } 99, +{ 25: } 99, +{ 26: } 99, +{ 27: } 103, +{ 28: } 103, +{ 29: } 118, +{ 30: } 118, +{ 31: } 118, +{ 32: } 118, +{ 33: } 118, +{ 34: } 118, +{ 35: } 118, +{ 36: } 118, +{ 37: } 118, +{ 38: } 118, +{ 39: } 118, +{ 40: } 118, +{ 41: } 118, +{ 42: } 118, +{ 43: } 118, +{ 44: } 118, +{ 45: } 122, +{ 46: } 126, +{ 47: } 130, +{ 48: } 134, +{ 49: } 138, +{ 50: } 142, +{ 51: } 146, +{ 52: } 150, +{ 53: } 159, +{ 54: } 159, +{ 55: } 159, +{ 56: } 160, +{ 57: } 160, +{ 58: } 160, +{ 59: } 160, +{ 60: } 160, +{ 61: } 160, +{ 62: } 160, +{ 63: } 160, +{ 64: } 160, +{ 65: } 212, +{ 66: } 212, +{ 67: } 264, +{ 68: } 316, +{ 69: } 316, +{ 70: } 368, +{ 71: } 420, +{ 72: } 420, +{ 73: } 424, +{ 74: } 435, +{ 75: } 446, +{ 76: } 460, +{ 77: } 474, +{ 78: } 488, +{ 79: } 502, +{ 80: } 510, +{ 81: } 510, +{ 82: } 510, +{ 83: } 510, +{ 84: } 514, +{ 85: } 518, +{ 86: } 522, +{ 87: } 522, +{ 88: } 522, +{ 89: } 522, +{ 90: } 522, +{ 91: } 522, +{ 92: } 522, +{ 93: } 522, +{ 94: } 522, +{ 95: } 522, +{ 96: } 522, +{ 97: } 522, +{ 98: } 522, +{ 99: } 522, +{ 100: } 522, +{ 101: } 523, +{ 102: } 524, +{ 103: } 528, +{ 104: } 532, +{ 105: } 536, +{ 106: } 540, +{ 107: } 544, +{ 108: } 546, +{ 109: } 547, +{ 110: } 547, +{ 111: } 547, +{ 112: } 552, +{ 113: } 554, +{ 114: } 556, +{ 115: } 557, +{ 116: } 558, +{ 117: } 558, +{ 118: } 558, +{ 119: } 558, +{ 120: } 558, +{ 121: } 558, +{ 122: } 558, +{ 123: } 563, +{ 124: } 563, +{ 125: } 567, +{ 126: } 567, +{ 127: } 567, +{ 128: } 567, +{ 129: } 567, +{ 130: } 567, +{ 131: } 567, +{ 132: } 569, +{ 133: } 570, +{ 134: } 571, +{ 135: } 571, +{ 136: } 575, +{ 137: } 575, +{ 138: } 580, +{ 139: } 581, +{ 140: } 582, +{ 141: } 583, +{ 142: } 584, +{ 143: } 584, +{ 144: } 584, +{ 145: } 584, +{ 146: } 585, +{ 147: } 586, +{ 148: } 587, +{ 149: } 589, +{ 150: } 590, +{ 151: } 591, +{ 152: } 592, +{ 153: } 593, +{ 154: } 593, +{ 155: } 597, +{ 156: } 597, +{ 157: } 598, +{ 158: } 599, +{ 159: } 600, +{ 160: } 601, +{ 161: } 602, +{ 162: } 602, +{ 163: } 602, +{ 164: } 602, +{ 165: } 604, +{ 166: } 605, +{ 167: } 605, +{ 168: } 606, +{ 169: } 607, +{ 170: } 609, +{ 171: } 610, +{ 172: } 610, +{ 173: } 610, +{ 174: } 614, +{ 175: } 615, +{ 176: } 616, +{ 177: } 616, +{ 178: } 620 +); + +yyah : array [0..yynstates-1] of Integer = ( +{ 0: } 0, +{ 1: } 12, { 2: } 12, { 3: } 12, { 4: } 12, @@ -1483,318 +2135,174 @@ yyal : array [0..yynstates-1] of Integer = ( { 8: } 12, { 9: } 12, { 10: } 12, -{ 11: } 12, -{ 12: } 34, -{ 13: } 34, -{ 14: } 34, -{ 15: } 34, -{ 16: } 34, -{ 17: } 34, -{ 18: } 37, -{ 19: } 37, -{ 20: } 37, -{ 21: } 37, -{ 22: } 37, -{ 23: } 37, -{ 24: } 37, -{ 25: } 37, -{ 26: } 40, -{ 27: } 40, -{ 28: } 55, -{ 29: } 55, -{ 30: } 55, -{ 31: } 55, -{ 32: } 55, -{ 33: } 55, -{ 34: } 55, -{ 35: } 55, -{ 36: } 55, -{ 37: } 55, -{ 38: } 55, -{ 39: } 55, -{ 40: } 55, -{ 41: } 55, -{ 42: } 55, -{ 43: } 55, -{ 44: } 56, -{ 45: } 57, -{ 46: } 57, -{ 47: } 57, -{ 48: } 57, -{ 49: } 57, -{ 50: } 57, -{ 51: } 57, -{ 52: } 57, -{ 53: } 57, -{ 54: } 60, -{ 55: } 71, -{ 56: } 82, -{ 57: } 96, -{ 58: } 110, -{ 59: } 124, -{ 60: } 138, -{ 61: } 146, -{ 62: } 146, -{ 63: } 146, -{ 64: } 146, -{ 65: } 149, -{ 66: } 152, -{ 67: } 155, -{ 68: } 155, -{ 69: } 155, -{ 70: } 155, -{ 71: } 155, -{ 72: } 155, -{ 73: } 155, -{ 74: } 155, -{ 75: } 155, -{ 76: } 155, -{ 77: } 155, -{ 78: } 155, -{ 79: } 155, -{ 80: } 155, -{ 81: } 155, -{ 82: } 157, -{ 83: } 159, -{ 84: } 162, -{ 85: } 165, -{ 86: } 168, -{ 87: } 171, -{ 88: } 174, -{ 89: } 177, -{ 90: } 178, -{ 91: } 178, -{ 92: } 178, -{ 93: } 184, -{ 94: } 186, -{ 95: } 188, -{ 96: } 189, -{ 97: } 190, -{ 98: } 190, -{ 99: } 190, -{ 100: } 190, -{ 101: } 190, -{ 102: } 190, -{ 103: } 190, -{ 104: } 195, -{ 105: } 195, -{ 106: } 198, -{ 107: } 198, -{ 108: } 198, -{ 109: } 198, -{ 110: } 198, -{ 111: } 198, -{ 112: } 198, -{ 113: } 200, -{ 114: } 202, -{ 115: } 204, -{ 116: } 204, -{ 117: } 208, -{ 118: } 208, -{ 119: } 214, -{ 120: } 215, -{ 121: } 216, -{ 122: } 217, -{ 123: } 218, -{ 124: } 218, -{ 125: } 218, -{ 126: } 218, -{ 127: } 219, -{ 128: } 221, -{ 129: } 223, -{ 130: } 225, -{ 131: } 226, -{ 132: } 227, -{ 133: } 228, -{ 134: } 229, -{ 135: } 229, -{ 136: } 233, -{ 137: } 233, -{ 138: } 234, -{ 139: } 236, -{ 140: } 238, -{ 141: } 239, -{ 142: } 241, -{ 143: } 241, -{ 144: } 241, -{ 145: } 241, -{ 146: } 243, -{ 147: } 244, -{ 148: } 244, -{ 149: } 246, -{ 150: } 248, -{ 151: } 250, -{ 152: } 251, -{ 153: } 251, -{ 154: } 251, -{ 155: } 255, -{ 156: } 257, -{ 157: } 258, -{ 158: } 258, -{ 159: } 262 -); - -yyah : array [0..yynstates-1] of Integer = ( -{ 0: } 0, -{ 1: } 11, -{ 2: } 11, -{ 3: } 11, -{ 4: } 11, -{ 5: } 11, -{ 6: } 11, -{ 7: } 11, -{ 8: } 11, -{ 9: } 11, -{ 10: } 11, -{ 11: } 33, -{ 12: } 33, -{ 13: } 33, -{ 14: } 33, -{ 15: } 33, -{ 16: } 33, -{ 17: } 36, -{ 18: } 36, -{ 19: } 36, -{ 20: } 36, -{ 21: } 36, -{ 22: } 36, -{ 23: } 36, -{ 24: } 36, -{ 25: } 39, -{ 26: } 39, -{ 27: } 54, -{ 28: } 54, -{ 29: } 54, -{ 30: } 54, -{ 31: } 54, -{ 32: } 54, -{ 33: } 54, -{ 34: } 54, -{ 35: } 54, -{ 36: } 54, -{ 37: } 54, -{ 38: } 54, -{ 39: } 54, -{ 40: } 54, -{ 41: } 54, -{ 42: } 54, -{ 43: } 55, -{ 44: } 56, -{ 45: } 56, -{ 46: } 56, -{ 47: } 56, -{ 48: } 56, -{ 49: } 56, -{ 50: } 56, -{ 51: } 56, -{ 52: } 56, -{ 53: } 59, -{ 54: } 70, -{ 55: } 81, -{ 56: } 95, -{ 57: } 109, -{ 58: } 123, -{ 59: } 137, -{ 60: } 145, -{ 61: } 145, -{ 62: } 145, -{ 63: } 145, -{ 64: } 148, -{ 65: } 151, -{ 66: } 154, -{ 67: } 154, -{ 68: } 154, -{ 69: } 154, -{ 70: } 154, -{ 71: } 154, -{ 72: } 154, -{ 73: } 154, -{ 74: } 154, -{ 75: } 154, -{ 76: } 154, -{ 77: } 154, -{ 78: } 154, -{ 79: } 154, -{ 80: } 154, -{ 81: } 156, -{ 82: } 158, -{ 83: } 161, -{ 84: } 164, -{ 85: } 167, -{ 86: } 170, -{ 87: } 173, -{ 88: } 176, -{ 89: } 177, -{ 90: } 177, -{ 91: } 177, -{ 92: } 183, -{ 93: } 185, -{ 94: } 187, -{ 95: } 188, -{ 96: } 189, -{ 97: } 189, -{ 98: } 189, -{ 99: } 189, -{ 100: } 189, -{ 101: } 189, -{ 102: } 189, -{ 103: } 194, -{ 104: } 194, -{ 105: } 197, -{ 106: } 197, -{ 107: } 197, -{ 108: } 197, -{ 109: } 197, -{ 110: } 197, -{ 111: } 197, -{ 112: } 199, -{ 113: } 201, -{ 114: } 203, -{ 115: } 203, -{ 116: } 207, -{ 117: } 207, -{ 118: } 213, -{ 119: } 214, -{ 120: } 215, -{ 121: } 216, -{ 122: } 217, -{ 123: } 217, -{ 124: } 217, -{ 125: } 217, -{ 126: } 218, -{ 127: } 220, -{ 128: } 222, -{ 129: } 224, -{ 130: } 225, -{ 131: } 226, -{ 132: } 227, -{ 133: } 228, -{ 134: } 228, -{ 135: } 232, -{ 136: } 232, -{ 137: } 233, -{ 138: } 235, -{ 139: } 237, -{ 140: } 238, -{ 141: } 240, -{ 142: } 240, -{ 143: } 240, -{ 144: } 240, -{ 145: } 242, -{ 146: } 243, -{ 147: } 243, -{ 148: } 245, -{ 149: } 247, -{ 150: } 249, -{ 151: } 250, -{ 152: } 250, -{ 153: } 250, -{ 154: } 254, -{ 155: } 256, -{ 156: } 257, -{ 157: } 257, -{ 158: } 261, -{ 159: } 261 +{ 11: } 35, +{ 12: } 35, +{ 13: } 35, +{ 14: } 35, +{ 15: } 86, +{ 16: } 86, +{ 17: } 90, +{ 18: } 94, +{ 19: } 98, +{ 20: } 98, +{ 21: } 98, +{ 22: } 98, +{ 23: } 98, +{ 24: } 98, +{ 25: } 98, +{ 26: } 102, +{ 27: } 102, +{ 28: } 117, +{ 29: } 117, +{ 30: } 117, +{ 31: } 117, +{ 32: } 117, +{ 33: } 117, +{ 34: } 117, +{ 35: } 117, +{ 36: } 117, +{ 37: } 117, +{ 38: } 117, +{ 39: } 117, +{ 40: } 117, +{ 41: } 117, +{ 42: } 117, +{ 43: } 117, +{ 44: } 121, +{ 45: } 125, +{ 46: } 129, +{ 47: } 133, +{ 48: } 137, +{ 49: } 141, +{ 50: } 145, +{ 51: } 149, +{ 52: } 158, +{ 53: } 158, +{ 54: } 158, +{ 55: } 159, +{ 56: } 159, +{ 57: } 159, +{ 58: } 159, +{ 59: } 159, +{ 60: } 159, +{ 61: } 159, +{ 62: } 159, +{ 63: } 159, +{ 64: } 211, +{ 65: } 211, +{ 66: } 263, +{ 67: } 315, +{ 68: } 315, +{ 69: } 367, +{ 70: } 419, +{ 71: } 419, +{ 72: } 423, +{ 73: } 434, +{ 74: } 445, +{ 75: } 459, +{ 76: } 473, +{ 77: } 487, +{ 78: } 501, +{ 79: } 509, +{ 80: } 509, +{ 81: } 509, +{ 82: } 509, +{ 83: } 513, +{ 84: } 517, +{ 85: } 521, +{ 86: } 521, +{ 87: } 521, +{ 88: } 521, +{ 89: } 521, +{ 90: } 521, +{ 91: } 521, +{ 92: } 521, +{ 93: } 521, +{ 94: } 521, +{ 95: } 521, +{ 96: } 521, +{ 97: } 521, +{ 98: } 521, +{ 99: } 521, +{ 100: } 522, +{ 101: } 523, +{ 102: } 527, +{ 103: } 531, +{ 104: } 535, +{ 105: } 539, +{ 106: } 543, +{ 107: } 545, +{ 108: } 546, +{ 109: } 546, +{ 110: } 546, +{ 111: } 551, +{ 112: } 553, +{ 113: } 555, +{ 114: } 556, +{ 115: } 557, +{ 116: } 557, +{ 117: } 557, +{ 118: } 557, +{ 119: } 557, +{ 120: } 557, +{ 121: } 557, +{ 122: } 562, +{ 123: } 562, +{ 124: } 566, +{ 125: } 566, +{ 126: } 566, +{ 127: } 566, +{ 128: } 566, +{ 129: } 566, +{ 130: } 566, +{ 131: } 568, +{ 132: } 569, +{ 133: } 570, +{ 134: } 570, +{ 135: } 574, +{ 136: } 574, +{ 137: } 579, +{ 138: } 580, +{ 139: } 581, +{ 140: } 582, +{ 141: } 583, +{ 142: } 583, +{ 143: } 583, +{ 144: } 583, +{ 145: } 584, +{ 146: } 585, +{ 147: } 586, +{ 148: } 588, +{ 149: } 589, +{ 150: } 590, +{ 151: } 591, +{ 152: } 592, +{ 153: } 592, +{ 154: } 596, +{ 155: } 596, +{ 156: } 597, +{ 157: } 598, +{ 158: } 599, +{ 159: } 600, +{ 160: } 601, +{ 161: } 601, +{ 162: } 601, +{ 163: } 601, +{ 164: } 603, +{ 165: } 604, +{ 166: } 604, +{ 167: } 605, +{ 168: } 606, +{ 169: } 608, +{ 170: } 609, +{ 171: } 609, +{ 172: } 609, +{ 173: } 613, +{ 174: } 614, +{ 175: } 615, +{ 176: } 615, +{ 177: } 619, +{ 178: } 619 ); yygl : array [0..yynstates-1] of Integer = ( @@ -1817,147 +2325,166 @@ yygl : array [0..yynstates-1] of Integer = ( { 16: } 24, { 17: } 24, { 18: } 26, -{ 19: } 26, -{ 20: } 26, -{ 21: } 26, -{ 22: } 26, -{ 23: } 26, -{ 24: } 26, -{ 25: } 26, -{ 26: } 29, -{ 27: } 30, -{ 28: } 32, -{ 29: } 32, -{ 30: } 33, -{ 31: } 34, -{ 32: } 35, -{ 33: } 36, -{ 34: } 36, -{ 35: } 36, -{ 36: } 36, -{ 37: } 36, -{ 38: } 36, -{ 39: } 36, -{ 40: } 36, -{ 41: } 36, -{ 42: } 36, -{ 43: } 36, -{ 44: } 36, -{ 45: } 36, -{ 46: } 37, -{ 47: } 38, -{ 48: } 39, -{ 49: } 40, -{ 50: } 41, -{ 51: } 42, -{ 52: } 43, -{ 53: } 43, -{ 54: } 46, -{ 55: } 47, -{ 56: } 48, -{ 57: } 51, -{ 58: } 54, -{ 59: } 57, +{ 19: } 28, +{ 20: } 30, +{ 21: } 30, +{ 22: } 30, +{ 23: } 30, +{ 24: } 30, +{ 25: } 30, +{ 26: } 30, +{ 27: } 33, +{ 28: } 34, +{ 29: } 36, +{ 30: } 36, +{ 31: } 37, +{ 32: } 38, +{ 33: } 39, +{ 34: } 40, +{ 35: } 40, +{ 36: } 40, +{ 37: } 40, +{ 38: } 40, +{ 39: } 40, +{ 40: } 40, +{ 41: } 40, +{ 42: } 40, +{ 43: } 40, +{ 44: } 40, +{ 45: } 42, +{ 46: } 44, +{ 47: } 46, +{ 48: } 48, +{ 49: } 50, +{ 50: } 52, +{ 51: } 54, +{ 52: } 56, +{ 53: } 56, +{ 54: } 56, +{ 55: } 56, +{ 56: } 56, +{ 57: } 57, +{ 58: } 58, +{ 59: } 59, { 60: } 60, -{ 61: } 60, -{ 62: } 60, -{ 63: } 60, -{ 64: } 61, -{ 65: } 64, -{ 66: } 67, -{ 67: } 70, -{ 68: } 70, -{ 69: } 70, -{ 70: } 70, -{ 71: } 70, -{ 72: } 70, -{ 73: } 70, -{ 74: } 70, -{ 75: } 72, -{ 76: } 72, -{ 77: } 72, -{ 78: } 72, -{ 79: } 72, -{ 80: } 72, -{ 81: } 73, -{ 82: } 74, -{ 83: } 75, -{ 84: } 78, -{ 85: } 81, -{ 86: } 84, -{ 87: } 87, +{ 61: } 61, +{ 62: } 62, +{ 63: } 63, +{ 64: } 63, +{ 65: } 63, +{ 66: } 63, +{ 67: } 63, +{ 68: } 63, +{ 69: } 63, +{ 70: } 63, +{ 71: } 63, +{ 72: } 63, +{ 73: } 66, +{ 74: } 67, +{ 75: } 68, +{ 76: } 71, +{ 77: } 74, +{ 78: } 77, +{ 79: } 80, +{ 80: } 80, +{ 81: } 80, +{ 82: } 80, +{ 83: } 81, +{ 84: } 84, +{ 85: } 87, +{ 86: } 90, +{ 87: } 90, { 88: } 90, -{ 89: } 92, -{ 90: } 92, -{ 91: } 92, -{ 92: } 92, -{ 93: } 95, -{ 94: } 95, -{ 95: } 95, -{ 96: } 95, -{ 97: } 95, -{ 98: } 95, -{ 99: } 95, -{ 100: } 95, -{ 101: } 95, +{ 89: } 90, +{ 90: } 90, +{ 91: } 90, +{ 92: } 90, +{ 93: } 90, +{ 94: } 92, +{ 95: } 92, +{ 96: } 92, +{ 97: } 92, +{ 98: } 92, +{ 99: } 92, +{ 100: } 93, +{ 101: } 94, { 102: } 95, -{ 103: } 95, -{ 104: } 96, -{ 105: } 96, -{ 106: } 99, -{ 107: } 99, -{ 108: } 99, -{ 109: } 99, -{ 110: } 100, -{ 111: } 100, -{ 112: } 100, -{ 113: } 100, -{ 114: } 101, -{ 115: } 102, -{ 116: } 102, -{ 117: } 103, -{ 118: } 103, -{ 119: } 106, -{ 120: } 106, -{ 121: } 106, -{ 122: } 106, -{ 123: } 106, -{ 124: } 106, -{ 125: } 106, -{ 126: } 107, -{ 127: } 108, -{ 128: } 109, -{ 129: } 110, -{ 130: } 110, -{ 131: } 110, -{ 132: } 110, -{ 133: } 110, -{ 134: } 110, -{ 135: } 110, -{ 136: } 111, -{ 137: } 111, -{ 138: } 111, -{ 139: } 112, -{ 140: } 113, -{ 141: } 113, -{ 142: } 115, -{ 143: } 115, -{ 144: } 115, -{ 145: } 116, -{ 146: } 116, -{ 147: } 116, -{ 148: } 117, -{ 149: } 118, -{ 150: } 119, -{ 151: } 119, -{ 152: } 119, -{ 153: } 119, -{ 154: } 119, -{ 155: } 120, -{ 156: } 121, -{ 157: } 121, -{ 158: } 121, -{ 159: } 122 +{ 103: } 98, +{ 104: } 101, +{ 105: } 104, +{ 106: } 107, +{ 107: } 110, +{ 108: } 112, +{ 109: } 112, +{ 110: } 112, +{ 111: } 112, +{ 112: } 115, +{ 113: } 115, +{ 114: } 115, +{ 115: } 115, +{ 116: } 115, +{ 117: } 115, +{ 118: } 115, +{ 119: } 115, +{ 120: } 115, +{ 121: } 115, +{ 122: } 115, +{ 123: } 116, +{ 124: } 116, +{ 125: } 119, +{ 126: } 119, +{ 127: } 119, +{ 128: } 119, +{ 129: } 120, +{ 130: } 120, +{ 131: } 120, +{ 132: } 120, +{ 133: } 121, +{ 134: } 122, +{ 135: } 122, +{ 136: } 123, +{ 137: } 123, +{ 138: } 126, +{ 139: } 126, +{ 140: } 126, +{ 141: } 126, +{ 142: } 126, +{ 143: } 126, +{ 144: } 126, +{ 145: } 127, +{ 146: } 128, +{ 147: } 129, +{ 148: } 130, +{ 149: } 130, +{ 150: } 130, +{ 151: } 130, +{ 152: } 130, +{ 153: } 130, +{ 154: } 130, +{ 155: } 131, +{ 156: } 131, +{ 157: } 131, +{ 158: } 132, +{ 159: } 133, +{ 160: } 133, +{ 161: } 135, +{ 162: } 135, +{ 163: } 135, +{ 164: } 136, +{ 165: } 136, +{ 166: } 136, +{ 167: } 137, +{ 168: } 138, +{ 169: } 139, +{ 170: } 139, +{ 171: } 139, +{ 172: } 139, +{ 173: } 139, +{ 174: } 140, +{ 175: } 141, +{ 176: } 141, +{ 177: } 141, +{ 178: } 142 ); yygh : array [0..yynstates-1] of Integer = ( @@ -1979,148 +2506,167 @@ yygh : array [0..yynstates-1] of Integer = ( { 15: } 23, { 16: } 23, { 17: } 25, -{ 18: } 25, -{ 19: } 25, -{ 20: } 25, -{ 21: } 25, -{ 22: } 25, -{ 23: } 25, -{ 24: } 25, -{ 25: } 28, -{ 26: } 29, -{ 27: } 31, -{ 28: } 31, -{ 29: } 32, -{ 30: } 33, -{ 31: } 34, -{ 32: } 35, -{ 33: } 35, -{ 34: } 35, -{ 35: } 35, -{ 36: } 35, -{ 37: } 35, -{ 38: } 35, -{ 39: } 35, -{ 40: } 35, -{ 41: } 35, -{ 42: } 35, -{ 43: } 35, -{ 44: } 35, -{ 45: } 36, -{ 46: } 37, -{ 47: } 38, -{ 48: } 39, -{ 49: } 40, -{ 50: } 41, -{ 51: } 42, -{ 52: } 42, -{ 53: } 45, -{ 54: } 46, -{ 55: } 47, -{ 56: } 50, -{ 57: } 53, -{ 58: } 56, +{ 18: } 27, +{ 19: } 29, +{ 20: } 29, +{ 21: } 29, +{ 22: } 29, +{ 23: } 29, +{ 24: } 29, +{ 25: } 29, +{ 26: } 32, +{ 27: } 33, +{ 28: } 35, +{ 29: } 35, +{ 30: } 36, +{ 31: } 37, +{ 32: } 38, +{ 33: } 39, +{ 34: } 39, +{ 35: } 39, +{ 36: } 39, +{ 37: } 39, +{ 38: } 39, +{ 39: } 39, +{ 40: } 39, +{ 41: } 39, +{ 42: } 39, +{ 43: } 39, +{ 44: } 41, +{ 45: } 43, +{ 46: } 45, +{ 47: } 47, +{ 48: } 49, +{ 49: } 51, +{ 50: } 53, +{ 51: } 55, +{ 52: } 55, +{ 53: } 55, +{ 54: } 55, +{ 55: } 55, +{ 56: } 56, +{ 57: } 57, +{ 58: } 58, { 59: } 59, -{ 60: } 59, -{ 61: } 59, -{ 62: } 59, -{ 63: } 60, -{ 64: } 63, -{ 65: } 66, -{ 66: } 69, -{ 67: } 69, -{ 68: } 69, -{ 69: } 69, -{ 70: } 69, -{ 71: } 69, -{ 72: } 69, -{ 73: } 69, -{ 74: } 71, -{ 75: } 71, -{ 76: } 71, -{ 77: } 71, -{ 78: } 71, -{ 79: } 71, -{ 80: } 72, -{ 81: } 73, -{ 82: } 74, -{ 83: } 77, -{ 84: } 80, -{ 85: } 83, -{ 86: } 86, +{ 60: } 60, +{ 61: } 61, +{ 62: } 62, +{ 63: } 62, +{ 64: } 62, +{ 65: } 62, +{ 66: } 62, +{ 67: } 62, +{ 68: } 62, +{ 69: } 62, +{ 70: } 62, +{ 71: } 62, +{ 72: } 65, +{ 73: } 66, +{ 74: } 67, +{ 75: } 70, +{ 76: } 73, +{ 77: } 76, +{ 78: } 79, +{ 79: } 79, +{ 80: } 79, +{ 81: } 79, +{ 82: } 80, +{ 83: } 83, +{ 84: } 86, +{ 85: } 89, +{ 86: } 89, { 87: } 89, -{ 88: } 91, -{ 89: } 91, -{ 90: } 91, -{ 91: } 91, -{ 92: } 94, -{ 93: } 94, -{ 94: } 94, -{ 95: } 94, -{ 96: } 94, -{ 97: } 94, -{ 98: } 94, -{ 99: } 94, -{ 100: } 94, +{ 88: } 89, +{ 89: } 89, +{ 90: } 89, +{ 91: } 89, +{ 92: } 89, +{ 93: } 91, +{ 94: } 91, +{ 95: } 91, +{ 96: } 91, +{ 97: } 91, +{ 98: } 91, +{ 99: } 92, +{ 100: } 93, { 101: } 94, -{ 102: } 94, -{ 103: } 95, -{ 104: } 95, -{ 105: } 98, -{ 106: } 98, -{ 107: } 98, -{ 108: } 98, -{ 109: } 99, -{ 110: } 99, -{ 111: } 99, -{ 112: } 99, -{ 113: } 100, -{ 114: } 101, -{ 115: } 101, -{ 116: } 102, -{ 117: } 102, -{ 118: } 105, -{ 119: } 105, -{ 120: } 105, -{ 121: } 105, -{ 122: } 105, -{ 123: } 105, -{ 124: } 105, -{ 125: } 106, -{ 126: } 107, -{ 127: } 108, -{ 128: } 109, -{ 129: } 109, -{ 130: } 109, -{ 131: } 109, -{ 132: } 109, -{ 133: } 109, -{ 134: } 109, -{ 135: } 110, -{ 136: } 110, -{ 137: } 110, -{ 138: } 111, -{ 139: } 112, -{ 140: } 112, -{ 141: } 114, -{ 142: } 114, -{ 143: } 114, -{ 144: } 115, -{ 145: } 115, -{ 146: } 115, -{ 147: } 116, -{ 148: } 117, -{ 149: } 118, -{ 150: } 118, -{ 151: } 118, -{ 152: } 118, -{ 153: } 118, -{ 154: } 119, -{ 155: } 120, -{ 156: } 120, -{ 157: } 120, -{ 158: } 121, -{ 159: } 121 +{ 102: } 97, +{ 103: } 100, +{ 104: } 103, +{ 105: } 106, +{ 106: } 109, +{ 107: } 111, +{ 108: } 111, +{ 109: } 111, +{ 110: } 111, +{ 111: } 114, +{ 112: } 114, +{ 113: } 114, +{ 114: } 114, +{ 115: } 114, +{ 116: } 114, +{ 117: } 114, +{ 118: } 114, +{ 119: } 114, +{ 120: } 114, +{ 121: } 114, +{ 122: } 115, +{ 123: } 115, +{ 124: } 118, +{ 125: } 118, +{ 126: } 118, +{ 127: } 118, +{ 128: } 119, +{ 129: } 119, +{ 130: } 119, +{ 131: } 119, +{ 132: } 120, +{ 133: } 121, +{ 134: } 121, +{ 135: } 122, +{ 136: } 122, +{ 137: } 125, +{ 138: } 125, +{ 139: } 125, +{ 140: } 125, +{ 141: } 125, +{ 142: } 125, +{ 143: } 125, +{ 144: } 126, +{ 145: } 127, +{ 146: } 128, +{ 147: } 129, +{ 148: } 129, +{ 149: } 129, +{ 150: } 129, +{ 151: } 129, +{ 152: } 129, +{ 153: } 129, +{ 154: } 130, +{ 155: } 130, +{ 156: } 130, +{ 157: } 131, +{ 158: } 132, +{ 159: } 132, +{ 160: } 134, +{ 161: } 134, +{ 162: } 134, +{ 163: } 135, +{ 164: } 135, +{ 165: } 135, +{ 166: } 136, +{ 167: } 137, +{ 168: } 138, +{ 169: } 138, +{ 170: } 138, +{ 171: } 138, +{ 172: } 138, +{ 173: } 139, +{ 174: } 140, +{ 175: } 140, +{ 176: } 140, +{ 177: } 141, +{ 178: } 141 ); yyr : array [1..yynrules] of YYRRec = ( @@ -2199,22 +2745,31 @@ yyr : array [1..yynrules] of YYRRec = ( { 73: } ( len: 4; sym: -15 ), { 74: } ( len: 1; sym: -2 ), { 75: } ( len: 1; sym: -4 ), -{ 76: } ( len: 1; sym: -4 ), -{ 77: } ( len: 1; sym: -3 ), -{ 78: } ( len: 3; sym: -3 ), -{ 79: } ( len: 1; sym: -5 ), -{ 80: } ( len: 1; sym: -5 ), -{ 81: } ( len: 1; sym: -6 ), -{ 82: } ( len: 1; sym: -7 ), -{ 83: } ( len: 1; sym: -7 ), -{ 84: } ( len: 1; sym: -7 ), -{ 85: } ( len: 1; sym: -7 ), -{ 86: } ( len: 0; sym: -40 ), -{ 87: } ( len: 2; sym: -10 ), -{ 88: } ( len: 0; sym: -41 ), -{ 89: } ( len: 4; sym: -10 ), -{ 90: } ( len: 1; sym: -11 ), -{ 91: } ( len: 1; sym: -11 ) +{ 76: } ( len: 1; sym: -3 ), +{ 77: } ( len: 3; sym: -3 ), +{ 78: } ( len: 2; sym: -3 ), +{ 79: } ( len: 2; sym: -3 ), +{ 80: } ( len: 3; sym: -3 ), +{ 81: } ( len: 3; sym: -3 ), +{ 82: } ( len: 3; sym: -3 ), +{ 83: } ( len: 3; sym: -3 ), +{ 84: } ( len: 3; sym: -3 ), +{ 85: } ( len: 3; sym: -3 ), +{ 86: } ( len: 3; sym: -3 ), +{ 87: } ( len: 3; sym: -3 ), +{ 88: } ( len: 1; sym: -5 ), +{ 89: } ( len: 1; sym: -5 ), +{ 90: } ( len: 1; sym: -6 ), +{ 91: } ( len: 1; sym: -7 ), +{ 92: } ( len: 1; sym: -7 ), +{ 93: } ( len: 1; sym: -7 ), +{ 94: } ( len: 1; sym: -7 ), +{ 95: } ( len: 0; sym: -40 ), +{ 96: } ( len: 2; sym: -10 ), +{ 97: } ( len: 0; sym: -41 ), +{ 98: } ( len: 4; sym: -10 ), +{ 99: } ( len: 1; sym: -11 ), +{ 100: } ( len: 1; sym: -11 ) ); diff --git a/packages/fcl-res/src/rcparser.y b/packages/fcl-res/src/rcparser.y index e5a9929b79..e2aaf2f0e0 100644 --- a/packages/fcl-res/src/rcparser.y +++ b/packages/fcl-res/src/rcparser.y @@ -126,6 +126,14 @@ begin Result.v:= StrToInt(s); end; +function Max(a, b: LongWord): LongWord; inline; +begin + if a > b then + Result:= a + else + Result:= b; +end; + var aktresource: TAbstractResource; language: TLangID; @@ -231,7 +239,7 @@ var %} %token _ILLEGAL -%token _NUMDECIMAL _NUMHEX _QUOTEDSTR +%token _NUMBER _QUOTEDSTR %token _STR_StringFileInfo _STR_VarFileInfo _STR_Translation %token _BEGIN _END _ID %token _LANGUAGE _CHARACTERISTICS _VERSION _MOVEABLE _FIXED _PURE _IMPURE _PRELOAD _LOADONCALL _DISCARDABLE @@ -246,6 +254,13 @@ var %type <TMemoryStream> raw_data raw_item %type <TFileStream> filename_string +%left '|' +%left '^' +%left '&' +%left '+' '-' +%left '*' '/' '%' +%right '~' _NUMNEG + %% rcfile @@ -379,13 +394,22 @@ numpos ; numeral - : _NUMDECIMAL { $$:= str_to_num(yytext); } - | _NUMHEX { $$:= str_to_num(yytext); } + : _NUMBER { $$:= str_to_num(yytext); } ; numexpr : numeral | '(' numexpr ')' { $$:= $2; } + | '~' numexpr %prec '~' { $$.v:= not $2.v; $$.long:= $2.long; } + | '-' numexpr %prec _NUMNEG { $$.v:= -$2.v; $$.long:= $2.long; } + | numexpr '*' numexpr { $$.v:= $1.v * $3.v; $$.long:= $1.long or $3.long; } + | numexpr '/' numexpr { $$.v:= $1.v div Max(1, $3.v); $$.long:= $1.long or $3.long; } + | numexpr '%' numexpr { $$.v:= $1.v mod Max(1, $3.v); $$.long:= $1.long or $3.long; } + | numexpr '+' numexpr { $$.v:= $1.v + $3.v; $$.long:= $1.long or $3.long; } + | numexpr '-' numexpr { $$.v:= $1.v - $3.v; $$.long:= $1.long or $3.long; } + | numexpr '&' numexpr { $$.v:= $1.v and $3.v; $$.long:= $1.long or $3.long; } + | numexpr '^' numexpr { $$.v:= $1.v xor $3.v; $$.long:= $1.long or $3.long; } + | numexpr '|' numexpr { $$.v:= $1.v or $3.v; $$.long:= $1.long or $3.long; } ; ident_string |