diff options
| author | kr.angelov <kr.angelov@gmail.com> | 2014-02-09 20:45:11 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@gmail.com> | 2014-02-09 20:45:11 +0000 |
| commit | adeeb47e06cba3ac76b585b068324fac0446bad0 (patch) | |
| tree | 1302eaf67e012646c2072c55a946247447fbe5cc /src/runtime/haskell-bind/PgfLow.hs | |
| parent | f30c60c3d7cfc2dbaca7e1ba0abf953b9c3caa63 (diff) | |
cleanup the code for the FFI binding. The API is now more uniform with the Python and the Java bindings. Fixed a lot of memory leaks.
Diffstat (limited to 'src/runtime/haskell-bind/PgfLow.hs')
| -rw-r--r-- | src/runtime/haskell-bind/PgfLow.hs | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/src/runtime/haskell-bind/PgfLow.hs b/src/runtime/haskell-bind/PgfLow.hs deleted file mode 100644 index 0caad1ab9..000000000 --- a/src/runtime/haskell-bind/PgfLow.hs +++ /dev/null @@ -1,152 +0,0 @@ -{-# LANGUAGE ForeignFunctionInterface #-} - -module PgfLow where - -import Foreign.C -import Foreign.C.String -import Foreign.Ptr -import Gu - ------------------------------------------------------------------------------- --- Mindless copypasting and translating of the C functions used in CRuntimeFFI --- From pgf.h - - - --- PgfPGF* pgf_read(const char* fpath, GuPool* pool, GuExn* err); -foreign import ccall "pgf/pgf.h pgf_read" - pgf_read :: CString -> Ptr GuPool -> Ptr GuExn -> IO (Ptr PgfPGF) - --- GuString pgf_abstract_name(PgfPGF*); -foreign import ccall "pgf/pgf.h pgf_abstract_name" - pgf_abstract_name :: Ptr PgfPGF -> IO CString - --- void pgf_iter_languages(PgfPGF*, GuMapItor*, GuExn* err); -foreign import ccall "pgf/pgf.h pgf_iter_languages" - pgf_iter_languages :: Ptr PgfPGF -> Ptr GuMapItor -> Ptr GuExn -> IO () --- TODO test this function --- GuMapItor??? --- implement a fun in haskell, export it to c --- GuMapItor contains a pointer to a function --- Ask Koen --- foreign export - --- PgfConcr* pgf_get_language(PgfPGF*, PgfCId lang); -foreign import ccall "pgf/pgf.h pgf_get_language" - pgf_get_language :: Ptr PgfPGF -> CString -> IO (Ptr PgfConcr) - - --- GuString pgf_concrete_name(PgfConcr*); -foreign import ccall "pgf/pgf.h pgf_concrete_name" - pgf_concrete_name :: Ptr PgfConcr -> IO CString - --- GuString pgf_language_code(PgfConcr* concr); -foreign import ccall "pgf/pgf.h pgf_language_code" - pgf_language_code :: Ptr PgfConcr -> IO CString - - ---void pgf_iter_categories(PgfPGF* pgf, GuMapItor* fn, GuExn* err); -foreign import ccall "pgf/pgf.h pgf_iter_categories" - pgf_iter_categories :: Ptr PgfPGF -> Ptr GuMapItor -> Ptr GuExn -> IO () ---TODO test this function - --- PgfCId pgf_start_cat(PgfPGF* pgf, GuPool* pool); -foreign import ccall "pgf/pgf.h pgf_start_cat" - pgf_start_cat :: Ptr PgfPGF -> IO CString - --- void pgf_iter_functions(PgfPGF* pgf, GuMapItor* fn, GuExn* err); -foreign import ccall "pgf/pgf.h pgf_iter_functions" - pgf_iter_functions :: Ptr PgfPGF -> Ptr GuMapItor -> Ptr GuExn -> IO () ---TODO test this function - --- void pgf_iter_functions_by_cat(PgfPGF* pgf, PgfCId catname, --- GuMapItor* fn, GuExn* err); -foreign import ccall "pgf/pgf.h pgf_iter_functions_by_cat" - pgf_iter_functions_by_cat :: Ptr PgfPGF -> Ptr GuMapItor -> Ptr GuExn -> IO () ---TODO test this function - --- PgfType* pgf_function_type(PgfPGF* pgf, PgfCId funname); -foreign import ccall "pgf/pgf.h pgf_function_type" - pgf_function_type :: Ptr PgfPGF -> CString -> IO (Ptr PgfType) - --- GuString pgf_print_name(PgfConcr*, PgfCId id); -foreign import ccall "pgf/pgf.h pgf_print_name" - pgf_print_name :: Ptr PgfConcr -> CString -> IO CString - ---void pgf_linearize(PgfConcr* concr, PgfExpr expr, GuOut* out, GuExn* err); -foreign import ccall "pgf/pgf.h pgf_linearize" - pgf_linearize :: Ptr PgfConcr -> PgfExpr -> Ptr GuOut -> Ptr GuExn -> IO () - --- PgfExprEnum* pgf_parse(PgfConcr* concr, PgfCId cat, GuString sentence, --- GuExn* err, GuPool* pool, GuPool* out_pool); -foreign import ccall "pgf/pgf.h pgf_parse" - pgf_parse :: Ptr PgfConcr -> CString -> CString -> Ptr GuExn -> Ptr GuPool -> Ptr GuPool -> IO (Ptr PgfExprEnum) - ---void pgf_lookup_morpho(PgfConcr *concr, GuString sentence, --- PgfMorphoCallback* callback, GuExn* err); -foreign import ccall "pgf/pgf.h pgf_lookup_morpho" - pgf_lookup_morpho :: Ptr PgfConcr -> CString -> Ptr PgfMorphoCallback -> Ptr GuExn -> IO () - -type Callback = Ptr PgfMorphoCallback -> CString -> CString -> Float -> Ptr GuExn -> IO () - -foreign import ccall "wrapper" - wrapLookupMorpho :: Callback -> IO (FunPtr Callback) - -type Languages = Ptr GuMapItor -> Ptr () -> Ptr () -> Ptr GuExn -> IO () - -foreign import ccall "wrapper" - wrapLanguages :: Languages -> IO (FunPtr Languages) - ---GuEnum* pgf_fullform_lexicon(PgfConcr *concr, GuPool* pool); -foreign import ccall "pgf/pgf.h pgf_fullform_lexicon" - pgf_fullform_lexicon :: Ptr PgfConcr -> Ptr GuPool -> IO (Ptr GuEnum) - ---GuString pgf_fullform_get_string(PgfFullFormEntry* entry); -foreign import ccall "pgf/pgf.h pgf_fullform_get_string" - pgf_fullform_get_string :: Ptr PgfFullFormEntry -> IO CString - --- void pgf_fullform_get_analyses(PgfFullFormEntry* entry, --- PgfMorphoCallback* callback, GuExn* err) -foreign import ccall "pgf/pgf.h pgf_fullform_get_analyses" - pgf_fullform_get_analyses :: Ptr PgfFullFormEntry -> Ptr PgfMorphoCallback -> Ptr GuExn -> IO () - - ---PgfApplication* pgf_expr_unapply(PgfExpr expr, GuPool* pool); -foreign import ccall "pgf/pgf.h pgf_expr_unapply" - pgf_expr_unapply :: PgfExpr -> Ptr GuPool -> IO (Ptr PgfApplication) - ---int pgf_expr_arity(PgfExpr expr); -foreign import ccall "pgf/expr.h pgf_expr_arity" - pgf_expr_arity :: PgfExpr -> IO Int ---Not needed anymore, solved the problem with unapply using CInt instead of Int - - ---void pgf_print_expr(PgfExpr expr, PgfPrintContext* ctxt, int prec, --- GuOut* out, GuExn* err); -foreign import ccall "pgf/expr.h pgf_print_expr" - pgf_print_expr :: PgfExpr -> Ptr PgfPrintContext -> Int -> Ptr GuOut -> Ptr GuExn -> IO () ---PgfExprEnum* pgf_generate_all(PgfPGF* pgf, PgfCId cat, GuPool* pool); -foreign import ccall "pgf/pgf.h pgf_generate_all" - pgf_generate_all :: Ptr PgfPGF -> CString -> Ptr GuPool -> IO (Ptr PgfExprEnum) - --- void pgf_print(PgfPGF* pgf, GuOut* out, GuExn* err); -foreign import ccall "pgf/pgf.h pgf_print" - pgf_print :: Ptr PgfPGF -> Ptr GuOut -> Ptr GuExn -> IO () - ---PgfExpr pgf_read_expr(GuIn* in, GuPool* pool, GuExn* err); -foreign import ccall "pgf/expr.h pgf_read_expr" - pgf_read_expr :: Ptr GuIn -> Ptr GuPool -> Ptr GuExn -> IO PgfExpr - ---PgfExprEnum* ---pgf_parse_with_heuristics(PgfConcr* concr, PgfCId cat, PgfLexer *lexer, --- double heuristics, --- GuPool* pool, GuPool* out_pool); --- Not needed - --- GuEnum* pgf_complete(PgfConcr* concr, PgfCId cat, PgfLexer *lexer, --- GuString prefix, GuPool* pool); --- TODO - --- bool pgf_parseval(PgfConcr* concr, PgfExpr expr, PgfCId cat, --- double *precision, double *recall, double *exact); --- Not needed |
