Remove backup states from Unicode escapes
authorPeter Eisentraut <[email protected]>
Fri, 25 Sep 2009 20:51:37 +0000 (20:51 +0000)
committerPeter Eisentraut <[email protected]>
Fri, 25 Sep 2009 20:51:37 +0000 (20:51 +0000)
src/backend/parser/scan.l

index 99a4c5649a2eb6260f2633935bcb49ba3181d529..0b8d5f7cd87790e45b6a51cfa3ff48c86d0660b1 100644 (file)
@@ -231,7 +231,7 @@ xeescape            [\\][^0-7]
 xeoctesc               [\\][0-7]{1,3}
 xehexesc               [\\]x[0-9A-Fa-f]{1,2}
 xeunicode              [\\](u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})
-xeunicodebad   [\\]([uU])
+xeunicodefail  [\\](u[0-9A-Fa-f]{0,3}|U[0-9A-Fa-f]{0,7})
 
 /* Extended quote
  * xqdouble implements embedded quote, ''''
@@ -575,7 +575,7 @@ other                       .
 <xeu>\n                        |
 <xeu><<EOF>>   { yyerror("invalid Unicode surrogate pair"); }
 
-<xe>{xeunicodebad}     {
+<xe,xeu>{xeunicodefail}        {
                                                ereport(ERROR,
                                                                (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE),
                                                                 errmsg("invalid Unicode escape"),