 | haskell-src-exts-1.9.6: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer | Contents | Index |
|
| Language.Haskell.Exts.Fixity | | Portability | portable | | Stability | stable | | Maintainer | Niklas Broberg, d00nibro@chalmers.se |
|
|
|
|
|
| Description |
| Fixity information to give the parser so that infix operators can
be parsed properly.
|
|
| Synopsis |
|
|
|
|
| Fixity representation
|
|
| data Fixity |
| Operator fixities are represented by their associativity
(left, right or none) and their precedence (0-9).
| | Constructors | | Instances | |
|
|
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] |
|
| infixl_ :: Int -> [String] -> [Fixity] |
|
| infixr_ :: Int -> [String] -> [Fixity] |
|
| Collections of fixities
|
|
| preludeFixities :: [Fixity] |
| All fixities defined in the Prelude.
|
|
| baseFixities :: [Fixity] |
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 where |
| All AST elements that may include expressions which in turn may
need fixity tweaking will be instances of this class.
| | | Methods | | applyFixities | | :: Monad m | | | => [Fixity] | The fixities to account for.
| | -> ast | The element to tweak.
| | -> m ast | 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 | |
|
|
| Produced by Haddock version 2.7.2 |