From 39aed9c0516fcf0a6b3372361ecfcf4874614578 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Wed, 24 Nov 2021 09:10:32 +0100 Subject: [PATCH v5 1/6] Improve some comments in scanner files --- src/backend/parser/scan.l | 14 ++++++++------ src/fe_utils/psqlscan.l | 14 ++++++++------ src/interfaces/ecpg/preproc/pgc.l | 16 +++++++++------- 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l index 6e6824faeb..4e02815803 100644 --- a/src/backend/parser/scan.l +++ b/src/backend/parser/scan.l @@ -174,7 +174,7 @@ extern void core_yyset_column(int column_no, yyscan_t yyscanner); * bit string literal * extended C-style comments * delimited identifiers (double-quoted identifiers) - * hexadecimal numeric string + * hexadecimal byte string * standard quoted strings * quote stop (detect continued strings) * extended quoted strings (support backslash escape sequences) @@ -262,7 +262,7 @@ quotecontinuefail {whitespace}*"-"? xbstart [bB]{quote} xbinside [^']* -/* Hexadecimal number */ +/* Hexadecimal byte string */ xhstart [xX]{quote} xhinside [^']* @@ -341,7 +341,6 @@ xcstart \/\*{op_chars}* xcstop \*+\/ xcinside [^*/]+ -digit [0-9] ident_start [A-Za-z\200-\377_] ident_cont [A-Za-z\200-\377_0-9\$] @@ -380,15 +379,18 @@ self [,()\[\].;\:\+\-\*\/\%\^\<\>\=] op_chars [\~\!\@\#\^\&\|\`\?\+\-\*\/\%\<\>\=] operator {op_chars}+ -/* we no longer allow unary minus in numbers. - * instead we pass it separately to parser. there it gets - * coerced via doNegate() -- Leon aug 20 1999 +/* + * Numbers + * + * Unary minus is not part of a number here. Instead we pass it separately to + * parser, and there it gets coerced via doNegate(). * * {decimalfail} is used because we would like "1..10" to lex as 1, dot_dot, 10. * * {realfail1} and {realfail2} are added to prevent the need for scanner * backup when the {real} rule fails to match completely. */ +digit [0-9] integer {digit}+ decimal (({digit}*\.{digit}+)|({digit}+\.{digit}*)) diff --git a/src/fe_utils/psqlscan.l b/src/fe_utils/psqlscan.l index 0fab48a382..9aac166aa0 100644 --- a/src/fe_utils/psqlscan.l +++ b/src/fe_utils/psqlscan.l @@ -112,7 +112,7 @@ extern void psql_yyset_column(int column_no, yyscan_t yyscanner); * bit string literal * extended C-style comments * delimited identifiers (double-quoted identifiers) - * hexadecimal numeric string + * hexadecimal byte string * standard quoted strings * quote stop (detect continued strings) * extended quoted strings (support backslash escape sequences) @@ -200,7 +200,7 @@ quotecontinuefail {whitespace}*"-"? xbstart [bB]{quote} xbinside [^']* -/* Hexadecimal number */ +/* Hexadecimal byte string */ xhstart [xX]{quote} xhinside [^']* @@ -279,7 +279,6 @@ xcstart \/\*{op_chars}* xcstop \*+\/ xcinside [^*/]+ -digit [0-9] ident_start [A-Za-z\200-\377_] ident_cont [A-Za-z\200-\377_0-9\$] @@ -318,15 +317,18 @@ self [,()\[\].;\:\+\-\*\/\%\^\<\>\=] op_chars [\~\!\@\#\^\&\|\`\?\+\-\*\/\%\<\>\=] operator {op_chars}+ -/* we no longer allow unary minus in numbers. - * instead we pass it separately to parser. there it gets - * coerced via doNegate() -- Leon aug 20 1999 +/* + * Numbers + * + * Unary minus is not part of a number here. Instead we pass it separately to + * parser, and there it gets coerced via doNegate(). * * {decimalfail} is used because we would like "1..10" to lex as 1, dot_dot, 10. * * {realfail1} and {realfail2} are added to prevent the need for scanner * backup when the {real} rule fails to match completely. */ +digit [0-9] integer {digit}+ decimal (({digit}*\.{digit}+)|({digit}+\.{digit}*)) diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l index 7a0356638d..7c3bf52bfa 100644 --- a/src/interfaces/ecpg/preproc/pgc.l +++ b/src/interfaces/ecpg/preproc/pgc.l @@ -130,7 +130,7 @@ static struct _if_value * extended C-style comments * delimited identifiers (double-quoted identifiers) * double-quoted strings in C - * hexadecimal numeric string + * hexadecimal byte string * national character quoted strings * standard quoted strings * quote stop (detect continued strings) @@ -223,7 +223,7 @@ quotecontinuefail {whitespace}*"-"? xbstart [bB]{quote} xbinside [^']* -/* Hexadecimal number */ +/* Hexadecimal byte string */ xhstart [xX]{quote} xhinside [^']* @@ -305,7 +305,6 @@ xcstart \/\*{op_chars}* xcstop \*+\/ xcinside [^*/]+ -digit [0-9] ident_start [A-Za-z\200-\377_] ident_cont [A-Za-z\200-\377_0-9\$] @@ -346,15 +345,18 @@ self [,()\[\].;\:\+\-\*\/\%\^\<\>\=] op_chars [\~\!\@\#\^\&\|\`\?\+\-\*\/\%\<\>\=] operator {op_chars}+ -/* we no longer allow unary minus in numbers. - * instead we pass it separately to parser. there it gets - * coerced via doNegate() -- Leon aug 20 1999 +/* + * Numbers + * + * Unary minus is not part of a number here. Instead we pass it separately to + * parser, and there it gets coerced via doNegate(). * * {decimalfail} is used because we would like "1..10" to lex as 1, dot_dot, 10. * * {realfail1} and {realfail2} are added to prevent the need for scanner * backup when the {real} rule fails to match completely. */ +digit [0-9] integer {digit}+ decimal (({digit}*\.{digit}+)|({digit}+\.{digit}*)) @@ -603,7 +605,7 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})((\/\*[^*/]*\*+ return BCONST; case xh: if (literalbuf[strspn(literalbuf, "0123456789abcdefABCDEF")] != '\0') - mmerror(PARSE_ERROR, ET_ERROR, "invalid hex string literal"); + mmerror(PARSE_ERROR, ET_ERROR, "invalid hexadecimal string literal"); base_yylval.str = psprintf("x'%s'", literalbuf); return XCONST; case xq: -- 2.33.1