Common.hs revision 80875f917d741946a39d0ec0b5721e46ba609823
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder{- |
c63ebf815c8a874525cf18670ad74847f7fc7b26Christian MaederModule : ./TPTP/Common.hs
456238178f89e5a3de2988ee6c8af924297d52d9Christian MaederDescription : Common functions for TPTP handling.
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederCopyright : (c) Eugen Kuksa University of Magdeburg 2017
456238178f89e5a3de2988ee6c8af924297d52d9Christian MaederLicense : GPLv2 or higher, see LICENSE.txt
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederMaintainer : Eugen Kuksa <kuksa@iks.cs.ovgu.de>
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederStability : provisional
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder-}
f4a2a20e49f41b2afa657e5e64d9e349c7faa091Christian Maeder
f2f9df2e17e70674f0bf426ed1763c973ee4cde0Christian Maedermodule TPTP.Common where
c9a7e6af169a2adfb92f42331cd578065ed83a2bChristian Maeder
c9a7e6af169a2adfb92f42331cd578065ed83a2bChristian Maederimport Common.IRI
e7757995211bd395dc79d26fe017d99375f7d2a6Christian Maederimport Common.Id
e7757995211bd395dc79d26fe017d99375f7d2a6Christian Maeder
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maederimport Data.Text (pack, replace, unpack)
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder
a1ed34933c266ce85066acb0d7b20c90cb8eb213Christian Maeder-- The TPTP library uses filenames like AGT027^1.p which are not IRI compliant.
c0c2380bced8159ff0297ece14eba948bd236471Christian Maeder-- They need to be escaped.
404166b9366552e9ec5abb87a37c76ec8a815fb7Klaus Luettich-- In order to display the filename anyway, the unescaped IRI is saved as the
b1f59a4ea7c96f4c03a4d7cfcb9c5e66871cfbbbChristian Maeder-- name of the spec.
ad270004874ce1d0697fb30d7309f180553bb315Christian Maeder-- These functions are only used for file names (in includes) and spec names.
404166b9366552e9ec5abb87a37c76ec8a815fb7Klaus Luettich
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederescapeTPTPFilePath :: String -> String
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian MaederescapeTPTPFilePath s = unpack $ replace (pack "^") (pack "%5E") (pack s)
3e8b136f23ed57d40ee617f49bcac37830b58cabChristian Maeder
ef9e8535c168d3f774d9e74368a2317a9eda5826Christian MaederunescapeTPTPFilePath :: String -> String
bab2d88d650448628730ed3b65c9f99c52500e8cChristian MaederunescapeTPTPFilePath s = unpack $ replace (pack "%5E") (pack "^") (pack s)
3e8b136f23ed57d40ee617f49bcac37830b58cabChristian Maeder
ef9e8535c168d3f774d9e74368a2317a9eda5826Christian MaederunescapeTPTPFileToken :: Token -> Token
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederunescapeTPTPFileToken t = t { tokStr = unescapeTPTPFilePath $ tokStr t }
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederunescapeTPTPFileId :: Id -> Id
3dde4051c307b609159a097f08a05108fdd036efJonathan von SchroederunescapeTPTPFileId i = i { getTokens = map unescapeTPTPFileToken $ getTokens i }
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder
3dde4051c307b609159a097f08a05108fdd036efJonathan von SchroederunescapeTPTPFileIRI :: IRI -> IRI
3dde4051c307b609159a097f08a05108fdd036efJonathan von SchroederunescapeTPTPFileIRI i = i { iriPath = unescapeTPTPFileId $ iriPath i }
3dde4051c307b609159a097f08a05108fdd036efJonathan von Schroeder