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