tokstyle-0.0.6: src/Tokstyle/Cimple/Analysis/FuncPrototypes.hs
{-# LANGUAGE OverloadedStrings #-}
module Tokstyle.Cimple.Analysis.FuncPrototypes (analyse) where
import qualified Control.Monad.State.Lazy as State
import Data.Text (Text)
import Language.Cimple (AstActions, Lexeme, Node (..),
defaultActions, doNode,
traverseAst)
import qualified Language.Cimple.Diagnostics as Diagnostics
linter :: AstActions [Text]
linter = defaultActions
{ doNode = \file node act ->
case node of
FunctionPrototype _ name [] -> do
Diagnostics.warn file name "empty parameter list must be written as (void)"
act
_ -> act
}
analyse :: (FilePath, [Node () (Lexeme Text)]) -> [Text]
analyse = reverse . flip State.execState [] . traverseAst linter