module Main (main) where import Parser import Lexer import Data.Char main = getContents >>= putStrLn . serialize . Parser.parse . Lexer.lex type XML = String serialize :: From -> XML serialize (From mailboxList) = "" ++ serializeMailboxList mailboxList ++ "" serializeMailboxList :: MailboxList -> XML serializeMailboxList [] = "" serializeMailboxList (x:xs) = serializeMailboxList xs ++ "" ++ serializeMailbox x ++ "" serializeMailbox :: Mailbox -> XML serializeMailbox (LongMailbox displayName angleAddress) = serializeDisplayName displayName ++ serializeAngleAddress angleAddress serializeMailbox (AngleMailbox angleAddress) = serializeAngleAddress angleAddress serializeMailbox (ShortMailbox addressSpecification) = serializeAddressSpecification addressSpecification serializeDisplayName :: DisplayName -> XML serializeDisplayName (DisplayName s) = "" ++ s ++ "" serializeAngleAddress :: AngleAddress -> XML serializeAngleAddress (AngleAddress s) = "
" ++ s ++ "
" serializeAddressSpecification :: AddressSpecification -> XML serializeAddressSpecification (AddressSpecification s) = "
" ++ s ++ "
"