elm/compiler/SourceSyntax/Literal.hs
2013-07-13 01:05:48 +02:00

22 lines
No EOL
589 B
Haskell

{-# LANGUAGE DeriveDataTypeable #-}
module SourceSyntax.Literal where
import Data.Data
import SourceSyntax.PrettyPrint
import qualified Text.PrettyPrint as PP
data Literal = IntNum Int
| FloatNum Float
| Chr Char
| Str String
| Boolean Bool
deriving (Eq, Ord, Data, Typeable, Show)
instance Pretty Literal where
pretty literal =
case literal of
IntNum n -> PP.int n
FloatNum n -> PP.float n
Chr c -> PP.quotes (PP.char c)
Str s -> PP.text (show s)
Boolean bool -> PP.text (show bool)