1 module Text.Edifact.Scaffolder.CodedSimples.Specification
6 import Text.Edifact.Scaffolder.Commons
8 import Text.Parsec as P (anyChar, count, digit,
10 oneOf, skipMany, string,
12 import Text.Parsec.String (Parser)
14 specificationParser :: Parser (SimpleCode, SimpleName)
15 specificationParser = scanUntil [ codedSimpleParser ]
17 codedSimpleParser :: Parser (SimpleCode, SimpleName)
18 codedSimpleParser = do
19 _ <- count 2 (oneOf "+*#|-X ")
21 code <- simpleCodeParser
24 name <- SimpleName <$> manyTill anyChar (() <$ try endOfLine)
27 simpleCodeParser :: Parser SimpleCode
28 simpleCodeParser = fromString <$> count 4 digit