]> git.immae.eu Git - github/fretlink/edi-parser.git/blob - scaffolder/src/Text/Edifact/Scaffolder/Messages/Elements.hs
Release code as open source
[github/fretlink/edi-parser.git] / scaffolder / src / Text / Edifact / Scaffolder / Messages / Elements.hs
1 module Text.Edifact.Scaffolder.Messages.Elements
2 ( listMessages
3 ) where
4
5 import Text.Edifact.Scaffolder.Commons
6
7 import Data.Char (toUpper)
8 import Text.Parsec (count, eof, lower, string,
9 (<?>))
10 import Text.Parsec.String (Parser)
11
12 -- | List elements
13 listMessages :: Scaffolding [ElementWithDefinition MessageCode]
14 listMessages = listElements "messages" messageFilenameParser
15
16 messageFilenameParser :: Parser MessageCode
17 messageFilenameParser =
18 let mkCode = MessageCode . fmap toUpper
19 in mkCode <$> count 6 lower
20 <* string "_s.txt"
21 <* eof
22 <?> "MessageCode"