Re: pgsql-server/src/pl/plpgsql/src scan.l - Mailing list pgsql-committers
From | Bruce Momjian |
---|---|
Subject | Re: pgsql-server/src/pl/plpgsql/src scan.l |
Date | |
Msg-id | 200208040411.g744BlR02298@candle.pha.pa.us Whole thread Raw |
In response to | Re: pgsql-server/src/pl/plpgsql/src scan.l (Tom Lane <tgl@sss.pgh.pa.us>) |
List | pgsql-committers |
Tom Lane wrote: > momjian@postgresql.org (Bruce Momjian - CVS) writes: > > I send a simple patch for PL/pgSQL parser which allow now to use > > whitespaces in identifers of any kind(table names,attribute > > names,variables ...) in Pl/pgSQL procedural language.Explicit definition > > of bug can be found in Re: [HACKERS] Bug of PL/pgSQL parser > > I feel sure I pointed out that this patch is wrong. Yea, I was already researching this. I can't find your comment and I thought this was a _newer_ version of the patch. Can't find your comment in the archives. Let me attach the patch. Is it wrong? -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026 --- src/pl/plpgsql/src/scan.l Thu Mar 7 07:52:15 2002 +++ ../DONE/scan.l Mon Jul 22 06:53:14 2002 @@ -57,9 +57,9 @@ %option yylineno - -WS [\200-\377_A-Za-z"] -WC [\200-\377_A-Za-z0-9"] +DQUOTE \"([^\"])*\" +WS [\200-\377_A-Za-z] +WC [\200-\377_A-Za-z0-9] %x IN_STRING IN_COMMENT @@ -151,17 +151,48 @@ * ---------- */ {WS}{WC}* { return plpgsql_parse_word(yytext); } +{DQUOTE}* { return plpgsql_parse_word(yytext); } + {WS}{WC}*\.{WS}{WC}* { return plpgsql_parse_dblword(yytext); } +{WS}{WC}*\.{DQUOTE}* { return plpgsql_parse_dblword(yytext); } +{DQUOTE}*\.{WS}{WC}* { return plpgsql_parse_dblword(yytext); } +{DQUOTE}*\.{DQUOTE}* { return plpgsql_parse_dblword(yytext); } + {WS}{WC}*\.{WS}{WC}*\.{WS}{WC}* { return plpgsql_parse_tripword(yytext); } +{WS}{WC}*\.{WS}{WC}*\.{DQUOTE}* { return plpgsql_parse_tripword(yytext); } +{WS}{WC}*\.{DQUOTE}*\.{WS}{WC}* { return plpgsql_parse_tripword(yytext); } +{WS}{WC}*\.{DQUOTE}*\.{DQUOTE}* { return plpgsql_parse_tripword(yytext); } +{DQUOTE}*\.{WS}{WC}*\.{WS}{WC}* { return plpgsql_parse_tripword(yytext); } +{DQUOTE}*\.{WS}{WC}*\.{DQUOTE}* { return plpgsql_parse_tripword(yytext); } +{DQUOTE}*\.{DQUOTE}*\.{WS}{WC}* { return plpgsql_parse_tripword(yytext); } +{DQUOTE}*\.{DQUOTE}*\.{DQUOTE}* { return plpgsql_parse_tripword(yytext); } + {WS}{WC}*%TYPE { return plpgsql_parse_wordtype(yytext); } +{DQUOTE}*%TYPE { return plpgsql_parse_wordtype(yytext); } + {WS}{WC}*\.{WS}{WC}*%TYPE { return plpgsql_parse_dblwordtype(yytext); } +{WS}{WC}*\.{DQUOTE}*%TYPE { return plpgsql_parse_dblwordtype(yytext); } +{DQUOTE}*\.{WS}{WC}*%TYPE { return plpgsql_parse_dblwordtype(yytext); } +{DQUOTE}*\.{DQUOTE}*%TYPE { return plpgsql_parse_dblwordtype(yytext); } + {WS}{WC}*%ROWTYPE { return plpgsql_parse_wordrowtype(yytext); } +{DQUOTE}*%ROWTYPE { return plpgsql_parse_wordrowtype(yytext); } \$[0-9]+ { return plpgsql_parse_word(yytext); } + \$[0-9]+\.{WS}{WC}* { return plpgsql_parse_dblword(yytext); } +\$[0-9]+\.{DQUOTE}* { return plpgsql_parse_dblword(yytext); } + \$[0-9]+\.{WS}{WC}*\.{WS}{WC}* { return plpgsql_parse_tripword(yytext); } +\$[0-9]+\.{WS}{WC}*\.{DQUOTE}* { return plpgsql_parse_tripword(yytext); } +\$[0-9]+\.{DQUOTE}*\.{WS}{WC}* { return plpgsql_parse_tripword(yytext); } +\$[0-9]+\.{DQUOTE}*\.{DQUOTE}* { return plpgsql_parse_tripword(yytext); } + \$[0-9]+%TYPE { return plpgsql_parse_wordtype(yytext); } + \$[0-9]+\.{WS}{WC}*%TYPE { return plpgsql_parse_dblwordtype(yytext); } +\$[0-9]+\.{DQUOTE}*%TYPE { return plpgsql_parse_dblwordtype(yytext); } + \$[0-9]+%ROWTYPE { return plpgsql_parse_wordrowtype(yytext); } [0-9]+ { return T_NUMBER; }
pgsql-committers by date: