module Text.BibTeX.Entry where

import Data.Char (toLower, )
import Data.Tuple.HT (mapFst, )


data T =
   Cons {
      entryType :: String,
      identifier :: String,
      fields :: [(String, String)]
   }
   deriving (Show)

{- |
Convert the name style \"Surname, First name\" into \"First name Surname\".
-}
flipName :: String -> String
flipName name =
   let (surname, firstName) = break (','==) name
   in  dropWhile (flip elem ", ") firstName ++ " " ++ surname

lowerCaseFieldNames :: T -> T
lowerCaseFieldNames entry =
   entry {fields = map (mapFst (map toLower)) $ fields entry}