factor out expression
[maximus:bitbreeder.git] / Expression.hs
1 {-# LANGUAGE DeriveDataTypeable #-}
2 module Expression where
3
4 import Data.Data (Data)
5 import Data.Typeable (Typeable)
6
7 data E = X | I Int | U U E | B B E E | T E E E
8   deriving (Read, Show, Eq, Ord, Data, Typeable)
9
10 data U = Neg | LNot | BNot
11   deriving (Read, Show, Eq, Ord, Enum, Bounded, Data, Typeable)
12
13 data B = Add | Sub | Mul | Div | Mod | BAnd | LAnd | BOr | LOr | XOr | ShL | ShR | Lt | Gt
14   deriving (Read, Show, Eq, Ord, Enum, Bounded, Data, Typeable)