mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
f56fbcf86e472262d07c6bd713f6955cfbcfee8a
The GF shell no longer has `put_tree -typecheck` option, and typechecking is done automatically when parsing. The metavariable thing is a bit unclear: you don't get it when parsing "dim the light", or "switch on the fan, but you do get it when you `gt` after adding `switchOn` and `switchOff`. ``` > p "switch on the fan" CAction fan (switchOff fan) (DKindOne fan) > gt CAction light dim (DKindOne light) CAction ?3 (switchOff ?3) (DKindOne ?3) CAction ?3 (switchOn ?3) (DKindOne ?3) ``` My hypothesis is that you don't get metavariable when parsing e.g. "dim the light", because even though `light` is suppressed in `CAction`, it still appears in `DKindOne`, so it gets to contribute to the whole tree with its string.
Grammatical Framework (GF)
The Grammatical Framework is a grammar formalism based on type theory. It consists of:
- a special-purpose programming language
- a compiler of the language
- a generic grammar processor
The compiler reads GF grammars from user-provided files, and the generic grammar processor performs various tasks with the grammars:
- generation
- parsing
- translation
- type checking
- computation
- paraphrasing
- random generation
- syntax editing
GF particularly addresses four aspects of grammars:
- multilinguality (parallel grammars for different languages)
- semantics (semantic conditions of well-formedness, semantic properties of expressions)
- grammar engineering (modularity, abstractions, libraries)
- embeddability in programs written in other languages (C, C++, Haskell, Java, JavaScript)
Compilation and installation
The simplest way of installing GF is with the command:
cabal install
For more details, see the download page and developers manual.
About this repository
On 2018-07-25, the monolithic GF repository was split in two:
The former repository is now archived and no longer updated. The split was performed using this script and the output of that script is here.
Description
Languages
Haskell
45%
C
32.9%
JavaScript
10.1%
HTML
3.3%
Grammatical Framework
2.8%
Other
5.8%