diff options
| author | aarne <aarne@cs.chalmers.se> | 2007-06-10 19:55:45 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2007-06-10 19:55:45 +0000 |
| commit | 0f3d06022ee38e9301c4f1796b38c1f220d16e95 (patch) | |
| tree | 1f251f5920cab71ebc0cd876c9e67b51ed7ecf92 /examples/regulus/Toy0Fre.gf | |
| parent | fb730a75b5366a0ae6debc5393e5b78d347e0216 (diff) | |
started regulus grammar implementation
Diffstat (limited to 'examples/regulus/Toy0Fre.gf')
| -rw-r--r-- | examples/regulus/Toy0Fre.gf | 30 |
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 + } ; +} |
