"\Oxxx" and "\Xyyy" are not octal or hexadecimal escapes in Haskell 98,
and should not be lexed as such.
do s <- look
case s of
'o':_ -> do get; return 8
do s <- look
case s of
'o':_ -> do get; return 8
- 'O':_ -> do get; return 8
'x':_ -> do get; return 16
'x':_ -> do get; return 16
- 'X':_ -> do get; return 16
_ -> do return 10
lexCntrlChar =
_ -> do return 10
lexCntrlChar =