haskell-src-exts-1.23.1: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer
Copyright(c) Niklas Broberg 2009
LicenseBSD-style (see the file LICENSE.txt)
MaintainerNiklas Broberg, d00nibro@chalmers.se
Stabilitystable
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell98

Language.Haskell.Exts.Fixity

Description

Fixity information to give the parser so that infix operators can be parsed properly.

Synopsis

Fixity representation

data Fixity Source #

Operator fixities are represented by their associativity (left, right or none) and their precedence (0-9).

Constructors

Fixity (Assoc ()) Int (QName ()) 

Instances

Instances details
Data Fixity Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Fixity -> c Fixity

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Fixity

toConstr :: Fixity -> Constr

dataTypeOf :: Fixity -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Fixity)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Fixity)

gmapT :: (forall b. Data b => b -> b) -> Fixity -> Fixity

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r

gmapQ :: (forall d. Data d => d -> u) -> Fixity -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> Fixity -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity

Show Fixity Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

showsPrec :: Int -> Fixity -> ShowS

show :: Fixity -> String

showList :: [Fixity] -> ShowS

Eq Fixity Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

(==) :: Fixity -> Fixity -> Bool

(/=) :: Fixity -> Fixity -> Bool

Ord Fixity Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

compare :: Fixity -> Fixity -> Ordering

(<) :: Fixity -> Fixity -> Bool

(<=) :: Fixity -> Fixity -> Bool

(>) :: Fixity -> Fixity -> Bool

(>=) :: Fixity -> Fixity -> Bool

max :: Fixity -> Fixity -> Fixity

min :: Fixity -> Fixity -> Fixity

The following three functions all create lists of fixities from textual representations of operators. The intended usage is e.g.

fixs = infixr_ 0  ["$","$!","`seq`"]

Note that the operators are expected as you would write them infix, i.e. with ` characters surrounding varid operators, and varsym operators written as is.

infix_ :: Int -> [String] -> [Fixity] Source #

infixl_ :: Int -> [String] -> [Fixity] Source #

infixr_ :: Int -> [String] -> [Fixity] Source #

Collections of fixities

preludeFixities :: [Fixity] Source #

All fixities defined in the Prelude.

baseFixities :: [Fixity] Source #

All fixities defined in the base package.

Note that the +++ operator appears in both Control.Arrows and Text.ParserCombinators.ReadP. The listed precedence for +++ in this list is that of Control.Arrows.

Applying fixities to an AST

class AppFixity (ast :: Type -> Type) where Source #

All AST elements that may include expressions which in turn may need fixity tweaking will be instances of this class.

Methods

applyFixities Source #

Arguments

:: MonadFail m 
=> [Fixity]

The fixities to account for.

-> ast SrcSpanInfo

The element to tweak.

-> m (ast SrcSpanInfo)

The same element, but with operator expressions updated, or a failure.

Tweak any expressions in the element to account for the fixities given. Assumes that all operator expressions are fully left associative chains to begin with.

Instances

Instances details
AppFixity Alt Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> Alt SrcSpanInfo -> m (Alt SrcSpanInfo) Source #

AppFixity Annotation Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

AppFixity Binds Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> Binds SrcSpanInfo -> m (Binds SrcSpanInfo) Source #

AppFixity Bracket Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> Bracket SrcSpanInfo -> m (Bracket SrcSpanInfo) Source #

AppFixity ClassDecl Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> ClassDecl SrcSpanInfo -> m (ClassDecl SrcSpanInfo) Source #

AppFixity Decl Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> Decl SrcSpanInfo -> m (Decl SrcSpanInfo) Source #

AppFixity Exp Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> Exp SrcSpanInfo -> m (Exp SrcSpanInfo) Source #

AppFixity FieldUpdate Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

AppFixity GuardedRhs Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

AppFixity IPBind Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> IPBind SrcSpanInfo -> m (IPBind SrcSpanInfo) Source #

AppFixity InstDecl Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> InstDecl SrcSpanInfo -> m (InstDecl SrcSpanInfo) Source #

AppFixity Match Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> Match SrcSpanInfo -> m (Match SrcSpanInfo) Source #

AppFixity Module Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> Module SrcSpanInfo -> m (Module SrcSpanInfo) Source #

AppFixity PXAttr Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> PXAttr SrcSpanInfo -> m (PXAttr SrcSpanInfo) Source #

AppFixity Pat Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> Pat SrcSpanInfo -> m (Pat SrcSpanInfo) Source #

AppFixity PatField Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> PatField SrcSpanInfo -> m (PatField SrcSpanInfo) Source #

AppFixity PatternSynDirection Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

AppFixity QualStmt Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> QualStmt SrcSpanInfo -> m (QualStmt SrcSpanInfo) Source #

AppFixity RPat Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> RPat SrcSpanInfo -> m (RPat SrcSpanInfo) Source #

AppFixity Rhs Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> Rhs SrcSpanInfo -> m (Rhs SrcSpanInfo) Source #

AppFixity Splice Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> Splice SrcSpanInfo -> m (Splice SrcSpanInfo) Source #

AppFixity Stmt Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> Stmt SrcSpanInfo -> m (Stmt SrcSpanInfo) Source #

AppFixity XAttr Source # 
Instance details

Defined in Language.Haskell.Exts.Fixity

Methods

applyFixities :: MonadFail m => [Fixity] -> XAttr SrcSpanInfo -> m (XAttr SrcSpanInfo) Source #