hoodle-parser-0.3: src/Text/Hoodlet/Parse/Attoparsec.hs
{-# LANGUAGE OverloadedStrings #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.Hoodlet.Parse.Attoparsec
-- Copyright : (c) 2014 Ian-Woo Kim
--
-- License : BSD3
-- Maintainer : Ian-Woo Kim <ianwookim@gmail.com>
-- Stability : experimental
-- Portability : GHC
--
-- attoparsec implementation of hoodle parser
--
-----------------------------------------------------------------------------
module Text.Hoodlet.Parse.Attoparsec where
import Control.Applicative
import Data.Attoparsec
import Data.Attoparsec.Char8
import qualified Data.ByteString.Char8 as B
--
import qualified Data.Hoodle.Simple as H
--
import Text.Hoodle.Parse.Attoparsec
-- |
hoodlet :: Parser H.Item
hoodlet = do trim
xmlheader <?> "xmlheader"
trim
hoodletheader <?> "hoodletheader"
trim
itm <- try (H.ItemStroke <$> onestroke) <|> try img <|> try svg_obj <|> link
trim
string "</hoodlet>"
return itm
hoodletheader :: Parser B.ByteString
hoodletheader = do string "<hoodlet"
trim
v <- hoodleversion
trim
char '>'
return v