summaryrefslogtreecommitdiff
path: root/examples/regulus/Toy0Fre.gf
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2007-06-10 19:55:45 +0000
committeraarne <aarne@cs.chalmers.se>2007-06-10 19:55:45 +0000
commit0f3d06022ee38e9301c4f1796b38c1f220d16e95 (patch)
tree1f251f5920cab71ebc0cd876c9e67b51ed7ecf92 /examples/regulus/Toy0Fre.gf
parentfb730a75b5366a0ae6debc5393e5b78d347e0216 (diff)
started regulus grammar implementation
Diffstat (limited to 'examples/regulus/Toy0Fre.gf')
-rw-r--r--examples/regulus/Toy0Fre.gf30
1 files changed, 30 insertions, 0 deletions
diff --git a/examples/regulus/Toy0Fre.gf b/examples/regulus/Toy0Fre.gf
new file mode 100644
index 000000000..425c85af0
--- /dev/null
+++ b/examples/regulus/Toy0Fre.gf
@@ -0,0 +1,30 @@
+concrete Toy0Fre of Toy0 = {
+
+param
+ Number = Sg | Pl ;
+ Gender = Masc | Fem ;
+
+lincat
+ Spec = {s : Gender => Str ; n : Number} ;
+ Noun = {s : Number => Str ; g : Gender} ;
+ MAIN,NP = {s : Str} ;
+
+lin
+ Main np = np ;
+ SpecNoun spec noun = {s = spec.s ! noun.g ++ noun.s ! spec.n} ;
+
+ One = {s = table {Fem => "une" ; _ => "un"} ; n = Sg} ;
+ Two = {s = \\_ => "deux" ; n = Pl} ;
+
+ Felis = mkNoun "chat" Masc ;
+ Canis = mkNoun "chien" Masc ;
+
+oper
+ mkNoun : Str -> Gender -> {s : Number => Str ; g : Gender} = \s,g -> {
+ s = table {
+ Sg => s ;
+ Pl => s + "s"
+ } ;
+ g = g
+ } ;
+}