Advise-me-0.1: src/Recognize/Data/RuleId.hs
-----------------------------------------------------------------------------
-- Copyright 2019, Advise-Me project team. This file is distributed under
-- the terms of the Apache License 2.0. For more information, see the files
-- "LICENSE.txt" and "NOTICE.txt", which are included in the distribution.
-----------------------------------------------------------------------------
-- |
-- Maintainer : bastiaan.heeren@ou.nl
-- Stability : provisional
-- Portability : portable (depends on ghc)
--
-- This is an important module that "Recognize.Strategy.Derivation" relies on.
-- Here we define the translation from Ideas rule identifiers to our own `RuleId` type.
-- If you want to add new rules in "Recognize.Strategy.Derivation" make sure to also add
-- a new translation here.
--
-----------------------------------------------------------------------------
module Recognize.Data.RuleId where
data RuleId = Collect_Num
| Collect_Var
| Times
| Power
| Division
| Distr_Times
| Distr_Division
| Coverup_OneVar_Plus
| Coverup_Times_Positive
deriving (Eq, Ord)
instance Show RuleId where
show Collect_Num = "Collect"
show Collect_Var = "Collect"
show Times = "Times"
show Power = "Power"
show Division = "Divide"
show Coverup_OneVar_Plus = "Coverup.OneVar.Plus"
show Coverup_Times_Positive = "Coverup.OneVar.Times-Positive"
show Distr_Times = "Distribute"
show Distr_Division = "Distribute"
show _ = "Recognize.Data.RuleId: Show not implemented"
matchRuleId :: String -> Maybe RuleId
matchRuleId "algebra.equations.linear.distr-times" = Just Distr_Times
matchRuleId "linear.merge.num" = Just Collect_Num
matchRuleId "linear.merge.var" = Just Collect_Var
matchRuleId "algebra.equations.rational.cancel-div" = Just Division
matchRuleId "algebra.equations.coverup.onevar.plus" = Just Coverup_OneVar_Plus
matchRuleId "algebra.equations.coverup.times-positive" = Just Coverup_Times_Positive
matchRuleId "algebra.manipulation.simpler-fraction" = Just Division
matchRuleId "arithmetic.operation.rational.times" = Just Times
matchRuleId "arithmetic.operation.rational.power" = Just Power
matchRuleId "distr-division" = Just Distr_Division
matchRuleId _ = Nothing