ampersand-3.1.0: src/Database/Design/Ampersand/Output/ToPandoc/ChapterECArules.hs
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE OverloadedStrings #-}
module Database.Design.Ampersand.Output.ToPandoc.ChapterECArules
where
import Database.Design.Ampersand.Output.ToPandoc.SharedAmongChapters
import Database.Design.Ampersand.FSpec.ToFSpec.NormalForms (proofPA)
chpECArules :: FSpec -> Blocks
chpECArules fSpec
| (not.genEcaDoc.getOpts) fSpec = mempty
| otherwise =
chptHeader (fsLang fSpec) EcaRules
<> (para.str.l) (NL "Dit hoofdstuk bevat de ECA regels."
,EN "This chapter lists the ECA rules.")
<> para ( (str.l) (NL "ECA regels:" , EN "ECA rules:")
<> linebreak
<> (str.l) (NL" tijdelijk ongedocumenteerd", EN " temporarily not documented")
)
<> mconcat
[ (blockQuote . codeBlock . ("\n "++) . showECA "\n ") eca
<> if False -- TODO : This could be enabled by introducing a switch in Options.hs
then mempty
else para ( linebreak
<> (str.l) (NL "------ Afleiding ----->" ,EN "------ Derivation ----->")
)
<> (showProof (codeBlock . ("\n "++) . showECA "\n ") . proofPA (getOpts fSpec) . ecaAction) eca -- for the proof
<> para ( linebreak
<> (str.l) (NL "<------Einde afleiding --",EN "<------End Derivation --")
)
| eca<-vEcas fSpec, (not.isNop.ecaAction) eca
]
where
-- shorthand for easy localizing
l :: LocalizedStr -> String
l lstr = localize (fsLang fSpec) lstr