Skip to content

Commit

Permalink
Refactor: Move README-specific information out of ClassInterface.
Browse files Browse the repository at this point in the history
Remove unneed comments.
  • Loading branch information
Xinlu-Y committed Sep 5, 2024
1 parent 3de170f commit b82cba4
Show file tree
Hide file tree
Showing 13 changed files with 72 additions and 61 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,15 @@
-- | Defines a package extension for GOOL, with functions for pairing a GOOL
-- program with auxiliary, non-source-code files.
module Language.Drasil.Code.Imperative.GOOL.ClassInterface (
ReadMeInfo(..),
-- Typeclasses
PackageSym(..), AuxiliarySym(..)
) where

import Language.Drasil (Expr)
import Database.Drasil (ChunkDB)
import Language.Drasil.Code.DataDesc (DataDesc)
import Language.Drasil.Mod (Name, Version)
import Language.Drasil.Choices (Comments, ImplementationType, Verbosity)
import Language.Drasil.Code.Imperative.ReadMe.Import (ReadMeInfo(..))

import Drasil.GOOL (ProgData, GOOLState)

Expand Down Expand Up @@ -41,42 +40,3 @@ class AuxiliarySym r where

auxHelperDoc :: r (AuxHelper r) -> Doc
auxFromData :: FilePath -> Doc -> r (Auxiliary r)

-- | Language name.
type LangAbbrev = String
-- | Programming language version.
type LangVers = String
-- | Case name.
type CaseName = String
-- | Purpose of example
type ExamplePurpose = String
-- | Description of example
type ExampleDescr = String
-- | Motivation of example
type ExampleMotivation = String
-- | Scope of exmample
type ExampleScope = String
-- | File contributors
type Contributor = String
-- | Input File
type InFile = String -- TODO: There may not always be an Input/Output File
-- | Output File
type OutFile = String
-- | Holds all information needed to create a README file.
data ReadMeInfo = ReadMeInfo {
langName :: LangAbbrev,
langVersion :: LangVers,
invalidOS :: Maybe String,
implementType :: ImplementationType,
extLibNV :: [(Name,Version)],
extLibFP :: [FilePath],
contributors :: [Contributor],
configFP :: [FilePath],
caseName :: CaseName,
examplePurpose :: ExamplePurpose,
exampleDescr :: ExampleDescr,
exampleMotivation :: ExampleMotivation,
exampleScope :: ExampleScope,
folderNum :: Int,
inputOutput :: (InFile, OutFile)
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ module Language.Drasil.Code.Imperative.GOOL.LanguageRenderer.CSharpRenderer (
) where

import Language.Drasil.Choices (ImplementationType(..))
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (ReadMeInfo(..),
PackageSym(..), AuxiliarySym(..))
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (PackageSym(..), AuxiliarySym(..))
import Language.Drasil.Code.Imperative.ReadMe.Import (ReadMeInfo(..))
import qualified
Language.Drasil.Code.Imperative.GOOL.LanguageRenderer.LanguagePolymorphic as
G (doxConfig, readMe, sampleInput, makefile, noRunIfLib, doxDocConfig,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ module Language.Drasil.Code.Imperative.GOOL.LanguageRenderer.CppRenderer (
) where

import Language.Drasil.Choices (ImplementationType(..))
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (ReadMeInfo(..),
PackageSym(..), AuxiliarySym(..))
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (PackageSym(..), AuxiliarySym(..))
import Language.Drasil.Code.Imperative.ReadMe.Import (ReadMeInfo(..))
import qualified
Language.Drasil.Code.Imperative.GOOL.LanguageRenderer.LanguagePolymorphic as
G (doxConfig, readMe, sampleInput, makefile, noRunIfLib, doxDocConfig,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ module Language.Drasil.Code.Imperative.GOOL.LanguageRenderer.JavaRenderer (
) where

import Language.Drasil.Choices (ImplementationType(..))
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (ReadMeInfo(..),
PackageSym(..), AuxiliarySym(..))
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (PackageSym(..), AuxiliarySym(..))
import Language.Drasil.Code.Imperative.ReadMe.Import (ReadMeInfo(..))
import qualified
Language.Drasil.Code.Imperative.GOOL.LanguageRenderer.LanguagePolymorphic as
G (doxConfig, readMe, sampleInput, makefile, noRunIfLib, doxDocConfig, docIfEnabled)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ module Language.Drasil.Code.Imperative.GOOL.LanguageRenderer.JuliaRenderer (
JuliaProject(..)
) where

import Language.Drasil.Code.Imperative.GOOL.ClassInterface (ReadMeInfo(..),
PackageSym(..), AuxiliarySym(..))
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (PackageSym(..), AuxiliarySym(..))
import Language.Drasil.Code.Imperative.ReadMe.Import (ReadMeInfo(..))
import qualified
Language.Drasil.Code.Imperative.GOOL.LanguageRenderer.LanguagePolymorphic as
G (sampleInput, readMe, makefile, noRunIfLib, docIfEnabled)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ import Language.Drasil.Code.Imperative.WriteReadMe (makeReadMe)
import Language.Drasil.Code.Imperative.GOOL.LanguageRenderer (doxConfigName,
makefileName, sampleInputName, readMeName)

import Language.Drasil.Code.Imperative.GOOL.ClassInterface ( ReadMeInfo(..),
AuxiliarySym(Auxiliary, AuxHelper, auxHelperDoc, auxFromData))

import Language.Drasil.Code.Imperative.GOOL.ClassInterface (AuxiliarySym(Auxiliary, AuxHelper, auxHelperDoc, auxFromData))
import Language.Drasil.Code.Imperative.ReadMe.Import (ReadMeInfo(..))
-- | Defines a Doxygen configuration file.
doxConfig :: (AuxiliarySym r) => r (AuxHelper r) -> String ->
GOOLState -> Verbosity -> r (Auxiliary r)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ module Language.Drasil.Code.Imperative.GOOL.LanguageRenderer.PythonRenderer (
PythonProject(..)
) where

import Language.Drasil.Code.Imperative.GOOL.ClassInterface (ReadMeInfo(..),PackageSym(..),
AuxiliarySym(..))
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (PackageSym(..), AuxiliarySym(..))
import Language.Drasil.Code.Imperative.ReadMe.Import (ReadMeInfo(..))

import qualified
Language.Drasil.Code.Imperative.GOOL.LanguageRenderer.LanguagePolymorphic as
G (doxConfig, readMe, sampleInput, makefile, noRunIfLib, doxDocConfig,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ module Language.Drasil.Code.Imperative.GOOL.LanguageRenderer.SwiftRenderer (
) where

import Language.Drasil.Choices (ImplementationType(..))
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (ReadMeInfo(..),
PackageSym(..), AuxiliarySym(..))
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (PackageSym(..), AuxiliarySym(..))
import Language.Drasil.Code.Imperative.ReadMe.Import (ReadMeInfo(..))

import qualified
Language.Drasil.Code.Imperative.GOOL.LanguageRenderer.LanguagePolymorphic as
G (sampleInput, readMe, makefile, noRunIfLib, docIfEnabled)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ module Language.Drasil.Code.Imperative.GenerateGOOL (ClassType(..),

import Language.Drasil hiding (List)
import Language.Drasil.Code.Imperative.DrasilState (GenState, DrasilState(..))
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (ReadMeInfo(..),
AuxiliarySym(..))
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (AuxiliarySym(..))
import Language.Drasil.Code.Imperative.ReadMe.Import (ReadMeInfo(..))
import Language.Drasil.Choices (Comments(..), AuxFile(..))
import Language.Drasil.CodeSpec (CodeSpec(..))
import Language.Drasil.Mod (Name, Description, Import)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ import Language.Drasil.Code.Imperative.Modules (genInputMod, genInputModProc,
genOutputModProc, genSampleInput)
import Language.Drasil.Code.Imperative.DrasilState (GenState, DrasilState(..),
ScopeType(..), designLog, modExportMap, clsDefMap, genICName)
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (ReadMeInfo(..),
PackageSym(..), AuxiliarySym(..))
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (PackageSym(..), AuxiliarySym(..))
import Language.Drasil.Code.Imperative.ReadMe.Import (ReadMeInfo(..))
import Language.Drasil.Code.Imperative.GOOL.Data (PackData(..), ad)
import Language.Drasil.Code.Imperative.GOOL.LanguageRenderer(sampleInputName)
import Language.Drasil.Code.CodeGeneration (createCodeFiles, makeCode)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
-- | This module defines structures and functions for handling README files,
-- which are used as auxiliary documentation files for the system.
module Language.Drasil.Code.Imperative.ReadMe.Import (
ReadMeInfo(..),
) where

import Language.Drasil.Mod (Name, Version)
import Language.Drasil.Choices (ImplementationType)

-- | Language name.
type LangAbbrev = String
-- | Programming language version.
type LangVers = String
-- | Case name.
type CaseName = String
-- | Purpose of example
type ExamplePurpose = String
-- | Description of example
type ExampleDescr = String
-- | Motivation of example
type ExampleMotivation = String
-- | Scope of example
type ExampleScope = String
-- | File contributors
type Contributor = String
-- | Input File
type InFile = String
-- | Output File
type OutFile = String

-- | Holds all information needed to create a README file.
data ReadMeInfo = ReadMeInfo {
langName :: LangAbbrev,
langVersion :: LangVers,
invalidOS :: Maybe String,
implementType :: ImplementationType,
extLibNV :: [(Name, Version)],
extLibFP :: [FilePath],
contributors :: [Contributor],
configFP :: [FilePath],
caseName :: CaseName,
examplePurpose :: ExamplePurpose,
exampleDescr :: ExampleDescr,
exampleMotivation :: ExampleMotivation,
exampleScope :: ExampleScope,
folderNum :: Int,
inputOutput :: (InFile, OutFile)
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module Language.Drasil.Code.Imperative.WriteReadMe (
import Language.Drasil.Choices (ImplementationType(..))
import Language.Drasil.Printers (makeMd, introInfo, verInfo, unsupOS,
extLibSec, instDoc, endNote, whatInfo)
import Language.Drasil.Code.Imperative.GOOL.ClassInterface (ReadMeInfo(..))
import Language.Drasil.Code.Imperative.ReadMe.Import (ReadMeInfo(..))

import Prelude hiding ((<>))
import Text.PrettyPrint.HughesPJ (Doc, empty)
Expand Down
1 change: 1 addition & 0 deletions code/drasil-code/package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ library:
- Language.Drasil.Code.ExternalLibraryCall
- Language.Drasil.Code.ExtLibImport
- Language.Drasil.Code.Lang
- Language.Drasil.Code.Imperative.ReadMe.Import
- Language.Drasil.Code.Imperative.Build.AST
- Language.Drasil.Code.Imperative.Build.Import
- Language.Drasil.Code.Imperative.ConceptMatch
Expand Down

0 comments on commit b82cba4

Please sign in to comment.