ampersand-3.0.2: src/lib/DatabaseDesign/Ampersand/Output/ToPandoc/ChapterECArules.hs
{-# OPTIONS_GHC -Wall #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE OverloadedStrings #-}
module DatabaseDesign.Ampersand.Output.ToPandoc.ChapterECArules
where
import DatabaseDesign.Ampersand.Output.ToPandoc.SharedAmongChapters
import DatabaseDesign.Ampersand.Fspec.ToFspec.NormalForms (proofPA)
import DatabaseDesign.Ampersand.ADL1
chpECArules :: Fspc -> Options -> Blocks
chpECArules fSpec flags =
if genEcaDoc flags
then chpECArules' fSpec
else mempty
chpECArules' :: Fspc -> Blocks
chpECArules' fSpec
= chptHeader (fsLang fSpec) EcaRules
<> ecaIntro
<> ifcECA
where
ecaIntro :: Blocks
ecaIntro
= case fsLang fSpec of
Dutch -> plain "Dit hoofdstuk bevat de ECA regels."
English -> plain "This chapter lists the ECA rules."
ifcECA :: Blocks
ifcECA
= case fsLang fSpec of
Dutch -> para ( "ECA regels:" <> linebreak
<> " tijdelijk ongedocumenteerd")
<> mconcat
[ (blockQuote . codeBlock . ("\n "++) . showECA "\n ") eca
<> para ( linebreak <>
"------ Afleiding ----->" -- Dit in- en uitschakelbaar maken
)
<> (showProof (codeBlock . ("\n "++) . showECA "\n ") . proofPA . ecaAction) eca -- voor het bewijs
<> para ( linebreak <>
"<------Einde afleiding --" -- Dit in- en uitschakelbaar maken
)
| eca<-vEcas fSpec, (not.isNop.ecaAction) eca
]
English -> para ( "ECA rules:" <> linebreak
<> " temporarily not documented")
<> mconcat
[ (blockQuote . codeBlock . ("\n "++) . showECA "\n ") eca
<> para ( linebreak <>
"------ Derivation ----->" -- Dit in- en uitschakelbaar maken
)
<> (showProof (codeBlock . ("\n "++) . showECA "\n ") . proofPA . ecaAction) eca -- voor het bewijs
<> para ( linebreak <>
"<------End Derivation --" -- Dit in- en uitschakelbaar maken
)
| eca<-vEcas fSpec, (not.isNop.ecaAction) eca
]