{-# LANGUAGE CPP #-}
module Agda.Interaction.Options.Help
(
Help (..)
, helpTopicUsage
, string2HelpTopic
, allHelpTopics
) where
import Data.Tuple ( swap )
import Data.Maybe ( fromMaybe )
import Agda.Interaction.Options.Warnings
#include "undefined.h"
import Agda.Utils.Impossible
data Help
= GeneralHelp
| HelpFor HelpTopic
deriving (Eq, Show)
data HelpTopic
= Warning
deriving (Eq, Show)
allHelpTopics :: [(String, HelpTopic)]
allHelpTopics = [("warning", Warning)]
helpTopicUsage :: HelpTopic -> String
helpTopicUsage tp = case tp of
Warning -> usageWarning
string2HelpTopic :: String -> Maybe HelpTopic
string2HelpTopic str = lookup str allHelpTopics
helpTopic2String :: HelpTopic -> String
helpTopic2String w = fromMaybe __IMPOSSIBLE__ $ lookup w (map swap allHelpTopics)