# 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 APIs - `PGF2.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 ## 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 ```haskell 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 ```