hydra-0.1.0: src/main/haskell/Hydra/Ext/Haskell/Operators.hs
module Hydra.Ext.Haskell.Operators where
import Hydra.Util.Codetree.Ast
import Hydra.Util.Codetree.Script
andOp :: Op
andOp = op "&&" 3 AssociativityRight
apOp :: Op
apOp = op "<*>" 4 AssociativityLeft
appOp :: Op
appOp = Op (Symbol "") (Padding WsNone WsSpace) (Precedence 0) AssociativityLeft -- No source
applyOp :: Op
applyOp = op "$" 0 AssociativityRight
arrowOp :: Op
arrowOp = op "->" (negate 1) AssociativityRight
--assignOp = op "<-"
bindOp :: Op
bindOp = op ">>=" 1 AssociativityLeft
caseOp :: Op
caseOp = op "->" 0 AssociativityNone -- No source
composeOp :: Op
composeOp = op "." 9 AssociativityLeft
concatOp :: Op
concatOp = op "++" 5 AssociativityRight
consOp :: Op
consOp = op ":" 5 AssociativityRight
defineOp :: Op
defineOp = op "=" 0 AssociativityNone -- No source
diamondOp :: Op
diamondOp = op "<>" 6 AssociativityRight
divOp :: Op
divOp = op "`div`" 7 AssociativityLeft
divideOp :: Op
divideOp = op "/" 7 AssociativityLeft
elemOp :: Op
elemOp = op "`elem`" 4 AssociativityNone
equalOp :: Op
equalOp = op "==" 4 AssociativityNone
fmapOp :: Op
fmapOp = op "<$>" 4 AssociativityLeft
gtOp :: Op
gtOp = op ">" 4 AssociativityNone
gteOp :: Op
gteOp = op ">=" 4 AssociativityNone
indexOp :: Op
indexOp = op "!!" 9 AssociativityLeft
lambdaOp :: Op
lambdaOp = op "->" (negate 1) AssociativityRight -- No source
ltOp :: Op
ltOp = op "<" 4 AssociativityNone
lteOp :: Op
lteOp = op ">=" 4 AssociativityNone
minusOp :: Op
minusOp = op "-" 6 AssociativityBoth -- Originally: AssociativityLeft
modOp :: Op
modOp = op "`mod`" 7 AssociativityLeft
multOp :: Op
multOp = op "*" 7 AssociativityBoth -- Originally: AssociativityLeft
neqOp :: Op
neqOp = op "/=" 4 AssociativityNone
notElemOp :: Op
notElemOp = op "`notElem`" 4 AssociativityNone
orOp :: Op
orOp = op "||" 2 AssociativityRight
plusOp :: Op
plusOp = op "+" 6 AssociativityBoth -- Originally: AssociativityLeft
quotOp :: Op
quotOp = op "`quot`" 7 AssociativityLeft
remOp :: Op
remOp = op "`rem`" 7 AssociativityLeft
--suchThatOp = op "|"
--thenOp = op "=>"
typeOp :: Op
typeOp = op "::" 0 AssociativityNone -- No source