From 3a65c1912b6511b37676015290aeb34b0e66f9ff Mon Sep 17 00:00:00 2001 From: svenbarth Date: Wed, 12 Aug 2020 19:05:44 +0000 Subject: [PATCH] fcl-res: support octal numbers Reintegrate fpcres-rc branch by Martok git-svn-id: trunk@46382 - --- packages/fcl-res/src/rclex.inc | 1043 ++++++++++++++------------- packages/fcl-res/src/rclex.l | 2 + packages/fcl-res/src/rcparserfn.inc | 2 + 3 files changed, 544 insertions(+), 503 deletions(-) diff --git a/packages/fcl-res/src/rclex.inc b/packages/fcl-res/src/rclex.inc index 1e06960979..69fe8194a4 100644 --- a/packages/fcl-res/src/rclex.inc +++ b/packages/fcl-res/src/rclex.inc @@ -95,39 +95,41 @@ begin 9: return(_NUMBER); 10: - begin start(INSTRINGL); strbuf_begin(); end; + return(_NUMBER); 11: - begin start(INSTRING); strbuf_begin(); end; + begin start(INSTRINGL); strbuf_begin(); end; 12: - strbuf_append('"'); + begin start(INSTRING); strbuf_begin(); end; 13: + strbuf_append('"'); + 14: begin start(0); return(_QUOTEDSTR); end; - 14: + 15: begin start(0); return(_QUOTEDSTRL); end; - 15: - ; 16: - return(_ILLEGAL); + ; 17: - strbuf_append(yytext); + return(_ILLEGAL); 18: - begin yytext:= 'StringFileInfo'; return(_STR_StringFileInfo); end; + strbuf_append(yytext); 19: - begin yytext:= 'VarFileInfo'; return(_STR_VarFileInfo); end; + begin yytext:= 'StringFileInfo'; return(_STR_StringFileInfo); end; 20: + begin yytext:= 'VarFileInfo'; return(_STR_VarFileInfo); end; + 21: begin yytext:= 'Translation'; return(_STR_Translation); end; - 21: - return(_BEGIN); 22: - return(_END); + return(_BEGIN); 23: + return(_END); + 24: begin if ypreproc.isdefine(yytext) then begin unget_char(' '); @@ -138,11 +140,11 @@ begin else return(_ID); end; - 24: - ; 25: - returnc(yytext[1]); + ; 26: + returnc(yytext[1]); + 27: return(_ILLEGAL); end; end(*yyaction*); @@ -156,10 +158,10 @@ type YYTRec = record const -yynmarks = 60; -yynmatches = 60; -yyntrans = 127; -yynstates = 91; +yynmarks = 62; +yynmatches = 62; +yyntrans = 131; +yynstates = 94; yyk : array [1..yynmarks] of Integer = ( { 0: } @@ -173,45 +175,45 @@ yyk : array [1..yynmarks] of Integer = ( { 8: } { 9: } { 10: } - 25, 26, + 27, { 11: } 8, - 26, + 27, { 12: } 8, - 26, + 27, { 13: } - 23, - 26, + 24, + 27, { 14: } - 11, - 26, + 12, + 27, { 15: } - 23, - 26, + 24, + 27, { 16: } - 21, - 26, - { 17: } - 23, - 26, - { 18: } 22, - 26, - { 19: } + 27, + { 17: } + 24, + 27, + { 18: } 23, - 26, + 27, + { 19: } + 24, + 27, { 20: } - 24, - { 21: } 25, + { 21: } 26, + 27, { 22: } - 24, - 26, + 25, + 27, { 23: } - 26, + 27, { 24: } 2, { 25: } @@ -223,17 +225,17 @@ yyk : array [1..yynmarks] of Integer = ( { 28: } 7, { 29: } - 13, - 17, - { 30: } - 17, - { 31: } - 16, - { 32: } - 17, - { 33: } 14, + 18, + { 30: } + 18, + { 31: } 17, + { 32: } + 18, + { 33: } + 15, + 18, { 34: } 1, { 35: } @@ -244,44 +246,46 @@ yyk : array [1..yynmarks] of Integer = ( 8, { 38: } { 39: } - 10, { 40: } - 23, + 11, { 41: } + 24, { 42: } { 43: } { 44: } - 23, { 45: } - 23, + 24, { 46: } - 6, + 24, { 47: } - 12, + 6, { 48: } - 15, + 13, { 49: } - 9, + 16, { 50: } - { 51: } - 23, - { 52: } - 22, - 23, - { 53: } 9, + { 51: } + 10, + { 52: } + { 53: } + 24, { 54: } - { 55: } - { 56: } - { 57: } 23, + 24, + { 55: } + 9, + { 56: } + 10, + { 57: } { 58: } { 59: } - 21, - 23, { 60: } + 24, { 61: } { 62: } + 22, + 24, { 63: } { 64: } { 65: } @@ -289,14 +293,14 @@ yyk : array [1..yynmarks] of Integer = ( { 67: } { 68: } { 69: } - 19, { 70: } - 20, { 71: } - 18 { 72: } + 20, { 73: } + 21, { 74: } + 19 { 75: } { 76: } { 77: } @@ -313,6 +317,9 @@ yyk : array [1..yynmarks] of Integer = ( { 88: } { 89: } { 90: } + { 91: } + { 92: } + { 93: } ); yym : array [1..yynmatches] of Integer = ( @@ -327,45 +334,45 @@ yym : array [1..yynmatches] of Integer = ( { 8: } { 9: } { 10: } - 25, 26, + 27, { 11: } 8, - 26, + 27, { 12: } 8, - 26, + 27, { 13: } - 23, - 26, + 24, + 27, { 14: } - 11, - 26, + 12, + 27, { 15: } - 23, - 26, + 24, + 27, { 16: } - 21, - 26, -{ 17: } - 23, - 26, -{ 18: } 22, - 26, -{ 19: } + 27, +{ 17: } + 24, + 27, +{ 18: } 23, - 26, + 27, +{ 19: } + 24, + 27, { 20: } - 24, -{ 21: } 25, +{ 21: } 26, + 27, { 22: } - 24, - 26, + 25, + 27, { 23: } - 26, + 27, { 24: } 2, { 25: } @@ -377,17 +384,17 @@ yym : array [1..yynmatches] of Integer = ( { 28: } 7, { 29: } - 13, - 17, -{ 30: } - 17, -{ 31: } - 16, -{ 32: } - 17, -{ 33: } 14, + 18, +{ 30: } + 18, +{ 31: } 17, +{ 32: } + 18, +{ 33: } + 15, + 18, { 34: } 1, { 35: } @@ -398,44 +405,46 @@ yym : array [1..yynmatches] of Integer = ( 8, { 38: } { 39: } - 10, { 40: } - 23, + 11, { 41: } + 24, { 42: } { 43: } { 44: } - 23, { 45: } - 23, + 24, { 46: } - 6, + 24, { 47: } - 12, + 6, { 48: } - 15, + 13, { 49: } - 9, + 16, { 50: } -{ 51: } - 23, -{ 52: } - 22, - 23, -{ 53: } 9, +{ 51: } + 10, +{ 52: } +{ 53: } + 24, { 54: } -{ 55: } -{ 56: } -{ 57: } 23, + 24, +{ 55: } + 9, +{ 56: } + 10, +{ 57: } { 58: } { 59: } - 21, - 23, { 60: } + 24, { 61: } { 62: } + 22, + 24, { 63: } { 64: } { 65: } @@ -443,14 +452,14 @@ yym : array [1..yynmatches] of Integer = ( { 67: } { 68: } { 69: } - 19, { 70: } - 20, { 71: } - 18 { 72: } + 20, { 73: } + 21, { 74: } + 19 { 75: } { 76: } { 77: } @@ -467,6 +476,9 @@ yym : array [1..yynmatches] of Integer = ( { 88: } { 89: } { 90: } +{ 91: } +{ 92: } +{ 93: } ); yyt : array [1..yyntrans] of YYTrec = ( @@ -545,24 +557,25 @@ yyt : array [1..yyntrans] of YYTrec = ( { 12: } ( cc: [ '0'..'9' ]; s: 36), ( cc: [ 'L' ]; s: 37), + ( cc: [ 'o' ]; s: 39), ( cc: [ 'x' ]; s: 38), { 13: } - ( cc: [ '"' ]; s: 39), - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 40), + ( cc: [ '"' ]; s: 40), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 41), { 14: } - ( cc: [ 'S' ]; s: 41), - ( cc: [ 'T' ]; s: 43), - ( cc: [ 'V' ]; s: 42), + ( cc: [ 'S' ]; s: 42), + ( cc: [ 'T' ]; s: 44), + ( cc: [ 'V' ]; s: 43), { 15: } - ( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 40), - ( cc: [ 'E' ]; s: 44), + ( cc: [ '0'..'9','A'..'D','F'..'Z','_','a'..'z' ]; s: 41), + ( cc: [ 'E' ]; s: 45), { 16: } { 17: } - ( cc: [ '0'..'9','A'..'M','O'..'Z','_','a'..'z' ]; s: 40), - ( cc: [ 'N' ]; s: 45), + ( cc: [ '0'..'9','A'..'M','O'..'Z','_','a'..'z' ]; s: 41), + ( cc: [ 'N' ]; s: 46), { 18: } { 19: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 40), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 41), { 20: } { 21: } { 22: } @@ -571,16 +584,16 @@ yyt : array [1..yyntrans] of YYTrec = ( { 25: } { 26: } { 27: } - ( cc: [ '/' ]; s: 46), + ( cc: [ '/' ]; s: 47), { 28: } { 29: } - ( cc: [ '"' ]; s: 47), + ( cc: [ '"' ]; s: 48), { 30: } - ( cc: [ #10 ]; s: 48), + ( cc: [ #10 ]; s: 49), { 31: } { 32: } { 33: } - ( cc: [ '"' ]; s: 47), + ( cc: [ '"' ]; s: 48), { 34: } { 35: } { 36: } @@ -588,108 +601,114 @@ yyt : array [1..yyntrans] of YYTrec = ( ( cc: [ 'L' ]; s: 37), { 37: } { 38: } - ( cc: [ '0'..'9','A'..'F','a'..'f' ]; s: 49), + ( cc: [ '0'..'9','A'..'F','a'..'f' ]; s: 50), { 39: } + ( cc: [ '0'..'7' ]; s: 51), { 40: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 40), { 41: } - ( cc: [ 't' ]; s: 50), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 41), { 42: } - ( cc: [ 'a' ]; s: 74), + ( cc: [ 't' ]; s: 52), { 43: } - ( cc: [ 'r' ]; s: 73), + ( cc: [ 'a' ]; s: 77), { 44: } - ( cc: [ '0'..'9','A'..'F','H'..'Z','_','a'..'z' ]; s: 40), - ( cc: [ 'G' ]; s: 51), + ( cc: [ 'r' ]; s: 76), { 45: } - ( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 40), - ( cc: [ 'D' ]; s: 52), + ( cc: [ '0'..'9','A'..'F','H'..'Z','_','a'..'z' ]; s: 41), + ( cc: [ 'G' ]; s: 53), { 46: } + ( cc: [ '0'..'9','A'..'C','E'..'Z','_','a'..'z' ]; s: 41), + ( cc: [ 'D' ]; s: 54), { 47: } { 48: } { 49: } - ( cc: [ '0'..'9','A'..'F','a'..'f' ]; s: 49), - ( cc: [ 'L' ]; s: 53), { 50: } - ( cc: [ 'r' ]; s: 54), + ( cc: [ '0'..'9','A'..'F','a'..'f' ]; s: 50), + ( cc: [ 'L' ]; s: 55), { 51: } - ( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 40), - ( cc: [ 'I' ]; s: 57), + ( cc: [ '0'..'7' ]; s: 51), + ( cc: [ 'L' ]; s: 56), { 52: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 40), + ( cc: [ 'r' ]; s: 57), { 53: } + ( cc: [ '0'..'9','A'..'H','J'..'Z','_','a'..'z' ]; s: 41), + ( cc: [ 'I' ]; s: 60), { 54: } - ( cc: [ 'i' ]; s: 76), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 41), { 55: } - ( cc: [ 'F' ]; s: 75), { 56: } - ( cc: [ 'n' ]; s: 58), { 57: } - ( cc: [ '0'..'9','A'..'M','O'..'Z','_','a'..'z' ]; s: 40), - ( cc: [ 'N' ]; s: 59), + ( cc: [ 'i' ]; s: 79), { 58: } - ( cc: [ 's' ]; s: 77), + ( cc: [ 'F' ]; s: 78), { 59: } - ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 40), + ( cc: [ 'n' ]; s: 61), { 60: } - ( cc: [ 'g' ]; s: 90), + ( cc: [ '0'..'9','A'..'M','O'..'Z','_','a'..'z' ]; s: 41), + ( cc: [ 'N' ]; s: 62), { 61: } - ( cc: [ 'l' ]; s: 62), + ( cc: [ 's' ]; s: 80), { 62: } - ( cc: [ 'e' ]; s: 64), + ( cc: [ '0'..'9','A'..'Z','_','a'..'z' ]; s: 41), { 63: } - ( cc: [ 'a' ]; s: 72), + ( cc: [ 'g' ]; s: 93), { 64: } - ( cc: [ 'I' ]; s: 80), + ( cc: [ 'l' ]; s: 65), { 65: } - ( cc: [ 'f' ]; s: 67), + ( cc: [ 'e' ]; s: 67), { 66: } - ( cc: [ 'o' ]; s: 82), + ( cc: [ 'a' ]; s: 75), { 67: } - ( cc: [ 'o' ]; s: 68), + ( cc: [ 'I' ]; s: 83), { 68: } - ( cc: [ '"' ]; s: 69), + ( cc: [ 'f' ]; s: 70), { 69: } + ( cc: [ 'o' ]; s: 85), { 70: } + ( cc: [ 'o' ]; s: 71), { 71: } + ( cc: [ '"' ]; s: 72), { 72: } - ( cc: [ 't' ]; s: 79), { 73: } - ( cc: [ 'a' ]; s: 56), { 74: } - ( cc: [ 'r' ]; s: 55), { 75: } - ( cc: [ 'i' ]; s: 61), + ( cc: [ 't' ]; s: 82), { 76: } - ( cc: [ 'n' ]; s: 60), + ( cc: [ 'a' ]; s: 59), { 77: } - ( cc: [ 'l' ]; s: 63), + ( cc: [ 'r' ]; s: 58), { 78: } - ( cc: [ '"' ]; s: 70), + ( cc: [ 'i' ]; s: 64), { 79: } - ( cc: [ 'i' ]; s: 66), + ( cc: [ 'n' ]; s: 63), { 80: } - ( cc: [ 'n' ]; s: 65), + ( cc: [ 'l' ]; s: 66), { 81: } - ( cc: [ '"' ]; s: 71), + ( cc: [ '"' ]; s: 73), { 82: } - ( cc: [ 'n' ]; s: 78), + ( cc: [ 'i' ]; s: 69), { 83: } - ( cc: [ 'o' ]; s: 81), + ( cc: [ 'n' ]; s: 68), { 84: } - ( cc: [ 'f' ]; s: 83), + ( cc: [ '"' ]; s: 74), { 85: } - ( cc: [ 'n' ]; s: 84), + ( cc: [ 'n' ]; s: 81), { 86: } - ( cc: [ 'I' ]; s: 85), + ( cc: [ 'o' ]; s: 84), { 87: } - ( cc: [ 'e' ]; s: 86), + ( cc: [ 'f' ]; s: 86), { 88: } - ( cc: [ 'l' ]; s: 87), + ( cc: [ 'n' ]; s: 87), { 89: } - ( cc: [ 'i' ]; s: 88), + ( cc: [ 'I' ]; s: 88), { 90: } - ( cc: [ 'F' ]; s: 89) + ( cc: [ 'e' ]; s: 89), +{ 91: } + ( cc: [ 'l' ]; s: 90), +{ 92: } + ( cc: [ 'i' ]; s: 91), +{ 93: } + ( cc: [ 'F' ]; s: 92) ); yykl : array [0..yynstates-1] of Integer = ( @@ -733,57 +752,60 @@ yykl : array [0..yynstates-1] of Integer = ( { 37: } 42, { 38: } 43, { 39: } 43, -{ 40: } 44, -{ 41: } 45, +{ 40: } 43, +{ 41: } 44, { 42: } 45, { 43: } 45, { 44: } 45, -{ 45: } 46, -{ 46: } 47, -{ 47: } 48, -{ 48: } 49, -{ 49: } 50, -{ 50: } 51, +{ 45: } 45, +{ 46: } 46, +{ 47: } 47, +{ 48: } 48, +{ 49: } 49, +{ 50: } 50, { 51: } 51, { 52: } 52, -{ 53: } 54, -{ 54: } 55, +{ 53: } 52, +{ 54: } 53, { 55: } 55, -{ 56: } 55, -{ 57: } 55, -{ 58: } 56, -{ 59: } 56, -{ 60: } 58, +{ 56: } 56, +{ 57: } 57, +{ 58: } 57, +{ 59: } 57, +{ 60: } 57, { 61: } 58, { 62: } 58, -{ 63: } 58, -{ 64: } 58, -{ 65: } 58, -{ 66: } 58, -{ 67: } 58, -{ 68: } 58, -{ 69: } 58, -{ 70: } 59, +{ 63: } 60, +{ 64: } 60, +{ 65: } 60, +{ 66: } 60, +{ 67: } 60, +{ 68: } 60, +{ 69: } 60, +{ 70: } 60, { 71: } 60, -{ 72: } 61, +{ 72: } 60, { 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, -{ 88: } 61, -{ 89: } 61, -{ 90: } 61 +{ 74: } 62, +{ 75: } 63, +{ 76: } 63, +{ 77: } 63, +{ 78: } 63, +{ 79: } 63, +{ 80: } 63, +{ 81: } 63, +{ 82: } 63, +{ 83: } 63, +{ 84: } 63, +{ 85: } 63, +{ 86: } 63, +{ 87: } 63, +{ 88: } 63, +{ 89: } 63, +{ 90: } 63, +{ 91: } 63, +{ 92: } 63, +{ 93: } 63 ); yykh : array [0..yynstates-1] of Integer = ( @@ -826,58 +848,61 @@ yykh : array [0..yynstates-1] of Integer = ( { 36: } 41, { 37: } 42, { 38: } 42, -{ 39: } 43, -{ 40: } 44, +{ 39: } 42, +{ 40: } 43, { 41: } 44, { 42: } 44, { 43: } 44, -{ 44: } 45, -{ 45: } 46, -{ 46: } 47, -{ 47: } 48, -{ 48: } 49, -{ 49: } 50, +{ 44: } 44, +{ 45: } 45, +{ 46: } 46, +{ 47: } 47, +{ 48: } 48, +{ 49: } 49, { 50: } 50, { 51: } 51, -{ 52: } 53, -{ 53: } 54, +{ 52: } 51, +{ 53: } 52, { 54: } 54, -{ 55: } 54, -{ 56: } 54, -{ 57: } 55, -{ 58: } 55, -{ 59: } 57, +{ 55: } 55, +{ 56: } 56, +{ 57: } 56, +{ 58: } 56, +{ 59: } 56, { 60: } 57, { 61: } 57, -{ 62: } 57, -{ 63: } 57, -{ 64: } 57, -{ 65: } 57, -{ 66: } 57, -{ 67: } 57, -{ 68: } 57, -{ 69: } 58, +{ 62: } 59, +{ 63: } 59, +{ 64: } 59, +{ 65: } 59, +{ 66: } 59, +{ 67: } 59, +{ 68: } 59, +{ 69: } 59, { 70: } 59, -{ 71: } 60, +{ 71: } 59, { 72: } 60, -{ 73: } 60, -{ 74: } 60, -{ 75: } 60, -{ 76: } 60, -{ 77: } 60, -{ 78: } 60, -{ 79: } 60, -{ 80: } 60, -{ 81: } 60, -{ 82: } 60, -{ 83: } 60, -{ 84: } 60, -{ 85: } 60, -{ 86: } 60, -{ 87: } 60, -{ 88: } 60, -{ 89: } 60, -{ 90: } 60 +{ 73: } 61, +{ 74: } 62, +{ 75: } 62, +{ 76: } 62, +{ 77: } 62, +{ 78: } 62, +{ 79: } 62, +{ 80: } 62, +{ 81: } 62, +{ 82: } 62, +{ 83: } 62, +{ 84: } 62, +{ 85: } 62, +{ 86: } 62, +{ 87: } 62, +{ 88: } 62, +{ 89: } 62, +{ 90: } 62, +{ 91: } 62, +{ 92: } 62, +{ 93: } 62 ); yyml : array [0..yynstates-1] of Integer = ( @@ -921,57 +946,60 @@ yyml : array [0..yynstates-1] of Integer = ( { 37: } 42, { 38: } 43, { 39: } 43, -{ 40: } 44, -{ 41: } 45, +{ 40: } 43, +{ 41: } 44, { 42: } 45, { 43: } 45, { 44: } 45, -{ 45: } 46, -{ 46: } 47, -{ 47: } 48, -{ 48: } 49, -{ 49: } 50, -{ 50: } 51, +{ 45: } 45, +{ 46: } 46, +{ 47: } 47, +{ 48: } 48, +{ 49: } 49, +{ 50: } 50, { 51: } 51, { 52: } 52, -{ 53: } 54, -{ 54: } 55, +{ 53: } 52, +{ 54: } 53, { 55: } 55, -{ 56: } 55, -{ 57: } 55, -{ 58: } 56, -{ 59: } 56, -{ 60: } 58, +{ 56: } 56, +{ 57: } 57, +{ 58: } 57, +{ 59: } 57, +{ 60: } 57, { 61: } 58, { 62: } 58, -{ 63: } 58, -{ 64: } 58, -{ 65: } 58, -{ 66: } 58, -{ 67: } 58, -{ 68: } 58, -{ 69: } 58, -{ 70: } 59, +{ 63: } 60, +{ 64: } 60, +{ 65: } 60, +{ 66: } 60, +{ 67: } 60, +{ 68: } 60, +{ 69: } 60, +{ 70: } 60, { 71: } 60, -{ 72: } 61, +{ 72: } 60, { 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, -{ 88: } 61, -{ 89: } 61, -{ 90: } 61 +{ 74: } 62, +{ 75: } 63, +{ 76: } 63, +{ 77: } 63, +{ 78: } 63, +{ 79: } 63, +{ 80: } 63, +{ 81: } 63, +{ 82: } 63, +{ 83: } 63, +{ 84: } 63, +{ 85: } 63, +{ 86: } 63, +{ 87: } 63, +{ 88: } 63, +{ 89: } 63, +{ 90: } 63, +{ 91: } 63, +{ 92: } 63, +{ 93: } 63 ); yymh : array [0..yynstates-1] of Integer = ( @@ -1014,58 +1042,61 @@ yymh : array [0..yynstates-1] of Integer = ( { 36: } 41, { 37: } 42, { 38: } 42, -{ 39: } 43, -{ 40: } 44, +{ 39: } 42, +{ 40: } 43, { 41: } 44, { 42: } 44, { 43: } 44, -{ 44: } 45, -{ 45: } 46, -{ 46: } 47, -{ 47: } 48, -{ 48: } 49, -{ 49: } 50, +{ 44: } 44, +{ 45: } 45, +{ 46: } 46, +{ 47: } 47, +{ 48: } 48, +{ 49: } 49, { 50: } 50, { 51: } 51, -{ 52: } 53, -{ 53: } 54, +{ 52: } 51, +{ 53: } 52, { 54: } 54, -{ 55: } 54, -{ 56: } 54, -{ 57: } 55, -{ 58: } 55, -{ 59: } 57, +{ 55: } 55, +{ 56: } 56, +{ 57: } 56, +{ 58: } 56, +{ 59: } 56, { 60: } 57, { 61: } 57, -{ 62: } 57, -{ 63: } 57, -{ 64: } 57, -{ 65: } 57, -{ 66: } 57, -{ 67: } 57, -{ 68: } 57, -{ 69: } 58, +{ 62: } 59, +{ 63: } 59, +{ 64: } 59, +{ 65: } 59, +{ 66: } 59, +{ 67: } 59, +{ 68: } 59, +{ 69: } 59, { 70: } 59, -{ 71: } 60, +{ 71: } 59, { 72: } 60, -{ 73: } 60, -{ 74: } 60, -{ 75: } 60, -{ 76: } 60, -{ 77: } 60, -{ 78: } 60, -{ 79: } 60, -{ 80: } 60, -{ 81: } 60, -{ 82: } 60, -{ 83: } 60, -{ 84: } 60, -{ 85: } 60, -{ 86: } 60, -{ 87: } 60, -{ 88: } 60, -{ 89: } 60, -{ 90: } 60 +{ 73: } 61, +{ 74: } 62, +{ 75: } 62, +{ 76: } 62, +{ 77: } 62, +{ 78: } 62, +{ 79: } 62, +{ 80: } 62, +{ 81: } 62, +{ 82: } 62, +{ 83: } 62, +{ 84: } 62, +{ 85: } 62, +{ 86: } 62, +{ 87: } 62, +{ 88: } 62, +{ 89: } 62, +{ 90: } 62, +{ 91: } 62, +{ 92: } 62, +{ 93: } 62 ); yytl : array [0..yynstates-1] of Integer = ( @@ -1082,84 +1113,87 @@ yytl : array [0..yynstates-1] of Integer = ( { 10: } 55, { 11: } 57, { 12: } 59, -{ 13: } 62, -{ 14: } 64, -{ 15: } 67, -{ 16: } 69, -{ 17: } 69, -{ 18: } 71, -{ 19: } 71, -{ 20: } 72, -{ 21: } 72, -{ 22: } 72, -{ 23: } 72, -{ 24: } 72, -{ 25: } 72, -{ 26: } 72, -{ 27: } 72, -{ 28: } 73, -{ 29: } 73, -{ 30: } 74, -{ 31: } 75, -{ 32: } 75, -{ 33: } 75, -{ 34: } 76, -{ 35: } 76, -{ 36: } 76, -{ 37: } 78, -{ 38: } 78, -{ 39: } 79, -{ 40: } 79, -{ 41: } 80, -{ 42: } 81, -{ 43: } 82, -{ 44: } 83, +{ 13: } 63, +{ 14: } 65, +{ 15: } 68, +{ 16: } 70, +{ 17: } 70, +{ 18: } 72, +{ 19: } 72, +{ 20: } 73, +{ 21: } 73, +{ 22: } 73, +{ 23: } 73, +{ 24: } 73, +{ 25: } 73, +{ 26: } 73, +{ 27: } 73, +{ 28: } 74, +{ 29: } 74, +{ 30: } 75, +{ 31: } 76, +{ 32: } 76, +{ 33: } 76, +{ 34: } 77, +{ 35: } 77, +{ 36: } 77, +{ 37: } 79, +{ 38: } 79, +{ 39: } 80, +{ 40: } 81, +{ 41: } 81, +{ 42: } 82, +{ 43: } 83, +{ 44: } 84, { 45: } 85, { 46: } 87, -{ 47: } 87, -{ 48: } 87, -{ 49: } 87, +{ 47: } 89, +{ 48: } 89, +{ 49: } 89, { 50: } 89, -{ 51: } 90, -{ 52: } 92, -{ 53: } 93, -{ 54: } 93, -{ 55: } 94, -{ 56: } 95, -{ 57: } 96, +{ 51: } 91, +{ 52: } 93, +{ 53: } 94, +{ 54: } 96, +{ 55: } 97, +{ 56: } 97, +{ 57: } 97, { 58: } 98, { 59: } 99, { 60: } 100, -{ 61: } 101, -{ 62: } 102, -{ 63: } 103, -{ 64: } 104, -{ 65: } 105, -{ 66: } 106, -{ 67: } 107, -{ 68: } 108, -{ 69: } 109, -{ 70: } 109, -{ 71: } 109, -{ 72: } 109, -{ 73: } 110, -{ 74: } 111, -{ 75: } 112, -{ 76: } 113, -{ 77: } 114, -{ 78: } 115, -{ 79: } 116, -{ 80: } 117, -{ 81: } 118, -{ 82: } 119, -{ 83: } 120, -{ 84: } 121, -{ 85: } 122, -{ 86: } 123, -{ 87: } 124, -{ 88: } 125, -{ 89: } 126, -{ 90: } 127 +{ 61: } 102, +{ 62: } 103, +{ 63: } 104, +{ 64: } 105, +{ 65: } 106, +{ 66: } 107, +{ 67: } 108, +{ 68: } 109, +{ 69: } 110, +{ 70: } 111, +{ 71: } 112, +{ 72: } 113, +{ 73: } 113, +{ 74: } 113, +{ 75: } 113, +{ 76: } 114, +{ 77: } 115, +{ 78: } 116, +{ 79: } 117, +{ 80: } 118, +{ 81: } 119, +{ 82: } 120, +{ 83: } 121, +{ 84: } 122, +{ 85: } 123, +{ 86: } 124, +{ 87: } 125, +{ 88: } 126, +{ 89: } 127, +{ 90: } 128, +{ 91: } 129, +{ 92: } 130, +{ 93: } 131 ); yyth : array [0..yynstates-1] of Integer = ( @@ -1175,85 +1209,88 @@ yyth : array [0..yynstates-1] of Integer = ( { 9: } 54, { 10: } 56, { 11: } 58, -{ 12: } 61, -{ 13: } 63, -{ 14: } 66, -{ 15: } 68, -{ 16: } 68, -{ 17: } 70, -{ 18: } 70, -{ 19: } 71, -{ 20: } 71, -{ 21: } 71, -{ 22: } 71, -{ 23: } 71, -{ 24: } 71, -{ 25: } 71, -{ 26: } 71, -{ 27: } 72, -{ 28: } 72, -{ 29: } 73, -{ 30: } 74, -{ 31: } 74, -{ 32: } 74, -{ 33: } 75, -{ 34: } 75, -{ 35: } 75, -{ 36: } 77, -{ 37: } 77, -{ 38: } 78, -{ 39: } 78, -{ 40: } 79, -{ 41: } 80, -{ 42: } 81, -{ 43: } 82, +{ 12: } 62, +{ 13: } 64, +{ 14: } 67, +{ 15: } 69, +{ 16: } 69, +{ 17: } 71, +{ 18: } 71, +{ 19: } 72, +{ 20: } 72, +{ 21: } 72, +{ 22: } 72, +{ 23: } 72, +{ 24: } 72, +{ 25: } 72, +{ 26: } 72, +{ 27: } 73, +{ 28: } 73, +{ 29: } 74, +{ 30: } 75, +{ 31: } 75, +{ 32: } 75, +{ 33: } 76, +{ 34: } 76, +{ 35: } 76, +{ 36: } 78, +{ 37: } 78, +{ 38: } 79, +{ 39: } 80, +{ 40: } 80, +{ 41: } 81, +{ 42: } 82, +{ 43: } 83, { 44: } 84, { 45: } 86, -{ 46: } 86, -{ 47: } 86, -{ 48: } 86, +{ 46: } 88, +{ 47: } 88, +{ 48: } 88, { 49: } 88, -{ 50: } 89, -{ 51: } 91, -{ 52: } 92, -{ 53: } 92, -{ 54: } 93, -{ 55: } 94, -{ 56: } 95, +{ 50: } 90, +{ 51: } 92, +{ 52: } 93, +{ 53: } 95, +{ 54: } 96, +{ 55: } 96, +{ 56: } 96, { 57: } 97, { 58: } 98, { 59: } 99, -{ 60: } 100, -{ 61: } 101, -{ 62: } 102, -{ 63: } 103, -{ 64: } 104, -{ 65: } 105, -{ 66: } 106, -{ 67: } 107, -{ 68: } 108, -{ 69: } 108, -{ 70: } 108, -{ 71: } 108, -{ 72: } 109, -{ 73: } 110, -{ 74: } 111, -{ 75: } 112, -{ 76: } 113, -{ 77: } 114, -{ 78: } 115, -{ 79: } 116, -{ 80: } 117, -{ 81: } 118, -{ 82: } 119, -{ 83: } 120, -{ 84: } 121, -{ 85: } 122, -{ 86: } 123, -{ 87: } 124, -{ 88: } 125, -{ 89: } 126, -{ 90: } 127 +{ 60: } 101, +{ 61: } 102, +{ 62: } 103, +{ 63: } 104, +{ 64: } 105, +{ 65: } 106, +{ 66: } 107, +{ 67: } 108, +{ 68: } 109, +{ 69: } 110, +{ 70: } 111, +{ 71: } 112, +{ 72: } 112, +{ 73: } 112, +{ 74: } 112, +{ 75: } 113, +{ 76: } 114, +{ 77: } 115, +{ 78: } 116, +{ 79: } 117, +{ 80: } 118, +{ 81: } 119, +{ 82: } 120, +{ 83: } 121, +{ 84: } 122, +{ 85: } 123, +{ 86: } 124, +{ 87: } 125, +{ 88: } 126, +{ 89: } 127, +{ 90: } 128, +{ 91: } 129, +{ 92: } 130, +{ 93: } 131 ); diff --git a/packages/fcl-res/src/rclex.l b/packages/fcl-res/src/rclex.l index 0e5f05b02e..be7bc7af29 100644 --- a/packages/fcl-res/src/rclex.l +++ b/packages/fcl-res/src/rclex.l @@ -59,6 +59,7 @@ end; %} %x INCOMLINE INCOMMENT INSTRING INSTRINGL +O [0-7] D [0-9] H [0-9a-fA-F] IDENT [a-zA-Z_]([a-zA-Z0-9_])* @@ -76,6 +77,7 @@ IDENT [a-zA-Z_]([a-zA-Z0-9_])* {D}+L? return(_NUMBER); 0x{H}+L? return(_NUMBER); +0o{O}+L? return(_NUMBER); L\" begin start(INSTRINGL); strbuf_begin(); end; \" begin start(INSTRING); strbuf_begin(); end; \"\" strbuf_append('"'); diff --git a/packages/fcl-res/src/rcparserfn.inc b/packages/fcl-res/src/rcparserfn.inc index 52c39e8d13..33f70c9093 100644 --- a/packages/fcl-res/src/rcparserfn.inc +++ b/packages/fcl-res/src/rcparserfn.inc @@ -120,6 +120,8 @@ begin Exit(0); if Copy(s, 1, 2) = '0x' then Exit(StrToInt('$' + Copy(s, 3, Maxint))); + if Copy(s, 1, 2) = '0o' then + Exit(StrToInt('&' + Copy(s, 3, Maxint))); if Copy(s, 1, 1) = '0' then Exit(StrToInt('&' + Copy(s, 2, Maxint))); Result:= StrToInt(s);