22 lines
398 B
Haskell
22 lines
398 B
Haskell
module Calculator where
|
|
|
|
import Utils
|
|
import Expr
|
|
import Parser
|
|
|
|
data Law = Law LawName Equation
|
|
deriving Show
|
|
|
|
type LawName = String
|
|
type Equation = (Expr,Expr)
|
|
|
|
law :: Parser Law
|
|
law = do name <- upto ':'
|
|
eqn <- equation
|
|
return (Law name eqn)
|
|
|
|
equation :: Parser Equation
|
|
equation = do lh <- expr
|
|
symbol "="
|
|
rh <- expr
|
|
return (lh, rh)
|