haskell-tools-debug 0.4.1.1 → 0.4.1.2
raw patch · 5 files changed
+28/−21 lines, 5 filesdep +haskell-tools-debugdep ~basenew-component:exe:ht-debug
Dependencies added: haskell-tools-debug
Dependency ranges changed: base
Files
- Language/Haskell/Tools/Debug.hs +9/−11
- Language/Haskell/Tools/DebugGhcAST.hs +0/−8
- Language/Haskell/Tools/RangeDebug/Instances.hs +1/−0
- exe/Main.hs +10/−0
- haskell-tools-debug.cabal +8/−2
Language/Haskell/Tools/Debug.hs view
@@ -9,17 +9,14 @@ import GHC hiding (loadModule) import GHC.Paths ( libdir ) -import Module as GHC -import SrcLoc -import HscTypes import Language.Haskell.Tools.AST import Language.Haskell.Tools.AST.FromGHC import Language.Haskell.Tools.Transform import Language.Haskell.Tools.PrettyPrint -import Language.Haskell.Tools.DebugGhcAST +import Language.Haskell.Tools.DebugGhcAST () import Language.Haskell.Tools.RangeDebug -import Language.Haskell.Tools.RangeDebug.Instances +import Language.Haskell.Tools.RangeDebug.Instances () import Language.Haskell.Tools.Refactor.Prepare import Language.Haskell.Tools.Refactor.Perform import Language.Haskell.Tools.Refactor.RefactorBase @@ -29,21 +26,20 @@ demoRefactor command workingDir args moduleName = runGhc (Just libdir) $ do initGhcFlags - useFlags args + _ <- useFlags args useDirs [workingDir] modSum <- loadModule workingDir moduleName p <- parseModule modSum t <- typecheckModule p - let r = tm_renamed_source t let annots = pm_annotations $ tm_parsed_module t liftIO $ putStrLn $ show annots - liftIO $ putStrLn "===========" + liftIO $ putStrLn "=========== parsed source:" liftIO $ putStrLn $ show (pm_parsed_source p) - liftIO $ putStrLn "===========" + liftIO $ putStrLn "=========== renamed source:" liftIO $ putStrLn $ show (fromJust $ tm_renamed_source t) - liftIO $ putStrLn "===========" + liftIO $ putStrLn "=========== typechecked source:" liftIO $ putStrLn $ show (typecheckedSource t) liftIO $ putStrLn "=========== parsed:" --transformed <- runTrf (fst annots) (getPragmaComments $ snd annots) $ trfModule (pm_parsed_source p) @@ -75,10 +71,12 @@ let prettyPrinted = prettyPrint correctlyTransformed liftIO $ putStrLn prettyPrinted liftIO $ putStrLn "===========" + -- TODO: implement + Right _ -> error "The output shoud be one module changed" Left transformProblem -> do liftIO $ putStrLn "===========" liftIO $ putStrLn transformProblem liftIO $ putStrLn "===========" deriving instance Generic SrcSpan -deriving instance (Generic sema, Generic src) => Generic (NodeInfo sema src) +deriving instance Generic (NodeInfo sema src)
Language/Haskell/Tools/DebugGhcAST.hs view
@@ -5,23 +5,15 @@ -- | A module for showing GHC's syntax tree representation. module Language.Haskell.Tools.DebugGhcAST where -import Language.Haskell.Tools.RangeDebug -import Language.Haskell.Tools.AST.FromGHC.GHCUtils import Language.Haskell.Tools.AST (shortShowSpan) import GHC -import HsSyn -import HsDecls import Module import Coercion -import SrcLoc import RdrName import BasicTypes import Outputable -import TyCon -import PlaceHolder import ForeignCall -import Var import ConLike import PatSyn import TcEvidence
Language/Haskell/Tools/RangeDebug/Instances.hs view
@@ -38,6 +38,7 @@ instance (SourceInfo st, Domain dom) => TreeDebug UFilePragma dom st instance (SourceInfo st, Domain dom) => TreeDebug UImportDecl dom st instance (SourceInfo st, Domain dom) => TreeDebug UImportSpec dom st +instance (SourceInfo st, Domain dom) => TreeDebug UImportModifier dom st instance (SourceInfo st, Domain dom) => TreeDebug UImportQualified dom st instance (SourceInfo st, Domain dom) => TreeDebug UImportSource dom st instance (SourceInfo st, Domain dom) => TreeDebug UImportSafe dom st
+ exe/Main.hs view
@@ -0,0 +1,10 @@+module Main where + +import Language.Haskell.Tools.Debug +import System.Environment + +main :: IO () +main = do args <- getArgs + if length args < 3 then do progName <- getProgName + putStrLn (progName ++ " <command/-> <workingdir> <modulename> [arguments]") + else demoRefactor (dropWhile (=='-') (args !! 0)) (args !! 1) (drop 3 args) (args !! 2)
haskell-tools-debug.cabal view
@@ -1,5 +1,5 @@ name: haskell-tools-debug -version: 0.4.1.1 +version: 0.4.1.2 synopsis: Debugging Tools for Haskell-tools description: Debugging Tools for Haskell-tools homepage: https://github.com/haskell-tools/haskell-tools @@ -26,4 +26,10 @@ , haskell-tools-refactor >= 0.4 && < 0.5 , haskell-tools-prettyprint >= 0.4 && < 0.5 default-language: Haskell2010 - + +executable ht-debug + build-depends: base >= 4.9 && < 5.0 + , haskell-tools-debug >= 0.4 && < 0.5 + hs-source-dirs: exe + main-is: Main.hs + default-language: Haskell2010