summaryrefslogtreecommitdiff
path: root/examples/regulus/Toy0Eng.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/Toy0Eng.gf
parentfb730a75b5366a0ae6debc5393e5b78d347e0216 (diff)
started regulus grammar implementation
Diffstat (limited to 'examples/regulus/Toy0Eng.gf')
-rw-r--r--examples/regulus/Toy0Eng.gf28
1 files changed, 28 insertions, 0 deletions
diff --git a/examples/regulus/Toy0Eng.gf b/examples/regulus/Toy0Eng.gf
new file mode 100644
index 000000000..68e2e4c07
--- /dev/null
+++ b/examples/regulus/Toy0Eng.gf
@@ -0,0 +1,28 @@
+concrete Toy0Eng of Toy0 = {
+
+param
+ Number = Sg | Pl ;
+
+lincat
+ Spec = {s : Str ; n : Number} ;
+ Noun = {s : Number => Str} ;
+ MAIN,NP = {s : Str} ;
+
+lin
+ Main np = np ;
+ SpecNoun spec noun = {s = spec.s ++ noun.s ! spec.n} ;
+
+ One = {s = "one" ; n = Sg} ;
+ Two = {s = "two" ; n = Pl} ;
+
+ Felis = regNoun "cat" ;
+ Canis = regNoun "dog" ;
+
+oper
+ regNoun : Str -> {s : Number => Str} = \s -> {
+ s = table {
+ Sg => s ;
+ Pl => s + "s"
+ }
+ } ;
+}