diff options
| author | aarne <unknown> | 2004-10-22 07:59:13 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2004-10-22 07:59:13 +0000 |
| commit | a04c40348b7a8bc6cc237f992b8abb70a87d2f7f (patch) | |
| tree | 3b3b9d9fc610b970c9080f0e1344f7865ba49570 /grammars/basic | |
| parent | 96edcf45d99896aee17664b31e4041369b972a8b (diff) | |
basic
Diffstat (limited to 'grammars/basic')
| -rw-r--r-- | grammars/basic/README | 10 | ||||
| -rw-r--r-- | grammars/basic/tut1.Abs.gf | 12 | ||||
| -rw-r--r-- | grammars/basic/tut1.Deu.gf | 32 | ||||
| -rw-r--r-- | grammars/basic/tut1.Eng.gf | 26 | ||||
| -rw-r--r-- | grammars/basic/tut1.Fin.gf | 26 | ||||
| -rw-r--r-- | grammars/basic/tut1.Fra.gf | 26 | ||||
| -rw-r--r-- | grammars/basic/tut1.Ita.gf | 26 | ||||
| -rw-r--r-- | grammars/basic/tut1.Sve.gf | 32 |
8 files changed, 190 insertions, 0 deletions
diff --git a/grammars/basic/README b/grammars/basic/README new file mode 100644 index 000000000..f4e31e22d --- /dev/null +++ b/grammars/basic/README @@ -0,0 +1,10 @@ +The naming of the grammars tut1.*.gf comes from their use in the +first GF tutorial in 1998. They still make a good starting +point to try out translating and editing. Their code is mostly +automatic translation from old-GF source. + +The grammars Basic.gf and English.gf follow the module syntax +of GF 2. The other grammars can also be used in GF 2, which +creates a module structure when compiling them. + +(AR 1998-2004) diff --git a/grammars/basic/tut1.Abs.gf b/grammars/basic/tut1.Abs.gf new file mode 100644 index 000000000..195ca3b87 --- /dev/null +++ b/grammars/basic/tut1.Abs.gf @@ -0,0 +1,12 @@ +cat +S ; NP ; A1 ; CN ; + +fun +PredA1 : NP -> A1 -> S ; +CondS : S -> S -> S ; +DisjA1 : A1 -> A1 -> A1 ; +Every : CN -> NP ; +ModA1 : CN -> A1 -> CN ; +Number : CN ; +Even : A1 ; Odd : A1 ; Prime : A1 ; +Zero : NP ; diff --git a/grammars/basic/tut1.Deu.gf b/grammars/basic/tut1.Deu.gf new file mode 100644 index 000000000..f060cfb37 --- /dev/null +++ b/grammars/basic/tut1.Deu.gf @@ -0,0 +1,32 @@ +include tut1.Abs.gf ; + +param Ord = dir | indir | sub ; +lincat S = {s : Ord => Str} ; +lincat NP = {s : Str} ; +lincat A1 = {s : Str} ; +lincat CN = {s : Str} ; +lin PredA1 Q F = {s = table { + {dir} => Q.s ++ "ist" ++ F.s ; + {indir} => "ist" ++ Q.s ++ F.s ; + {sub} => Q.s ++ F.s ++ "ist"}} ; +lin CondS A B = {s = table { + {dir} => "wenn" ++ (A.s ! sub) ++ "dann" ++ B.s ! indir ; + {indir} => (B.s ! indir) ++ "wenn" ++ A.s ! sub ; + {sub} => (B.s ! sub) ++ "wenn" ++ A.s ! sub}} ; +lin DisjA1 F G = + {s = F.s ++ "oder" ++ G.s} ; +lin Every A = + {s = "jede" ++ A.s} ; +lin ModA1 A F = + {s = F.s ++ A.s} ; +lin Number = + {s = "Zahl"} ; +lin Even = + {s = "gerade"} ; +lin Odd = + {s = "ungerade"} ; +lin Prime = + {s = "unteilbar"} ; +lin Zero = + {s = "Null"} ; + diff --git a/grammars/basic/tut1.Eng.gf b/grammars/basic/tut1.Eng.gf new file mode 100644 index 000000000..f9481a8e0 --- /dev/null +++ b/grammars/basic/tut1.Eng.gf @@ -0,0 +1,26 @@ +include tut1.Abs.gf ; + +lincat +S = {s : Str} ; NP = {s : Str} ; A1 = {s : Str} ; CN = {s : Str} ; + +lin PredA1 Q F = + {s = Q.s ++ "is" ++ F.s} ; +lin CondS A B = + {s = "if" ++ A.s ++ "then" ++ B.s} ; +lin DisjA1 F G = + {s = F.s ++ "or" ++ G.s} ; +lin Every A = + {s = "every" ++ A.s} ; +lin ModA1 A F = + {s = F.s ++ A.s} ; +lin Number = + {s = "number"} ; +lin Even = + {s = "even"} ; +lin Odd = + {s = "odd"} ; +lin Prime = + {s = "prime"} ; +lin Zero = + {s = "zero"} ; + diff --git a/grammars/basic/tut1.Fin.gf b/grammars/basic/tut1.Fin.gf new file mode 100644 index 000000000..1aa20ea3b --- /dev/null +++ b/grammars/basic/tut1.Fin.gf @@ -0,0 +1,26 @@ +include tut1.Abs.gf ; + +lincat S = {s : Str} ; +lincat NP = {s : Str} ; +lincat A1 = {s : Str} ; +lincat CN = {s : Str} ; +lin PredA1 Q F = + {s = Q.s ++ "on" ++ F.s} ; +lin CondS A B = + {s = "jos" ++ A.s ++ "niin" ++ B.s} ; +lin DisjA1 F G = + {s = F.s ++ "tai" ++ G.s} ; +lin Every A = + {s = A.s ++ "kuin" ++ A.s} ; +lin ModA1 A F = + {s = F.s ++ A.s} ; +lin Number = + {s = "luku"} ; +lin Even = + {s = "parillinen"} ; +lin Odd = + {s = "pariton"} ; +lin Prime = + {s = "jaoton"} ; +lin Zero = + {s = "nolla"} ; diff --git a/grammars/basic/tut1.Fra.gf b/grammars/basic/tut1.Fra.gf new file mode 100644 index 000000000..04bd309c6 --- /dev/null +++ b/grammars/basic/tut1.Fra.gf @@ -0,0 +1,26 @@ +include tut1.Abs.gf ; + +lincat S = {s : Str} ; +lincat NP = {s : Str} ; +lincat A1 = {s : Str} ; +lincat CN = {s : Str} ; +lin PredA1 Q F = + {s = Q.s ++ "est" ++ F.s} ; +lin CondS A B = + {s = "si" ++ A.s ++ "alors" ++ B.s} ; +lin DisjA1 F G = + {s = F.s ++ "ou" ++ G.s} ; +lin Every A = + {s = "tout" ++ A.s} ; +lin ModA1 A F = + {s = A.s ++ F.s} ; +lin Number = + {s = "nombre"} ; +lin Even = + {s = "pair"} ; +lin Odd = + {s = "impair"} ; +lin Prime = + {s = "premier"} ; +lin Zero = + {s = "zéro"} ; diff --git a/grammars/basic/tut1.Ita.gf b/grammars/basic/tut1.Ita.gf new file mode 100644 index 000000000..85542d5fa --- /dev/null +++ b/grammars/basic/tut1.Ita.gf @@ -0,0 +1,26 @@ +include tut1.Abs.gf ; + +lincat S = {s : Str} ; +lincat NP = {s : Str} ; +lincat A1 = {s : Str} ; +lincat CN = {s : Str} ; +lin PredA1 Q F = + {s = Q.s ++ "è" ++ F.s} ; +lin CondS A B = + {s = "se" ++ A.s ++ "allora" ++ B.s} ; +lin DisjA1 F G = + {s = F.s ++ "o" ++ G.s} ; +lin Every A = + {s = "ogni" ++ A.s} ; +lin ModA1 A F = + {s = A.s ++ F.s} ; +lin Number = + {s = "numero"} ; +lin Even = + {s = "pari"} ; +lin Odd = + {s = "dispari"} ; +lin Prime = + {s = "primo"} ; +lin Zero = + {s = "zero"} ; diff --git a/grammars/basic/tut1.Sve.gf b/grammars/basic/tut1.Sve.gf new file mode 100644 index 000000000..1bf610ecc --- /dev/null +++ b/grammars/basic/tut1.Sve.gf @@ -0,0 +1,32 @@ +include tut1.Abs.gf ; + +param Ord = dir | indir | sub ; +lincat S = {s : Ord => Str} ; +lincat NP = {s : Str} ; +lincat A1 = {s : Str} ; +lincat CN = {s : Str} ; +lin PredA1 Q F = {s = table { + dir => Q.s ++ "är" ++ F.s ; + indir => "är" ++ Q.s ++ F.s ; + sub => Q.s ++ "är" ++ F.s}} ; +lin CondS A B = {s = table { + dir => "om" ++ A.s ! sub ++ "så" ++ B.s ! indir ; + indir => B.s ! indir ++ "om" ++ A.s ! sub ; + sub => B.s ! sub ++ "om" ++ A.s ! sub}} ; +lin DisjA1 F G = + {s = F.s ++ "eller" ++ G.s} ; +lin Every A = + {s = "varje" ++ A.s} ; +lin ModA1 A F = + {s = F.s ++ A.s} ; +lin Number = + {s = "tal"} ; +lin Even = + {s = "jämnt"} ; +lin Odd = + {s = "udda"} ; +lin Prime = + {s = "primt"} ; +lin Zero = + {s = "noll"} ; + |
