module Language.Lsd.AST.Type.Enum ( EnumFormat (..) , EnumItemFormat (..) , EnumType (..) ) where import Language.Lsd.AST.Common (Keyword) import Language.Lsd.AST.Format (EnumItemKeyFormat, IdentifierFormat) import Language.Lsd.AST.Type.Text (TextType) newtype EnumFormat = EnumFormat EnumItemFormat deriving (Int -> EnumFormat -> ShowS [EnumFormat] -> ShowS EnumFormat -> String (Int -> EnumFormat -> ShowS) -> (EnumFormat -> String) -> ([EnumFormat] -> ShowS) -> Show EnumFormat forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> EnumFormat -> ShowS showsPrec :: Int -> EnumFormat -> ShowS $cshow :: EnumFormat -> String show :: EnumFormat -> String $cshowList :: [EnumFormat] -> ShowS showList :: [EnumFormat] -> ShowS Show, EnumFormat -> EnumFormat -> Bool (EnumFormat -> EnumFormat -> Bool) -> (EnumFormat -> EnumFormat -> Bool) -> Eq EnumFormat forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: EnumFormat -> EnumFormat -> Bool == :: EnumFormat -> EnumFormat -> Bool $c/= :: EnumFormat -> EnumFormat -> Bool /= :: EnumFormat -> EnumFormat -> Bool Eq) data EnumItemFormat = EnumItemFormat IdentifierFormat EnumItemKeyFormat deriving (Int -> EnumItemFormat -> ShowS [EnumItemFormat] -> ShowS EnumItemFormat -> String (Int -> EnumItemFormat -> ShowS) -> (EnumItemFormat -> String) -> ([EnumItemFormat] -> ShowS) -> Show EnumItemFormat forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> EnumItemFormat -> ShowS showsPrec :: Int -> EnumItemFormat -> ShowS $cshow :: EnumItemFormat -> String show :: EnumItemFormat -> String $cshowList :: [EnumItemFormat] -> ShowS showList :: [EnumItemFormat] -> ShowS Show, EnumItemFormat -> EnumItemFormat -> Bool (EnumItemFormat -> EnumItemFormat -> Bool) -> (EnumItemFormat -> EnumItemFormat -> Bool) -> Eq EnumItemFormat forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: EnumItemFormat -> EnumItemFormat -> Bool == :: EnumItemFormat -> EnumItemFormat -> Bool $c/= :: EnumItemFormat -> EnumItemFormat -> Bool /= :: EnumItemFormat -> EnumItemFormat -> Bool Eq) data EnumType = EnumType Keyword EnumFormat (TextType EnumType)