packages feed

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