Changeset 12266 for src/Pugs/Lexer.hs
- Timestamp:
- 08/15/06 19:05:38 (2 years ago)
- Files:
-
- 1 modified
-
src/Pugs/Lexer.hs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Lexer.hs
r12265 r12266 263 263 -- | Backslashed non-alphanumerics (except for @\^@) translate into themselves. 264 264 escapeCode :: RuleParser String 265 escapeCode = ch charEsc <|> charNum<|> ch charAscii <|> ch charControl <|> ch anyChar265 escapeCode = charNum <|> ch charEsc <|> ch charAscii <|> ch charControl <|> ch anyChar 266 266 <?> "escape code" 267 267 where … … 278 278 charNum = do 279 279 codes <- choice 280 [ many1 digit >>= \ds -> do 281 error ("Error: \\" ++ ds ++ " is ambiguous: write as decimal \\d" ++ ds ++ " or octal \\o" ++ ds ++ " instead") -- $ return [read ds] 280 [ many1 digit >>= \ds -> case ds of 281 "0" -> return [0] 282 _ -> error ("Error: Invalid escape sequence \\" ++ ds ++ "; write as decimal \\d" ++ ds ++ " or octal \\o" ++ ds ++ " instead") -- $ return [read ds] 282 283 , based 'o' 8 octDigit 283 284 , based 'x' 16 hexDigit
