Copyright | (c) 2008 Benedikt Huber |
---|---|
License | BSD-style |
Maintainer | benedikt.huber@gmail.com |
Stability | experimental |
Portability | ghc |
Safe Haskell | None |
Language | Haskell98 |
Language.C.Syntax.Ops
Description
Unary, binary and asssignment operators. Exported via AST.
Synopsis
- data CAssignOp
- assignBinop :: CAssignOp -> CBinaryOp
- data CBinaryOp
- isCmpOp :: CBinaryOp -> Bool
- isPtrOp :: CBinaryOp -> Bool
- isBitOp :: CBinaryOp -> Bool
- isLogicOp :: CBinaryOp -> Bool
- data CUnaryOp
- = CPreIncOp
- | CPreDecOp
- | CPostIncOp
- | CPostDecOp
- | CAdrOp
- | CIndOp
- | CPlusOp
- | CMinOp
- | CCompOp
- | CNegOp
- isEffectfulOp :: CUnaryOp -> Bool
Assignment operators
C assignment operators (K&R A7.17)
Constructors
CAssignOp | |
CMulAssOp | |
CDivAssOp | |
CRmdAssOp | remainder and assignment |
CAddAssOp | |
CSubAssOp | |
CShlAssOp | |
CShrAssOp | |
CAndAssOp | |
CXorAssOp | |
COrAssOp |
Instances
Eq CAssignOp Source # | |
Data CAssignOp Source # | |
Defined in Language.C.Syntax.Ops Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CAssignOp -> c CAssignOp Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CAssignOp Source # toConstr :: CAssignOp -> Constr Source # dataTypeOf :: CAssignOp -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CAssignOp) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CAssignOp) Source # gmapT :: (forall b. Data b => b -> b) -> CAssignOp -> CAssignOp Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CAssignOp -> r Source # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CAssignOp -> r Source # gmapQ :: (forall d. Data d => d -> u) -> CAssignOp -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> CAssignOp -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CAssignOp -> m CAssignOp Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CAssignOp -> m CAssignOp Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CAssignOp -> m CAssignOp Source # | |
Ord CAssignOp Source # | |
Defined in Language.C.Syntax.Ops | |
Show CAssignOp Source # | |
Generic CAssignOp Source # | |
NFData CAssignOp Source # | |
Defined in Language.C.Syntax.Ops | |
Pretty CAssignOp Source # | |
type Rep CAssignOp Source # | |
Defined in Language.C.Syntax.Ops type Rep CAssignOp = D1 (MetaData "CAssignOp" "Language.C.Syntax.Ops" "language-c-0.8.2-9HCycZN4u9o56U8HdwrRHa" False) (((C1 (MetaCons "CAssignOp" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CMulAssOp" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "CDivAssOp" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "CRmdAssOp" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CAddAssOp" PrefixI False) (U1 :: Type -> Type)))) :+: ((C1 (MetaCons "CSubAssOp" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "CShlAssOp" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CShrAssOp" PrefixI False) (U1 :: Type -> Type))) :+: (C1 (MetaCons "CAndAssOp" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "CXorAssOp" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "COrAssOp" PrefixI False) (U1 :: Type -> Type))))) |
assignBinop :: CAssignOp -> CBinaryOp Source #
Binary operators
C binary operators (K&R A7.6-15)
Constructors
CMulOp | |
CDivOp | |
CRmdOp | remainder of division |
CAddOp | |
CSubOp | |
CShlOp | shift left |
CShrOp | shift right |
CLeOp | less |
CGrOp | greater |
CLeqOp | less or equal |
CGeqOp | greater or equal |
CEqOp | equal |
CNeqOp | not equal |
CAndOp | bitwise and |
CXorOp | exclusive bitwise or |
COrOp | inclusive bitwise or |
CLndOp | logical and |
CLorOp | logical or |
Instances
Unary operators
C unary operator (K&R A7.3-4)
Constructors
CPreIncOp | prefix increment operator |
CPreDecOp | prefix decrement operator |
CPostIncOp | postfix increment operator |
CPostDecOp | postfix decrement operator |
CAdrOp | address operator |
CIndOp | indirection operator |
CPlusOp | prefix plus |
CMinOp | prefix minus |
CCompOp | one's complement |
CNegOp | logical negation |
Instances
Eq CUnaryOp Source # | |
Data CUnaryOp Source # | |
Defined in Language.C.Syntax.Ops Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CUnaryOp -> c CUnaryOp Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CUnaryOp Source # toConstr :: CUnaryOp -> Constr Source # dataTypeOf :: CUnaryOp -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CUnaryOp) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CUnaryOp) Source # gmapT :: (forall b. Data b => b -> b) -> CUnaryOp -> CUnaryOp Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CUnaryOp -> r Source # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CUnaryOp -> r Source # gmapQ :: (forall d. Data d => d -> u) -> CUnaryOp -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> CUnaryOp -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CUnaryOp -> m CUnaryOp Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CUnaryOp -> m CUnaryOp Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CUnaryOp -> m CUnaryOp Source # | |
Ord CUnaryOp Source # | |
Defined in Language.C.Syntax.Ops | |
Show CUnaryOp Source # | |
Generic CUnaryOp Source # | |
NFData CUnaryOp Source # | |
Defined in Language.C.Syntax.Ops | |
Pretty CUnaryOp Source # | |
type Rep CUnaryOp Source # | |
Defined in Language.C.Syntax.Ops type Rep CUnaryOp = D1 (MetaData "CUnaryOp" "Language.C.Syntax.Ops" "language-c-0.8.2-9HCycZN4u9o56U8HdwrRHa" False) (((C1 (MetaCons "CPreIncOp" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CPreDecOp" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "CPostIncOp" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "CPostDecOp" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CAdrOp" PrefixI False) (U1 :: Type -> Type)))) :+: ((C1 (MetaCons "CIndOp" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CPlusOp" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "CMinOp" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "CCompOp" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CNegOp" PrefixI False) (U1 :: Type -> Type))))) |
isEffectfulOp :: CUnaryOp -> Bool Source #