module UU.Scanner.TokenShow() where import UU.Scanner.Token(Token,EnumValToken(..)) import UU.Scanner.Position(Pos(..)) import UU.Scanner.GenToken(GenToken(..)) instance Show Token where showsPrec _ token = showString (case token of Reserved key pos -> "symbol " ++ key ++ maybeshow pos ValToken tp val pos -> show tp ++ " " ++ val ++ maybeshow pos ) instance Show EnumValToken where show tp = case tp of TkOp -> "operator" TkConOp -> "con operator" TkString -> "string" TkChar -> "character" TkInteger8 -> "octal integer" TkInteger10 -> "decimal Integer" TkInteger16 -> "hexadecimal integer" TkFraction -> "fraction (float,...)" TkVarid -> "lower case identifier" TkConid -> "upper case identifier" TkTextnm -> "text name" TkTextln -> "text lines" TkError -> "error in scanner:" maybeshow :: Pos -> String maybeshow (Pos l c fn) | l <= 0 || c <= 0 = "" | otherwise = " at line " ++ show l ++ ", column " ++ show c ++ " of file " ++ show fn