module Language.C.Syntax.Ops (
CAssignOp(..),
CUnaryOp(..),
CBinaryOp(..),
)
where
import Data.Generics
data CAssignOp = CAssignOp
| CMulAssOp
| CDivAssOp
| CRmdAssOp
| CAddAssOp
| CSubAssOp
| CShlAssOp
| CShrAssOp
| CAndAssOp
| CXorAssOp
| COrAssOp
deriving (Eq, Ord,Data,Typeable)
instance Show CAssignOp where
show CAssignOp = "="
show CMulAssOp = "*="
show CDivAssOp = "/="
show CRmdAssOp = "%="
show CAddAssOp = "+="
show CSubAssOp = "-="
show CShlAssOp = "<<="
show CShrAssOp = ">>="
show CAndAssOp = "&="
show CXorAssOp = "^="
show COrAssOp = "|="
data CBinaryOp = CMulOp
| CDivOp
| CRmdOp
| CAddOp
| CSubOp
| CShlOp
| CShrOp
| CLeOp
| CGrOp
| CLeqOp
| CGeqOp
| CEqOp
| CNeqOp
| CAndOp
| CXorOp
| COrOp
| CLndOp
| CLorOp
deriving (Eq,Ord,Data,Typeable)
instance Show CBinaryOp where
show CMulOp = "*"
show CDivOp = "/"
show CRmdOp = "%"
show CAddOp = "+"
show CSubOp = "-"
show CShlOp = "<<"
show CShrOp = ">>"
show CLeOp = "<"
show CGrOp = ">"
show CLeqOp = "<="
show CGeqOp = ">="
show CEqOp = "=="
show CNeqOp = "!="
show CAndOp = "&"
show CXorOp = "^"
show COrOp = "|"
show CLndOp = "&&"
show CLorOp = "||"
data CUnaryOp = CPreIncOp
| CPreDecOp
| CPostIncOp
| CPostDecOp
| CAdrOp
| CIndOp
| CPlusOp
| CMinOp
| CCompOp
| CNegOp
deriving (Eq,Ord,Data,Typeable)
instance Show CUnaryOp where
show CPreIncOp = "++"
show CPreDecOp = "--"
show CPostIncOp = "++"
show CPostDecOp = "--"
show CAdrOp = "&"
show CIndOp = "*"
show CPlusOp = "+"
show CMinOp = "-"
show CCompOp = "~"
show CNegOp = "!"