summaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/haskell-bind/PGF2.hsc13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/runtime/haskell-bind/PGF2.hsc b/src/runtime/haskell-bind/PGF2.hsc
index 0d65822f9..e1b0acd03 100644
--- a/src/runtime/haskell-bind/PGF2.hsc
+++ b/src/runtime/haskell-bind/PGF2.hsc
@@ -19,7 +19,7 @@
#include <gu/exn.h>
module PGF2 (-- * PGF
- PGF,readPGF,
+ PGF,readPGF,showPGF,
-- * Identifiers
CId,
@@ -137,6 +137,17 @@ readPGF fpath =
pgfFPtr <- newForeignPtr gu_pool_finalizer pool
return (PGF pgf (touchForeignPtr pgfFPtr))
+showPGF :: PGF -> String
+showPGF p =
+ unsafePerformIO $
+ withGuPool $ \tmpPl ->
+ do (sb,out) <- newOut tmpPl
+ exn <- gu_new_exn tmpPl
+ pgf_print (pgf p) out exn
+ touchPGF p
+ s <- gu_string_buf_freeze sb tmpPl
+ peekUtf8CString s
+
-- | List of all languages available in the grammar.
languages :: PGF -> Map.Map ConcName Concr
languages p =