module Drasil.PDController.Choices where import Language.Drasil.Code (AuxFile(..), Choices(..), CodeSpec, Comments(..), ConstantRepr(..), ConstantStructure(..), ConstraintBehaviour(..), ImplementationType(..), InputModule(..), Lang(..), Modularity(..), Structure(..), Verbosity(..), Visibility(..), codeSpec, defaultChoices, makeArchit, makeData, makeConstraints, makeODE, makeDocConfig, makeLogConfig, makeOptFeats, ExtLib(..)) import Data.Drasil.ExternalLibraries.ODELibraries (scipyODEPckg, osloPckg, apacheODEPckg, odeintPckg) import Drasil.PDController.Body (pidODEInfo, fullSI) codeSpecs :: CodeSpec codeSpecs :: CodeSpec codeSpecs = SystemInformation -> Choices -> [Mod] -> CodeSpec codeSpec SystemInformation fullSI Choices codeChoices [] codeChoices :: Choices codeChoices :: Choices codeChoices = Choices defaultChoices{ lang :: [Lang] lang = [Lang Python, Lang CSharp, Lang Java, Lang Cpp], architecture :: Architecture architecture = Modularity -> ImplementationType -> Architecture makeArchit (InputModule -> Modularity Modular InputModule Combined) ImplementationType Program, dataInfo :: DataInfo dataInfo = Structure -> ConstantStructure -> ConstantRepr -> DataInfo makeData Structure Unbundled (Structure -> ConstantStructure Store Structure Bundled) ConstantRepr Const, optFeats :: OptionalFeatures optFeats = DocConfig -> LogConfig -> [AuxFile] -> OptionalFeatures makeOptFeats ([Comments] -> Verbosity -> Visibility -> DocConfig makeDocConfig [Comments CommentFunc, Comments CommentClass, Comments CommentMod] Verbosity Verbose Visibility Hide) ([Logging] -> FilePath -> LogConfig makeLogConfig [] FilePath "log.txt") [FilePath -> AuxFile SampleInput FilePath "../../datafiles/pdcontroller/sampleInput.txt", AuxFile ReadME], srsConstraints :: Constraints srsConstraints = ConstraintBehaviour -> ConstraintBehaviour -> Constraints makeConstraints ConstraintBehaviour Exception ConstraintBehaviour Exception, extLibs :: [ExtLib] extLibs = [ODE -> ExtLib Math ([ODEInfo] -> [ODELibPckg] -> ODE makeODE [ODEInfo pidODEInfo] [ODELibPckg scipyODEPckg, ODELibPckg osloPckg, ODELibPckg apacheODEPckg, ODELibPckg odeintPckg])] }