summaryrefslogtreecommitdiff
path: root/eclipse/examples
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/examples')
-rw-r--r--eclipse/examples/functors/Foods.gf16
-rw-r--r--eclipse/examples/functors/FoodsEng.gf8
-rw-r--r--eclipse/examples/functors/FoodsGer.gf5
-rw-r--r--eclipse/examples/functors/FoodsI.gf28
-rw-r--r--eclipse/examples/functors/LexFoods.gf15
-rw-r--r--eclipse/examples/functors/LexFoodsEng.gf16
-rw-r--r--eclipse/examples/functors/LexFoodsGer.gf18
-rw-r--r--eclipse/examples/hello/AbsCat.gf5
-rw-r--r--eclipse/examples/hello/HelloAbs.gf12
-rw-r--r--eclipse/examples/hello/HelloEng.gf21
-rw-r--r--eclipse/examples/hello/ResEng.gf8
11 files changed, 152 insertions, 0 deletions
diff --git a/eclipse/examples/functors/Foods.gf b/eclipse/examples/functors/Foods.gf
new file mode 100644
index 000000000..5328473c3
--- /dev/null
+++ b/eclipse/examples/functors/Foods.gf
@@ -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 ;
+}
diff --git a/eclipse/examples/functors/FoodsEng.gf b/eclipse/examples/functors/FoodsEng.gf
new file mode 100644
index 000000000..9337b2f6e
--- /dev/null
+++ b/eclipse/examples/functors/FoodsEng.gf
@@ -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") ;
+}
diff --git a/eclipse/examples/functors/FoodsGer.gf b/eclipse/examples/functors/FoodsGer.gf
new file mode 100644
index 000000000..59e48b548
--- /dev/null
+++ b/eclipse/examples/functors/FoodsGer.gf
@@ -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) ;
diff --git a/eclipse/examples/functors/FoodsI.gf b/eclipse/examples/functors/FoodsI.gf
new file mode 100644
index 000000000..a01da068f
--- /dev/null
+++ b/eclipse/examples/functors/FoodsI.gf
@@ -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 ;
+}
diff --git a/eclipse/examples/functors/LexFoods.gf b/eclipse/examples/functors/LexFoods.gf
new file mode 100644
index 000000000..0d4ca4be4
--- /dev/null
+++ b/eclipse/examples/functors/LexFoods.gf
@@ -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 ;
+}
diff --git a/eclipse/examples/functors/LexFoodsEng.gf b/eclipse/examples/functors/LexFoodsEng.gf
new file mode 100644
index 000000000..5f4243d35
--- /dev/null
+++ b/eclipse/examples/functors/LexFoodsEng.gf
@@ -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" ;
+}
diff --git a/eclipse/examples/functors/LexFoodsGer.gf b/eclipse/examples/functors/LexFoodsGer.gf
new file mode 100644
index 000000000..7772416be
--- /dev/null
+++ b/eclipse/examples/functors/LexFoodsGer.gf
@@ -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" ;
+}
diff --git a/eclipse/examples/hello/AbsCat.gf b/eclipse/examples/hello/AbsCat.gf
new file mode 100644
index 000000000..dac5c07db
--- /dev/null
+++ b/eclipse/examples/hello/AbsCat.gf
@@ -0,0 +1,5 @@
+abstract AbsCat = {
+
+ cat Greeting ; Recipient ;
+
+};
diff --git a/eclipse/examples/hello/HelloAbs.gf b/eclipse/examples/hello/HelloAbs.gf
new file mode 100644
index 000000000..70ab490bf
--- /dev/null
+++ b/eclipse/examples/hello/HelloAbs.gf
@@ -0,0 +1,12 @@
+abstract HelloAbs = AbsCat [Greeting, Recipient] ** {
+
+ flags startcat = Greeting ;
+
+ cat Farewell ;
+
+ fun
+ Hello : Recipient -> Greeting ;
+ Goodbye : Recipient -> Farewell ;
+ World, Parent, Friends : Recipient ;
+
+}
diff --git a/eclipse/examples/hello/HelloEng.gf b/eclipse/examples/hello/HelloEng.gf
new file mode 100644
index 000000000..d67843ef0
--- /dev/null
+++ b/eclipse/examples/hello/HelloEng.gf
@@ -0,0 +1,21 @@
+concrete HelloEng of HelloAbs = ResEng ** {
+
+ lincat
+ Greeting, Farewell = {s : Str} ;
+ Recipient = {s : Gender => Str} ;
+
+ lin
+ Hello recip = {s = "hello" ++ recip.s ! Masc} ;
+ Goodbye recip = {s = "goodbye" ++ recip.s ! Fem} ;
+
+ World = {s = \\_ => "world"} ;
+ Parent = { s = table {
+ Masc => "dad" ; Fem => "mum"
+ } } ;
+ Friends = superate "friends" ;
+
+ oper
+ superate : Str -> Recipient = \s ->
+ lin Recipient { s = \\_ => "super" ++ s } ;
+
+}
diff --git a/eclipse/examples/hello/ResEng.gf b/eclipse/examples/hello/ResEng.gf
new file mode 100644
index 000000000..1ecf97a4d
--- /dev/null
+++ b/eclipse/examples/hello/ResEng.gf
@@ -0,0 +1,8 @@
+--# -path=.:../abstract:../common:../../prelude
+resource ResEng = {
+
+ param
+ OtherParam = A | B ;
+ Gender = Masc | Fem ;
+
+} ;