- | Parse an escape character.
--
-- > {unicode}|\\[^\r\n\f0-9a-f]
--
-- An escape character is either a unicode character or a backslash
-- followed by any character other than \\r, \\n, \\f or a hexadecimal
-- digit.
escape :: Parser String
escape = (try unicode) <|> (do a <- char '\\'
                               b <- noneOf ("\n\r\f"++hexDigits)
                               return $ (a:[b])) <?> "escape"

escape :: Parser String
escape = (try unicode) <|> (do a <- char '\\'
                               b <- noneOf ("\n\r\f"++hexDigits)
                               return $ (a:[b])) <?> "escape"
escape = (try unicode) <|> (do a <- char '\\'
                               b <- noneOf ("\n\r\f"++hexDigits)
                               return $ (a:[b])) <?> "escape"