diff --git a/src/runtime/haskell-bind/PGF2.hsc b/src/runtime/haskell-bind/PGF2.hsc index 20ffc11c4..64f849e56 100644 --- a/src/runtime/haskell-bind/PGF2.hsc +++ b/src/runtime/haskell-bind/PGF2.hsc @@ -17,7 +17,8 @@ module PGF2 (-- * CId -- * PGF PGF,readPGF,AbsName,abstractName,startCat, -- * Concrete syntax - ConcName,Concr,languages,parse,parseWithHeuristics,linearize,alignWords, + ConcName,Concr,languages,parse,parseWithHeuristics, + hasLinearization,linearize,alignWords, -- * Types Type(..), Hypo, functionType, -- * Trees @@ -409,6 +410,10 @@ mkCallbacksMap concr callbacks pool = do predict_callback _ _ _ _ = return nullPtr +hasLinearization :: Concr -> Fun -> Bool +hasLinearization lang id = unsafePerformIO $ + withCString id (pgf_has_linearization (concr lang)) + linearize :: Concr -> Expr -> String linearize lang e = unsafePerformIO $ withGuPool $ \pl -> diff --git a/src/runtime/haskell-bind/PGF2/FFI.hs b/src/runtime/haskell-bind/PGF2/FFI.hs index f36fa1368..9de76fb51 100644 --- a/src/runtime/haskell-bind/PGF2/FFI.hs +++ b/src/runtime/haskell-bind/PGF2/FFI.hs @@ -133,6 +133,9 @@ foreign import ccall "pgf/pgf.h pgf_function_type" foreign import ccall "pgf/pgf.h pgf_print_name" pgf_print_name :: Ptr PgfConcr -> CString -> IO CString +foreign import ccall "pgf/pgf.h pgf_has_linearization" + pgf_has_linearization :: Ptr PgfConcr -> CString -> IO Bool + foreign import ccall "pgf/pgf.h pgf_linearize" pgf_linearize :: Ptr PgfConcr -> PgfExpr -> Ptr GuOut -> Ptr GuExn -> IO ()