aboutsummaryrefslogtreecommitdiffhomepage
path: root/scaffolder/src/Text/Edifact/Scaffolder/Messages/Elements.hs
diff options
context:
space:
mode:
Diffstat (limited to 'scaffolder/src/Text/Edifact/Scaffolder/Messages/Elements.hs')
-rw-r--r--scaffolder/src/Text/Edifact/Scaffolder/Messages/Elements.hs22
1 files changed, 22 insertions, 0 deletions
diff --git a/scaffolder/src/Text/Edifact/Scaffolder/Messages/Elements.hs b/scaffolder/src/Text/Edifact/Scaffolder/Messages/Elements.hs
new file mode 100644
index 0000000..fb590ad
--- /dev/null
+++ b/scaffolder/src/Text/Edifact/Scaffolder/Messages/Elements.hs
@@ -0,0 +1,22 @@
1module Text.Edifact.Scaffolder.Messages.Elements
2 ( listMessages
3 ) where
4
5import Text.Edifact.Scaffolder.Commons
6
7import Data.Char (toUpper)
8import Text.Parsec (count, eof, lower, string,
9 (<?>))
10import Text.Parsec.String (Parser)
11
12-- | List elements
13listMessages :: Scaffolding [ElementWithDefinition MessageCode]
14listMessages = listElements "messages" messageFilenameParser
15
16messageFilenameParser :: Parser MessageCode
17messageFilenameParser =
18 let mkCode = MessageCode . fmap toUpper
19 in mkCode <$> count 6 lower
20 <* string "_s.txt"
21 <* eof
22 <?> "MessageCode"