b87efd3db0d2dc41615ea28669faf80fc1b48d56Corneliu-Claudiu Prodescu{- |
e9458b1a7a19a63aa4c179f9ab20f4d50681c168Jens ElknerModule : ./Common/ATerm/ATermDiffMain.hs
127a36cba0c92b465681ec55ad366aca423735ebChristian MaederCopyright : (c) C. Maeder, DFKI GmbH 2010
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu ProdescuLicense : GPLv2 or higher, see LICENSE.txt
b87efd3db0d2dc41615ea28669faf80fc1b48d56Corneliu-Claudiu Prodescu
127a36cba0c92b465681ec55ad366aca423735ebChristian MaederMaintainer : Christian.Maeder@dfki.de
127a36cba0c92b465681ec55ad366aca423735ebChristian MaederStability : experimental
127a36cba0c92b465681ec55ad366aca423735ebChristian MaederPortability : portable
b87efd3db0d2dc41615ea28669faf80fc1b48d56Corneliu-Claudiu Prodescu
b87efd3db0d2dc41615ea28669faf80fc1b48d56Corneliu-Claudiu Prodescu-}
127a36cba0c92b465681ec55ad366aca423735ebChristian Maeder
127a36cba0c92b465681ec55ad366aca423735ebChristian Maedermodule Main (main) where
127a36cba0c92b465681ec55ad366aca423735ebChristian Maeder
6c22726220ce34fe3f30c9ae61a1dfa832beac68Christian Maederimport System.Environment
ef9e8535c168d3f774d9e74368a2317a9eda5826Christian Maederimport ATerm.ReadWrite
ef9e8535c168d3f774d9e74368a2317a9eda5826Christian Maederimport ATerm.Unshared
ef9e8535c168d3f774d9e74368a2317a9eda5826Christian Maederimport ATerm.Diff
127a36cba0c92b465681ec55ad366aca423735ebChristian Maederimport Control.Monad
57e0b8a9f8dc3a481f34e3a5392aaf6d0b7f94aeKlaus Luettich
57e0b8a9f8dc3a481f34e3a5392aaf6d0b7f94aeKlaus Luettichmain :: IO ()
127a36cba0c92b465681ec55ad366aca423735ebChristian Maedermain = do
127a36cba0c92b465681ec55ad366aca423735ebChristian Maeder args <- getArgs
127a36cba0c92b465681ec55ad366aca423735ebChristian Maeder case args of
127a36cba0c92b465681ec55ad366aca423735ebChristian Maeder [x, y] -> atDiffFP x y
127a36cba0c92b465681ec55ad366aca423735ebChristian Maeder _ -> putStrLn "expected two argument filenames"
57e0b8a9f8dc3a481f34e3a5392aaf6d0b7f94aeKlaus Luettich
57e0b8a9f8dc3a481f34e3a5392aaf6d0b7f94aeKlaus LuettichatDiffFP :: FilePath -> FilePath -> IO ()
7fd28a2052af78b95981d76ee6182a7df046cf77Christian MaederatDiffFP fp1 fp2 =
57e0b8a9f8dc3a481f34e3a5392aaf6d0b7f94aeKlaus Luettich do at1 <- atermFromFile fp1
57e0b8a9f8dc3a481f34e3a5392aaf6d0b7f94aeKlaus Luettich at2 <- atermFromFile fp2
127a36cba0c92b465681ec55ad366aca423735ebChristian Maeder let (at, diffs) = atDiff at1 at2
127a36cba0c92b465681ec55ad366aca423735ebChristian Maeder unless (null diffs) $ do
6c22726220ce34fe3f30c9ae61a1dfa832beac68Christian Maeder putStrLn (writeATerm (toATermTable at))
6c22726220ce34fe3f30c9ae61a1dfa832beac68Christian Maeder putStrLn (writeATerm (toATermTable (AList diffs [])))
57e0b8a9f8dc3a481f34e3a5392aaf6d0b7f94aeKlaus Luettich
57e0b8a9f8dc3a481f34e3a5392aaf6d0b7f94aeKlaus LuettichatermFromFile :: FilePath -> IO ATerm
7fd28a2052af78b95981d76ee6182a7df046cf77Christian MaederatermFromFile fp =
57e0b8a9f8dc3a481f34e3a5392aaf6d0b7f94aeKlaus Luettich do str <- readFile fp
57e0b8a9f8dc3a481f34e3a5392aaf6d0b7f94aeKlaus Luettich return (getATermFull (readATerm str))