summaryrefslogtreecommitdiff
path: root/src/runtime/haskell-bind/PGF2.hsc
diff options
context:
space:
mode:
authorKrasimir Angelov <kr.angelov@gmail.com>2017-08-31 13:03:11 +0200
committerKrasimir Angelov <kr.angelov@gmail.com>2017-08-31 13:03:11 +0200
commitb9c04fd6126eef43f5bc78aa973938c428d65bca (patch)
treeeff3b8ad7fadd72b9d8737b66d7c2940553f292d /src/runtime/haskell-bind/PGF2.hsc
parenteaf9f0c3ac2ce1c34a0e08de9073d8fca66a3680 (diff)
graphvizWordAlignment in the C runtime
Diffstat (limited to 'src/runtime/haskell-bind/PGF2.hsc')
-rw-r--r--src/runtime/haskell-bind/PGF2.hsc15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/runtime/haskell-bind/PGF2.hsc b/src/runtime/haskell-bind/PGF2.hsc
index 45320c6cb..4523279dd 100644
--- a/src/runtime/haskell-bind/PGF2.hsc
+++ b/src/runtime/haskell-bind/PGF2.hsc
@@ -67,7 +67,7 @@ module PGF2 (-- * PGF
MorphoAnalysis, lookupMorpho, fullFormLexicon,
-- ** Visualizations
GraphvizOptions(..), graphvizDefaults,
- graphvizAbstractTree, graphvizParseTree,
+ graphvizAbstractTree, graphvizParseTree, graphvizWordAlignment,
-- * Exceptions
PGFError(..),
@@ -357,6 +357,19 @@ graphvizParseTree c opts e =
s <- gu_string_buf_freeze sb tmpPl
peekUtf8CString s
+graphvizWordAlignment :: [Concr] -> GraphvizOptions -> Expr -> String
+graphvizWordAlignment cs opts e =
+ unsafePerformIO $
+ withGuPool $ \tmpPl ->
+ withArrayLen (map concr cs) $ \n_concrs ptr ->
+ do (sb,out) <- newOut tmpPl
+ exn <- gu_new_exn tmpPl
+ c_opts <- newGraphvizOptions tmpPl opts
+ pgf_graphviz_word_alignment ptr (fromIntegral n_concrs) (expr e) c_opts out exn
+ touchExpr e
+ s <- gu_string_buf_freeze sb tmpPl
+ peekUtf8CString s
+
newGraphvizOptions :: Ptr GuPool -> GraphvizOptions -> IO (Ptr PgfGraphvizOptions)
newGraphvizOptions pool opts = do
c_opts <- gu_malloc pool (#size PgfGraphvizOptions)