Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
b0f64c9acThis file is pinned to the selected release. Download the original to open it in your design tool.
module SyntaxUtil(dropPatAs, infixFun, isCon
, isExpInt, isExpIrr, isExpVar, isVar, isNK
, isTypeVar
) where
import Syntax
import SyntaxPos
-- CaseHelp
isVar (ExpVar _ _) = True
isVar (PatWildcard _) = True
isVar _ = False
isCon (ExpCon _ _) = True
isCon (ExpApplication _ (p:_)) = isCon p
isCon _ = False
isExpInt (ExpLit _ (LitInt _ _)) = True
isExpInt _ = False
isNK (PatNplusK _ _ _ _ _ _) = True
isNK _ = False
isExpIrr (PatIrrefutable _ _) = True
isExpIrr _ = False
dropPatAs (PatAs _ _ pat) = dropPatAs pat
dropPatAs pat = pat
isExpVar (ExpVar _ _) = True
isExpVar _ = False
-- Rename
infixFun es =
case break isExpVarOp es of
(e1,ExpVarOp pos fun:e2) ->
Just (ExpInfixList (getPos e1) e1,pos,fun,ExpInfixList (getPos e2) e2)
_ -> Nothing
isExpVarOp (ExpVarOp _ _) = True
isExpVarOp _ = False
isTypeVar (TypeVar _ _ ) = True
isTypeVar _ = False