From 94bd76df7219fcc9a530782dedfa0566cde1d8d6 Mon Sep 17 00:00:00 2001 From: krasimir Date: Sat, 31 Jul 2010 16:40:16 +0000 Subject: [PATCH] two new functions in the PGF API: mkAbs, unAbs --- src/runtime/haskell/PGF.hs | 1 + src/runtime/haskell/PGF/Expr.hs | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/runtime/haskell/PGF.hs b/src/runtime/haskell/PGF.hs index 652399f69..9bdfd8b23 100644 --- a/src/runtime/haskell/PGF.hs +++ b/src/runtime/haskell/PGF.hs @@ -43,6 +43,7 @@ module PGF( -- ** Expr Expr, showExpr, readExpr, + mkAbs, unAbs, mkApp, unApp, mkStr, unStr, mkInt, unInt, diff --git a/src/runtime/haskell/PGF/Expr.hs b/src/runtime/haskell/PGF/Expr.hs index 2202a20c4..554726815 100644 --- a/src/runtime/haskell/PGF/Expr.hs +++ b/src/runtime/haskell/PGF/Expr.hs @@ -1,6 +1,7 @@ module PGF.Expr(Tree, BindType(..), Expr(..), Literal(..), Patt(..), Equation(..), readExpr, showExpr, pExpr, pBinds, ppExpr, ppPatt, pattScope, + mkAbs, unAbs, mkApp, unApp, mkStr, unStr, mkInt, unInt, @@ -96,6 +97,15 @@ showExpr vars = PP.render . ppExpr 0 vars instance Read Expr where readsPrec _ = RP.readP_to_S pExpr +mkAbs :: BindType -> CId -> Expr -> Expr +mkAbs = EAbs + +unAbs :: Expr -> Maybe (BindType, CId, Expr) +unAbs (EAbs bt x e) = Just (bt,x,e) +unAbs (ETyped e ty) = unAbs e +unAbs (EImplArg e) = unAbs e +unAbs _ = Nothing + -- | Constructs an expression by applying a function to a list of expressions mkApp :: CId -> [Expr] -> Expr mkApp f es = foldl EApp (EFun f) es