packages feed

cnc-spec-compiler-0.2.0.0: Intel/Cnc/Spec/Codegen/CodegenShared.hs

{-# LANGUAGE ScopedTypeVariables, OverloadedStrings, NamedFieldPuns #-}

-- NOTES
-- It would be nice for plugins to be able to invoke methods of all other plugins...

-- TODO / FIXME:
-- whenDone hook can be removed now.

-- Environment will currently be decremented below zero because of
-- upstream reduction collections.. only active collections should
-- count for that.

--------------------------------------------------------------------------------

module Intel.Cnc.Spec.Codegen.CodegenShared 
where

import Intel.Cnc.Spec.Codegen.Plugins

----------------------------------------------------------------------------------------------------
-- This datatype stores the configuration information for backend acode generation.
----------------------------------------------------------------------------------------------------

data CodeGenConfig = CodeGenConfig 
      { cgverbosity :: Bool 
      , old_05_api  :: Bool
      , genstepdefs :: Bool
      , gentracing  :: Bool
      , gendepends  :: Bool
      , gendebug    :: Bool
      , wrapall     :: Bool -- wrap ALL collections no matter what
      , plugins     :: [CodeGenPlugin]
      , done_plugins :: [DonePlugin]

      -- Debug flags:
      , debug_autodone :: Bool
      -- , debug_* :: Bool
      }
  deriving Show

default_codegen_config = 
 CodeGenConfig 
     {  cgverbosity = False 
      , old_05_api  = False
      , genstepdefs = True
      , gentracing  = False
      , gendepends  = False
      , gendebug    = False
      , wrapall     = False
      , done_plugins = []
      , plugins     = []
      , debug_autodone = False 
     }