diff options
| author | Krasimir Angelov <kr.angelov@gmail.com> | 2017-09-05 09:50:29 +0200 |
|---|---|---|
| committer | Krasimir Angelov <kr.angelov@gmail.com> | 2017-09-05 09:50:29 +0200 |
| commit | 85cf2d9f5a1018219beb51c1172842cddda1f544 (patch) | |
| tree | d25edd8cf31fe6baf29b47dac265c7e9a8e2eaeb /src/runtime/haskell-bind | |
| parent | a5fe5b9378937a35fa7921c6ed62ec9efa059934 (diff) | |
added exprSize in the Haskell binding
Diffstat (limited to 'src/runtime/haskell-bind')
| -rw-r--r-- | src/runtime/haskell-bind/PGF2.hsc | 10 | ||||
| -rw-r--r-- | src/runtime/haskell-bind/PGF2/FFI.hs | 3 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/runtime/haskell-bind/PGF2.hsc b/src/runtime/haskell-bind/PGF2.hsc index f2f1b4113..4990a1926 100644 --- a/src/runtime/haskell-bind/PGF2.hsc +++ b/src/runtime/haskell-bind/PGF2.hsc @@ -39,7 +39,7 @@ module PGF2 (-- * PGF mkFloat,unFloat, mkMeta,unMeta, mkCId, - exprHash, + exprHash, exprSize, treeProbability, -- ** Types @@ -331,7 +331,13 @@ exprHash h (Expr c_expr touch1) = touch1 return (fromIntegral h) - +exprSize :: Expr -> Int32 +exprSize (Expr c_expr touch1) = + unsafePerformIO $ do + size <- pgf_expr_size c_expr + touch1 + return (fromIntegral size) + ----------------------------------------------------------------------------- -- Graphviz diff --git a/src/runtime/haskell-bind/PGF2/FFI.hs b/src/runtime/haskell-bind/PGF2/FFI.hs index ce4dd6983..85c3a9793 100644 --- a/src/runtime/haskell-bind/PGF2/FFI.hs +++ b/src/runtime/haskell-bind/PGF2/FFI.hs @@ -331,6 +331,9 @@ foreign import ccall "pgf/expr.h pgf_expr_eq" foreign import ccall "pgf/expr.h pgf_expr_hash" pgf_expr_hash :: Word -> PgfExpr -> IO Word +foreign import ccall "pgf/expr.h pgf_expr_size" + pgf_expr_size :: PgfExpr -> IO CInt + foreign import ccall "pgf/expr.h pgf_compute_tree_probability" pgf_compute_tree_probability :: Ptr PgfPGF -> PgfExpr -> IO CFloat |
