Merge pull request #3 from MUSTE-Project/master

A version of `readPGF` where the user can handle reading files
This commit is contained in:
Thomas H
2018-08-06 16:31:55 +02:00
committed by GitHub
2 changed files with 12 additions and 3 deletions

View File

@@ -17,6 +17,7 @@ module PGF(
-- * PGF -- * PGF
PGF, PGF,
readPGF, readPGF,
parsePGF,
-- * Identifiers -- * Identifiers
CId, mkCId, wildCId, CId, mkCId, wildCId,
@@ -165,7 +166,7 @@ import PGF.Macros
import PGF.Expr (Tree) import PGF.Expr (Tree)
import PGF.Morphology import PGF.Morphology
import PGF.Data import PGF.Data
import PGF.Binary() import PGF.Binary ()
import qualified PGF.Forest as Forest import qualified PGF.Forest as Forest
import qualified PGF.Parse as Parse import qualified PGF.Parse as Parse
import PGF.Utilities(replace) import PGF.Utilities(replace)
@@ -175,6 +176,7 @@ import qualified Data.Map as Map
--import qualified Data.IntMap as IntMap --import qualified Data.IntMap as IntMap
--import Data.Maybe --import Data.Maybe
import Data.Binary import Data.Binary
import Data.ByteString.Lazy (ByteString)
import Data.List(mapAccumL) import Data.List(mapAccumL)
--import System.Random (newStdGen) --import System.Random (newStdGen)
--import Control.Monad --import Control.Monad
@@ -190,6 +192,11 @@ import Text.PrettyPrint
-- > $ gf -make <grammar file name> -- > $ gf -make <grammar file name>
readPGF :: FilePath -> IO PGF readPGF :: FilePath -> IO PGF
-- | Like @readPGF@ but you have the manage file-handling.
--
-- @since 3.9.1
parsePGF :: ByteString -> PGF
-- | Tries to parse the given string in the specified language -- | Tries to parse the given string in the specified language
-- and to produce abstract syntax expression. -- and to produce abstract syntax expression.
parse :: PGF -> Language -> Type -> String -> [Tree] parse :: PGF -> Language -> Type -> String -> [Tree]
@@ -254,7 +261,9 @@ functionType :: PGF -> CId -> Maybe Type
-- Implementation -- Implementation
--------------------------------------------------- ---------------------------------------------------
readPGF f = decodeFile f readPGF = decodeFile
parsePGF = decode
parse pgf lang typ s = parse pgf lang typ s =
case parse_ pgf lang typ (Just 4) s of case parse_ pgf lang typ (Just 4) s of

View File

@@ -1,5 +1,5 @@
name: pgf name: pgf
version: 3.9-git version: 3.9.1-git
cabal-version: >= 1.20 cabal-version: >= 1.20
build-type: Simple build-type: Simple