module Tokstyle.Cimple.Analysis
( analyse
, analyseGlobal
) where
import Data.Text (Text)
import Language.Cimple (Lexeme, Node (..))
import qualified Tokstyle.Cimple.Analysis.ForLoops as ForLoops
import qualified Tokstyle.Cimple.Analysis.FuncPrototypes as FuncPrototypes
import qualified Tokstyle.Cimple.Analysis.FuncScopes as FuncScopes
import qualified Tokstyle.Cimple.Analysis.GlobalFuncs as GlobalFuncs
import qualified Tokstyle.Cimple.Analysis.LoggerCalls as LoggerCalls
import qualified Tokstyle.Cimple.Analysis.LoggerNoEscapes as LoggerNoEscapes
import qualified Tokstyle.Cimple.Analysis.DeclaredOnce as DeclaredOnce
import qualified Tokstyle.Cimple.Analysis.DeclsHaveDefns as DeclsHaveDefns
import qualified Tokstyle.Cimple.Analysis.DocComments as DocComments
type TranslationUnit = (FilePath, [Node () (Lexeme Text)])
analyse :: TranslationUnit -> [Text]
analyse :: TranslationUnit -> [Text]
analyse TranslationUnit
tu = ((TranslationUnit -> [Text]) -> [Text])
-> [TranslationUnit -> [Text]] -> [Text]
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
concatMap ((TranslationUnit -> [Text]) -> TranslationUnit -> [Text]
forall a b. (a -> b) -> a -> b
$ TranslationUnit
tu)
[ TranslationUnit -> [Text]
ForLoops.analyse
, TranslationUnit -> [Text]
FuncPrototypes.analyse
, TranslationUnit -> [Text]
forall a. (FilePath, [Node a (Lexeme Text)]) -> [Text]
FuncScopes.analyse
, TranslationUnit -> [Text]
forall a. (FilePath, [Node a (Lexeme Text)]) -> [Text]
GlobalFuncs.analyse
, TranslationUnit -> [Text]
LoggerCalls.analyse
, TranslationUnit -> [Text]
LoggerNoEscapes.analyse
]
analyseGlobal :: [TranslationUnit] -> [Text]
analyseGlobal :: [TranslationUnit] -> [Text]
analyseGlobal [TranslationUnit]
tus = (([TranslationUnit] -> [Text]) -> [Text])
-> [[TranslationUnit] -> [Text]] -> [Text]
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
concatMap (([TranslationUnit] -> [Text]) -> [TranslationUnit] -> [Text]
forall a b. (a -> b) -> a -> b
$ [TranslationUnit]
tus)
[ [TranslationUnit] -> [Text]
DeclaredOnce.analyse
, [TranslationUnit] -> [Text]
DeclsHaveDefns.analyse
, [TranslationUnit] -> [Text]
DocComments.analyse
]