mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 17:19:32 +02:00
fcl-res: numeric expressions
Reintegrate fpcres-rc branch by Martok git-svn-id: trunk@46379 -
This commit is contained in:
parent
8a10f1651d
commit
1ee401aee1
@ -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,97 +849,6 @@ yykl : array [0..yynstates-1] of Integer = (
|
||||
{ 87: } 60
|
||||
);
|
||||
|
||||
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: } 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
|
||||
);
|
||||
|
||||
yyml : array [0..yynstates-1] of Integer = (
|
||||
{ 0: } 1,
|
||||
{ 1: } 2,
|
||||
@ -859,52 +861,143 @@ yyml : 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
|
||||
);
|
||||
|
||||
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: } 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,
|
||||
|
@ -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);
|
||||
%%
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user