module Hydrogen.Syntax.Parser (
    module Hydrogen.Syntax.Parser.TokenParser
  , module Hydrogen.Syntax.Parser.LayoutParser
  , parse
  , parse'
) where

import Hydrogen.Prelude
import Hydrogen.Parsing hiding (parse)

import Hydrogen.Syntax.Types
import Hydrogen.Syntax.Parser.TokenParser
import Hydrogen.Syntax.Parser.LayoutParser

parse :: String -> Parser String (POPs a)
parse srcName = parseTokens def srcName >+> parseLayout def

parse' :: TokenizerConfig -> LayoutConfig a -> String -> Parser String (POPs a)
parse' tc lc srcName = parseTokens tc srcName >+> parseLayout lc