drasil-docLang-0.1.26.0: A framework for code and document generation for scientific software - Document Language SubPackage
Safe HaskellSafe-Inferred
LanguageHaskell2010

Drasil.DocumentLanguage

Description

Start the process of moving away from Document as the main internal representation of information, to something more informative. Over time, we'll want to have a cleaner separation, but doing that all at once would break too much for too long. So we start here instead.

Synopsis

Main Function

mkDoc :: SRSDecl -> (IdeaDict -> IdeaDict -> Sentence) -> SystemInformation -> Document Source #

Creates a document from a document description, a title combinator function, and system information.

Functions to Fill ChunkDB

fillcdbSRS :: SRSDecl -> SystemInformation -> SystemInformation Source #

Assuming a given ChunkDB with no traces and minimal/no references, fill in for rest of system information. Currently fills in references, traceability matrix information and IdeaDicts.

fillReferences :: SRSDecl -> SystemInformation -> SystemInformation Source #

Takes in existing information from the Chunk database to construct a database of references.

dRefToRef :: HasDecRef a => a -> [Reference] Source #

Helper that gets references from definitions and models.

findAllRefs :: Section -> [Reference] Source #

Recursively find all references in a section (meant for getting at LabelledContent).

fillTraceSI :: SRSDecl -> SystemInformation -> SystemInformation Source #

Helper for filling in the traceability matrix and graph information into the system.

fillTraceMaps :: DocDesc -> SystemInformation -> SystemInformation Source #

Fills in the traceabiliy matrix and graphs section of the system information using the document description.

fillReqs :: DocDesc -> SystemInformation -> SystemInformation Source #

Fills in the requirements section of the system information using the document description.

extractUnits :: DocDesc -> ChunkDB -> [UnitDefn] Source #

Constructs the unit definitions (UnitDefns) found in the document description (DocDesc) from a database (ChunkDB).

Section Creator Functions

mkSections :: SystemInformation -> DocDesc -> [Section] Source #

Helper for creating the different document sections.

Table of Contents

mkToC :: DocDesc -> Section Source #

Helper for making the Table of Contents section.

Reference Materials

mkRefSec :: SystemInformation -> DocDesc -> RefSec -> Section Source #

Helper for creating the reference section and subsections. Includes Table of Symbols, Units and Abbreviations and Acronyms.

mkTSymb :: (Quantity e, Concept e, Eq e, MayHaveUnit e) => [e] -> LFunc -> [TSIntro] -> Section Source #

Helper for creating the table of symbols.

Introduction

mkIntroSec :: SystemInformation -> IntroSec -> Section Source #

Makes the Introduction section into a Section.

Stakeholders

mkStkhldrSec :: StkhldrSec -> Section Source #

Helper for making the Stakeholders section.

General System Description

mkGSDSec :: GSDSec -> Section Source #

Helper for making the General System Description section.

Specific System Description

mkSSDSec :: SystemInformation -> SSDSec -> Section Source #

Helper for making the Specific System Description section.

mkSSDProb :: SystemInformation -> ProblemDescription -> Section Source #

Helper for making the Specific System Description Problem section.

mkSolChSpec :: SystemInformation -> SolChSpec -> Section Source #

Helper for making the Solution Characteristics Specification section.

Requirements

mkReqrmntSec :: ReqrmntSec -> Section Source #

Helper for making the Requirements section.

Likely Changes

mkLCsSec :: LCsSec -> Section Source #

Helper for making the Likely Changes section.

Unlikely Changes

mkUCsSec :: UCsSec -> Section Source #

Helper for making the Unikely Changes section.

introChgs :: NamedIdea n => n -> [ConceptInstance] -> Contents Source #

Intro paragraph for likely and unlikely changes

Traceability

mkTraceabilitySec :: TraceabilitySec -> SystemInformation -> Section Source #

Helper for making the Traceability Matrices and Graphs section.

header :: ([UID] -> [UID]) -> SystemInformation -> [Sentence] Source #

Helper to get headers of rows and columns

Off the Shelf Solutions

mkOffShelfSolnSec :: OffShelfSolnsSec -> Section Source #

Helper for making the Off-the-Shelf Solutions section.

Auxiliary Constants

mkAuxConsSec :: AuxConstntSec -> Section Source #

Helper for making the Values of Auxiliary Constants section.

References

mkBib :: BibRef -> Section Source #

Helper for making the References section.

Appendix

mkAppndxSec :: AppndxSec -> Section Source #

Helper for making the Appendix section.