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 :: Int -> Token -> ShowS showsPrec _ token :: Token token = String -> ShowS showString (case Token token of Reserved key :: String key pos :: Pos pos -> "symbol " String -> ShowS forall a. [a] -> [a] -> [a] ++ String key String -> ShowS forall a. [a] -> [a] -> [a] ++ Pos -> String maybeshow Pos pos ValToken tp :: EnumValToken tp val :: String val pos :: Pos pos -> EnumValToken -> String forall a. Show a => a -> String show EnumValToken tp String -> ShowS forall a. [a] -> [a] -> [a] ++ " " String -> ShowS forall a. [a] -> [a] -> [a] ++ String val String -> ShowS forall a. [a] -> [a] -> [a] ++ Pos -> String maybeshow Pos pos ) instance Show EnumValToken where show :: EnumValToken -> String show tp :: EnumValToken tp = case EnumValToken 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 -> String maybeshow (Pos l :: Int l c :: Int c fn :: String fn) | Int l Int -> Int -> Bool forall a. Ord a => a -> a -> Bool <= 0 Bool -> Bool -> Bool || Int c Int -> Int -> Bool forall a. Ord a => a -> a -> Bool <= 0 = "" | Bool otherwise = " at line " String -> ShowS forall a. [a] -> [a] -> [a] ++ Int -> String forall a. Show a => a -> String show Int l String -> ShowS forall a. [a] -> [a] -> [a] ++ ", column " String -> ShowS forall a. [a] -> [a] -> [a] ++ Int -> String forall a. Show a => a -> String show Int c String -> ShowS forall a. [a] -> [a] -> [a] ++ " of file " String -> ShowS forall a. [a] -> [a] -> [a] ++ ShowS forall a. Show a => a -> String show String fn