module Main where
import System.Environment
import System.Exit
import GHC.Plugin.LensThRewrite
import Language.Haskell.GHC.ExactPrint.Parsers
import CoreSyn
import GhcPlugins
import HsDecls
import HsDumpAst
import HsExtension
import HsSyn
import OccName
import RdrName
import TcEvidence
import Var
main :: IO ()
main = do
args <- getArgs
case args of
original:input:output:_ ->
go input output
go :: String -> String -> IO ()
go input output = do
result <- parseModule input
case result of
Right (_, L _ s) -> do
let n = rewriteModule s
writeFile output $ showSDocUnsafe (ppr n)
Left s -> print s >> exitFailure