module Data.OrgMode.Parse.Attoparsec.Document (
parseDocument
) where
import Control.Applicative ((<$>), (<*>))
import Data.Attoparsec.Text
import Data.Attoparsec.Types as TP
import Data.OrgMode.Parse.Attoparsec.Headings
import Data.OrgMode.Parse.Attoparsec.Section (nonHeaderLine)
import Data.OrgMode.Parse.Types
import Data.Text (Text, unlines)
import Prelude hiding (unlines)
parseDocument :: [Text] -> TP.Parser Text Document
parseDocument otherKeywords =
Document
<$> (unlines <$> many' nonHeaderLine)
<*> many' (headingBelowLevel otherKeywords 0)