aboutsummaryrefslogtreecommitdiff
path: root/bbcode/src/Text/BBCode
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2016-01-12 05:21:16 +0000
committerGregor Kleen <gkleen@yggdrasil.li>2016-01-12 05:21:16 +0000
commitfe17c720081798175c9936d1624f428b565e310f (patch)
tree8cb2b9520f90a21e54e5b6dac4588ef4ed6e3a9c /bbcode/src/Text/BBCode
parenta5d285a8b74d2278e8549909d29c01b62dc84424 (diff)
downloadthermoprint-fe17c720081798175c9936d1624f428b565e310f.tar
thermoprint-fe17c720081798175c9936d1624f428b565e310f.tar.gz
thermoprint-fe17c720081798175c9936d1624f428b565e310f.tar.bz2
thermoprint-fe17c720081798175c9936d1624f428b565e310f.tar.xz
thermoprint-fe17c720081798175c9936d1624f428b565e310f.zip
Rose-Tree labels now carry attributes
Diffstat (limited to 'bbcode/src/Text/BBCode')
-rw-r--r--bbcode/src/Text/BBCode/Lexer.hs5
1 files changed, 4 insertions, 1 deletions
diff --git a/bbcode/src/Text/BBCode/Lexer.hs b/bbcode/src/Text/BBCode/Lexer.hs
index ad26113..2eb0022 100644
--- a/bbcode/src/Text/BBCode/Lexer.hs
+++ b/bbcode/src/Text/BBCode/Lexer.hs
@@ -29,9 +29,12 @@ data BBToken = BBOpen Text [(Text, Maybe Text)] -- ^ Tag open with attributes
29token :: Parser BBToken 29token :: Parser BBToken
30-- ^ Tokenizer 30-- ^ Tokenizer
31token = BBClose <$> ("[/" *> escapedText' [']'] <* "]") 31token = BBClose <$> ("[/" *> escapedText' [']'] <* "]")
32 <|> BBOpen <$> ("[" *> escapedText' [']', ' ']) <*> (option [] attrs <* "]") 32 <|> uncurry BBOpen <$> openTag
33 <|> BBStr <$> escapedText ['['] 33 <|> BBStr <$> escapedText ['[']
34 34
35openTag :: Parser (Text, [(Text, Maybe Text)])
36openTag = (,) <$> ("[" *> escapedText' [']', ' ']) <*> (option [] attrs <* "]")
37
35attrs :: Parser [(Text, Maybe Text)] 38attrs :: Parser [(Text, Maybe Text)]
36attrs = (:) <$> (attrs' <* takeWhile isSpace) <*> (option [] $ attrs) 39attrs = (:) <$> (attrs' <* takeWhile isSpace) <*> (option [] $ attrs)
37 where 40 where