| 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 #