module Drasil.DblPend.Choices where import Language.Drasil.Code (Choices(..), CodeSpec, codeSpec, Comments(..), Verbosity(..), ConstraintBehaviour(..), ImplementationType(..), Lang(..), Modularity(..), Structure(..), ConstantStructure(..), ConstantRepr(..), InputModule(..), AuxFile(..), Visibility(..), defaultChoices, makeArchit, makeData, makeConstraints, makeODE, makeDocConfig, makeLogConfig, makeOptFeats, ExtLib(..)) import Data.Drasil.ExternalLibraries.ODELibraries (scipyODEPckg, osloPckg, apacheODEPckg, odeintPckg) import Drasil.DblPend.Body (fullSI) import Drasil.DblPend.ODEs (dblPenODEInfo) code :: CodeSpec code :: CodeSpec code = SystemInformation -> Choices -> [Mod] -> CodeSpec codeSpec SystemInformation fullSI Choices choices [] choices :: Choices choices :: Choices choices = Choices defaultChoices { lang :: [Lang] lang = [Lang Python, Lang Cpp, Lang CSharp, Lang Java], 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 Quiet Visibility Hide) ([Logging] -> FilePath -> LogConfig makeLogConfig [] FilePath "log.txt") [FilePath -> AuxFile SampleInput FilePath "../../datafiles/dblpend/sampleInput.txt", AuxFile ReadME], srsConstraints :: Constraints srsConstraints = ConstraintBehaviour -> ConstraintBehaviour -> Constraints makeConstraints ConstraintBehaviour Warning ConstraintBehaviour Warning, extLibs :: [ExtLib] extLibs = [ODE -> ExtLib Math ([ODEInfo] -> [ODELibPckg] -> ODE makeODE [ODEInfo dblPenODEInfo] [ODELibPckg scipyODEPckg, ODELibPckg osloPckg, ODELibPckg apacheODEPckg, ODELibPckg odeintPckg])] }