boltzmann-brain-1.6: Data/Boltzmann/System/Parser.hs
{-|
Module : Data.Boltzmann.System.Parser
Description : General system parsing utilities.
Copyright : (c) Maciej Bendkowski, 2017-2019
License : BSD3
Maintainer : maciej.bendkowski@tcs.uj.edu.pl
Stability : experimental
-}
module Data.Boltzmann.System.Parser
( parseSpec
) where
import Text.Megaparsec
import Data.Void
import qualified Data.Boltzmann.System as S
import qualified Data.Boltzmann.System.Parser.Algebraic as A
import qualified Data.Boltzmann.System.Parser.Rational as R
-- | Parses the given system specification.
parseSpec :: S.Format -> String
-> IO (Either (ParseErrorBundle String Void) (S.System Int))
parseSpec S.RationalF s = return $ parse R.systemStmt "" s
parseSpec S.AlgebraicF s = return $ parse A.systemStmt "" s