bugfix for hasLinearization in the Haskell binding

This commit is contained in:
Krasimir Angelov
2017-08-30 18:11:59 +02:00
parent fd56b4b5f3
commit cd53269f96
4 changed files with 6 additions and 5 deletions

View File

@@ -195,7 +195,7 @@ pgf_print_name(PgfConcr* concr, PgfCId id)
return name;
}
PGF_API bool
PGF_API int
pgf_has_linearization(PgfConcr* concr, PgfCId id)
{
PgfCncOverloadMap* overl_table =

View File

@@ -94,7 +94,7 @@ pgf_function_prob(PgfPGF* pgf, PgfCId funname);
PGF_API_DECL GuString
pgf_print_name(PgfConcr*, PgfCId id);
PGF_API_DECL bool
PGF_API_DECL int
pgf_has_linearization(PgfConcr* concr, PgfCId id);
PGF_API_DECL void

View File

@@ -580,8 +580,9 @@ parseWithOracle lang cat sent (predict,complete,literal) =
-- | Returns True if there is a linearization defined for that function in that language
hasLinearization :: Concr -> Fun -> Bool
hasLinearization lang id = unsafePerformIO $
withGuPool $ \pl ->
newUtf8CString id pl >>= pgf_has_linearization (concr lang)
withGuPool $ \pl -> do
res <- newUtf8CString id pl >>= pgf_has_linearization (concr lang)
return (res /= 0)
-- | Linearizes an expression as a string in the language
linearize :: Concr -> Expr -> String

View File

@@ -192,7 +192,7 @@ 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
pgf_has_linearization :: Ptr PgfConcr -> CString -> IO CInt
foreign import ccall "pgf/pgf.h pgf_linearize"
pgf_linearize :: Ptr PgfConcr -> PgfExpr -> Ptr GuOut -> Ptr GuExn -> IO ()