mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-29 22:42:52 -06:00
(pgf2) Readme, license, changelog
This commit is contained in:
46
src/runtime/haskell-bind/README.md
Normal file
46
src/runtime/haskell-bind/README.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# 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 <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
|
||||
|
||||
```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
|
||||
```
|
||||
Reference in New Issue
Block a user