forked from GitHub/gf-core
PGF2
This is a Haskell binding to the PGF runtime in C.
The exposed modules are:
PGF2: a user API similar to Python and Java APIsPGF2.Internal: an internal module with FFI definitions for the relevant C functions
How to compile
cabal install
Note: you must have the PGF C runtime already installed and available. See https://github.com/GrammaticalFramework/gf-core/blob/master/src/runtime/c/INSTALL
How to use
Import PGF to the Haskell program that you're writing. The Cabal infrastructure will make sure to tell the compiler where to find the relevant modules.
Example
module Main where
import PGF2
import qualified Data.Map as Map
main = do
pgf <- readPGF "App12.pgf"
let Just eng = Map.lookup "AppEng" (languages pgf)
-- Parsing
let res = parse eng (startCat pgf) "this is a small theatre"
let ParseOk ((tree,prob):rest) = res
print tree
-- Linearisation
let Just expr = readExpr "AdjCN (PositA red_A) (UseN theatre_N)"
let s = linearize eng expr
print s