diff --git a/ghc/lib/std/PrelRead.lhs b/ghc/lib/std/PrelRead.lhs index a4e394b839e697ede50414f6f5334462ab873da2..1ef7b43d3cc694b633cff81c122af8e66eeb62e8 100644 --- a/ghc/lib/std/PrelRead.lhs +++ b/ghc/lib/std/PrelRead.lhs @@ -246,11 +246,13 @@ lexLitChar ('\\':s) = do lexEsc _ = mzero fromAsciiLab (x:y:z:ls) | isUpper y && (isUpper z || isDigit z) && - [x,y,z] `elem` asciiTab = return ([x,y,z], ls) + [x,y,z] `elem` asciiEscTab = return ([x,y,z], ls) fromAsciiLab (x:y:ls) | isUpper y && - [x,y] `elem` asciiTab = return ([x,y], ls) - fromAsciiLab _ = mzero + [x,y] `elem` asciiEscTab = return ([x,y], ls) + fromAsciiLab _ = mzero + asciiEscTab = "DEL" : asciiTab + lexLitChar (c:s) = return ([c],s) lexLitChar "" = mzero