--- 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;			}
