{-# OPTIONS -Wall #-}
module Codec.TPTP.Import(parse,parseFile
,parseWithComment,parseWithCommentFile
,Token(..)) where
import Lexer
import Parser
import ParserC
import Codec.TPTP.Base
parse :: String -> [TPTP_Input]
parse :: String -> [TPTP_Input]
parse = [Token] -> [TPTP_Input]
parseTPTP ([Token] -> [TPTP_Input])
-> (String -> [Token]) -> String -> [TPTP_Input]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((AlexPosn, Token) -> Token) -> [(AlexPosn, Token)] -> [Token]
forall a b. (a -> b) -> [a] -> [b]
map (AlexPosn, Token) -> Token
forall a b. (a, b) -> b
snd ([(AlexPosn, Token)] -> [Token])
-> (String -> [(AlexPosn, Token)]) -> String -> [Token]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> [(AlexPosn, Token)]
alexScanTokens
parseFile :: FilePath -> IO [TPTP_Input]
parseFile :: String -> IO [TPTP_Input]
parseFile String
x = String -> [TPTP_Input]
parse (String -> [TPTP_Input]) -> IO String -> IO [TPTP_Input]
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
`fmap` String -> IO String
readFile String
x
parseWithComment :: String -> [TPTP_Input_C]
= [Token] -> [TPTP_Input_C]
parseTPTPwithComment ([Token] -> [TPTP_Input_C])
-> (String -> [Token]) -> String -> [TPTP_Input_C]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((AlexPosn, Token) -> Token) -> [(AlexPosn, Token)] -> [Token]
forall a b. (a -> b) -> [a] -> [b]
map (AlexPosn, Token) -> Token
forall a b. (a, b) -> b
snd ([(AlexPosn, Token)] -> [Token])
-> (String -> [(AlexPosn, Token)]) -> String -> [Token]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> [(AlexPosn, Token)]
alexScanTokens
parseWithCommentFile :: FilePath -> IO [TPTP_Input_C]
String
x = String -> [TPTP_Input_C]
parseWithComment (String -> [TPTP_Input_C]) -> IO String -> IO [TPTP_Input_C]
forall a b. (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
`fmap` String -> IO String
readFile String
x