forked from GitHub/gf-core
GFEP: updated examples
This commit is contained in:
16
eclipse/examples/foods/Foods.gf
Normal file
16
eclipse/examples/foods/Foods.gf
Normal file
@@ -0,0 +1,16 @@
|
||||
-- Abstract Syntax
|
||||
abstract Foods = {
|
||||
|
||||
flags startcat = Phrase ;
|
||||
|
||||
cat
|
||||
Phrase ; Item ; Kind ; Quality ;
|
||||
|
||||
fun
|
||||
Is : Item -> Quality -> Phrase ;
|
||||
This, That, These, Those : Kind -> Item ;
|
||||
QKind : Quality -> Kind -> Kind ;
|
||||
Wine, Cheese, Fish, Pizza : Kind ;
|
||||
Very : Quality -> Quality ;
|
||||
Fresh, Warm, Italian, Expensive, Delicious, Boring : Quality ;
|
||||
}
|
||||
8
eclipse/examples/foods/FoodsEng.gf
Normal file
8
eclipse/examples/foods/FoodsEng.gf
Normal file
@@ -0,0 +1,8 @@
|
||||
-- Functor Instantiation
|
||||
--# -path=.:/home/john/.cabal/share/gf-3.2.9/lib/present
|
||||
concrete FoodsEng of Foods = FoodsI - [Pizza] with
|
||||
(Syntax = SyntaxEng),
|
||||
(LexFoods = LexFoodsEng) **
|
||||
open SyntaxEng, ParadigmsEng in {
|
||||
lin Pizza = mkCN (mkA "Italian") (mkN "pie") ;
|
||||
}
|
||||
5
eclipse/examples/foods/FoodsGer.gf
Normal file
5
eclipse/examples/foods/FoodsGer.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
-- Functor Instantiation
|
||||
--# -path=.:/home/john/.cabal/share/gf-3.2.9/lib/present
|
||||
concrete FoodsGer of Foods = FoodsI with
|
||||
(Syntax = SyntaxGer),
|
||||
(LexFoods = LexFoodsGer) ;
|
||||
28
eclipse/examples/foods/FoodsI.gf
Normal file
28
eclipse/examples/foods/FoodsI.gf
Normal file
@@ -0,0 +1,28 @@
|
||||
-- Functor
|
||||
-- (a module that opens one or more interfaces)
|
||||
incomplete concrete FoodsI of Foods = open Syntax, LexFoods in {
|
||||
lincat
|
||||
Phrase = Cl ;
|
||||
Item = NP ;
|
||||
Kind = CN ;
|
||||
Quality = AP ;
|
||||
lin
|
||||
Is item quality = mkCl item quality ;
|
||||
This kind = mkNP this_Det kind ;
|
||||
That kind = mkNP that_Det kind ;
|
||||
These kind = mkNP these_Det kind ;
|
||||
Those kind = mkNP those_Det kind ;
|
||||
QKind quality kind = mkCN quality kind ;
|
||||
Very quality = mkAP very_AdA quality ;
|
||||
|
||||
Wine = mkCN wine_N ;
|
||||
Pizza = mkCN pizza_N ;
|
||||
Cheese = mkCN cheese_N ;
|
||||
Fish = mkCN fish_N ;
|
||||
Fresh = mkAP fresh_A ;
|
||||
Warm = mkAP warm_A ;
|
||||
Italian = mkAP italian_A ;
|
||||
Expensive = mkAP expensive_A ;
|
||||
Delicious = mkAP delicious_A ;
|
||||
Boring = mkAP boring_A ;
|
||||
}
|
||||
15
eclipse/examples/foods/LexFoods.gf
Normal file
15
eclipse/examples/foods/LexFoods.gf
Normal file
@@ -0,0 +1,15 @@
|
||||
-- Lexicon Interface
|
||||
-- (a resource which contains only oper TYPES)
|
||||
interface LexFoods = open Syntax in {
|
||||
oper
|
||||
wine_N : N ;
|
||||
pizza_N : N ;
|
||||
cheese_N : N ;
|
||||
fish_N : N ;
|
||||
fresh_A : A ;
|
||||
warm_A : A ;
|
||||
italian_A : A ;
|
||||
expensive_A : A ;
|
||||
delicious_A : A ;
|
||||
boring_A : A ;
|
||||
}
|
||||
16
eclipse/examples/foods/LexFoodsEng.gf
Normal file
16
eclipse/examples/foods/LexFoodsEng.gf
Normal file
@@ -0,0 +1,16 @@
|
||||
-- Lexicon Instance
|
||||
instance LexFoodsEng of LexFoods = open SyntaxEng, ParadigmsEng in {
|
||||
flags
|
||||
coding=utf8 ;
|
||||
oper
|
||||
wine_N = mkN "wine" ;
|
||||
pizza_N = mkN "pizza" ;
|
||||
cheese_N = mkN "cheese" ;
|
||||
fish_N = mkN "fish" ;
|
||||
fresh_A = mkA "fresh" ;
|
||||
warm_A = mkA "warm" ;
|
||||
italian_A = mkA "Italian" ;
|
||||
expensive_A = mkA "expensive" ;
|
||||
delicious_A = mkA "delicious" ;
|
||||
boring_A = mkA "boring" ;
|
||||
}
|
||||
18
eclipse/examples/foods/LexFoodsGer.gf
Normal file
18
eclipse/examples/foods/LexFoodsGer.gf
Normal file
@@ -0,0 +1,18 @@
|
||||
-- Lexicon Instance
|
||||
instance LexFoodsGer of LexFoods = open SyntaxGer, ParadigmsGer in {
|
||||
flags
|
||||
coding=utf8 ;
|
||||
oper
|
||||
wine_N = mkN "Wein" ;
|
||||
pizza_N = mkN "Pizza" "Pizzen" feminine ;
|
||||
cheese_N = mkN "Käse" "Käsen" masculine ;
|
||||
fish_N = mkN "Fisch" ;
|
||||
fresh_A = mkA "frisch" ;
|
||||
warm_A = mkA "warm" "wärmer" "wärmste" ;
|
||||
italian_A = mkA "italienisch" ;
|
||||
expensive_A = mkA "teuer" ;
|
||||
delicious_A = mkA "köstlich" ;
|
||||
boring_A = mkA "langweilig" ;
|
||||
|
||||
testy_A = mkA "testy" ;
|
||||
}
|
||||
Reference in New Issue
Block a user