From a04c40348b7a8bc6cc237f992b8abb70a87d2f7f Mon Sep 17 00:00:00 2001 From: aarne Date: Fri, 22 Oct 2004 07:59:13 +0000 Subject: [PATCH] basic --- grammars/basic/README | 10 ++++ grammars/basic/tut1.Abs.gf | 12 ++++ grammars/basic/tut1.Deu.gf | 32 +++++++++++ grammars/basic/tut1.Eng.gf | 26 +++++++++ grammars/basic/tut1.Fin.gf | 26 +++++++++ grammars/basic/tut1.Fra.gf | 26 +++++++++ grammars/basic/tut1.Ita.gf | 26 +++++++++ grammars/basic/tut1.Sve.gf | 32 +++++++++++ grammars/mkDistr.sh | 111 +++++++++++++++++++------------------ 9 files changed, 248 insertions(+), 53 deletions(-) create mode 100644 grammars/basic/README create mode 100644 grammars/basic/tut1.Abs.gf create mode 100644 grammars/basic/tut1.Deu.gf create mode 100644 grammars/basic/tut1.Eng.gf create mode 100644 grammars/basic/tut1.Fin.gf create mode 100644 grammars/basic/tut1.Fra.gf create mode 100644 grammars/basic/tut1.Ita.gf create mode 100644 grammars/basic/tut1.Sve.gf 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"} ; + diff --git a/grammars/mkDistr.sh b/grammars/mkDistr.sh index c88140148..6ccea2f9b 100644 --- a/grammars/mkDistr.sh +++ b/grammars/mkDistr.sh @@ -1,62 +1,67 @@ -rm -rf gf-grammars -mkdir -pv gf-grammars -mkdir -pv gf-grammars/letter -# mkdir -pv gf-grammars/logic -mkdir -pv gf-grammars/numerals -mkdir -pv gf-grammars/prelude -mkdir -pv gf-grammars/resource -mkdir -pv gf-grammars/resource/abstract -mkdir -pv gf-grammars/resource/english -mkdir -pv gf-grammars/resource/finnish -mkdir -pv gf-grammars/resource/french -mkdir -pv gf-grammars/resource/german -mkdir -pv gf-grammars/resource/italian -mkdir -pv gf-grammars/resource/romance -mkdir -pv gf-grammars/resource/russian -mkdir -pv gf-grammars/resource/swedish -mkdir -pv gf-grammars/database -mkdir -pv gf-grammars/imperative -mkdir -pv gf-grammars/imperative/compiler +rm -rf grammars +mkdir -pv grammars +mkdir -pv grammars/letter +# mkdir -pv grammars/logic +mkdir -pv grammars/basic +mkdir -pv grammars/numerals +mkdir -pv grammars/prelude +mkdir -pv grammars/resource +mkdir -pv grammars/resource/abstract +mkdir -pv grammars/resource/english +mkdir -pv grammars/resource/finnish +mkdir -pv grammars/resource/french +mkdir -pv grammars/resource/german +mkdir -pv grammars/resource/italian +mkdir -pv grammars/resource/romance +mkdir -pv grammars/resource/russian +mkdir -pv grammars/resource/swedish +mkdir -pv grammars/database +mkdir -pv grammars/imperative +mkdir -pv grammars/imperative/compiler -cp -pv letter/README gf-grammars/letter/ -cp -pv letter/mkLetter.gfs gf-grammars/letter/ -cp -pv letter/*.gf gf-grammars/letter/ +cp -pv letter/README grammars/letter/ +cp -pv letter/mkLetter.gfs grammars/letter/ +cp -pv letter/*.gf grammars/letter/ -# cp -pv logic/*.gf gf-grammars/logic/ +# cp -pv logic/*.gf grammars/logic/ -cp -pv newnumerals/README gf-grammars/numerals/ -cp -pv newnumerals/*.gf gf-grammars/numerals/ -cp -pv newnumerals/mkNumerals.gfs gf-grammars/numerals/ +cp -pv newnumerals/README grammars/numerals/ +cp -pv newnumerals/*.gf grammars/numerals/ +cp -pv newnumerals/mkNumerals.gfs grammars/numerals/ -cp -pv prelude/README gf-grammars/prelude/ -cp -pv prelude/*.gf gf-grammars/prelude/ +cp -pv basic/README grammars/basic/ +cp -pv basic/*.gf grammars/basic/ -cp -pv newresource/mkTest.gfs gf-grammars/resource/ -cp -pv newresource/mkParadigms.gfs gf-grammars/resource/ -cp -pv newresource/README gf-grammars/resource/ -cp -pv newresource/abstract/*.gf gf-grammars/resource/abstract/ -cp -pv newresource/english/*.gf gf-grammars/resource/english/ -rm -f gf-grammars/resource/english/ResLex* -cp -pv newresource/finnish/*.gf gf-grammars/resource/finnish/ -cp -pv newresource/french/*.gf gf-grammars/resource/french/ -cp -pv newresource/german/*.gf gf-grammars/resource/german/ -cp -pv newresource/italian/*.gf gf-grammars/resource/italian/ -cp -pv newresource/romance/*.gf gf-grammars/resource/romance/ -cp -pv newresource/russian/*.gf gf-grammars/resource/russian/ -cp -pv newresource/swedish/*.gf gf-grammars/resource/swedish/ +cp -pv prelude/README grammars/prelude/ +cp -pv prelude/*.gf grammars/prelude/ -cp -pv database/README gf-grammars/database/ -cp -pv database/*.gf gf-grammars/database/ +cp -pv newresource/mkTest.gfs grammars/resource/ +cp -pv newresource/mkParadigms.gfs grammars/resource/ +cp -pv newresource/README grammars/resource/ +cp -pv newresource/abstract/*.gf grammars/resource/abstract/ +cp -pv newresource/english/*.gf grammars/resource/english/ +rm -f grammars/resource/english/ResLex* +cp -pv newresource/finnish/*.gf grammars/resource/finnish/ +cp -pv newresource/french/*.gf grammars/resource/french/ +cp -pv newresource/german/*.gf grammars/resource/german/ +cp -pv newresource/italian/*.gf grammars/resource/italian/ +cp -pv newresource/romance/*.gf grammars/resource/romance/ +cp -pv newresource/russian/*.gf grammars/resource/russian/ +cp -pv newresource/swedish/*.gf grammars/resource/swedish/ -cp -pv imperative/*.gf gf-grammars/imperative/ -cp -pv imperative/compiler/*.hs gf-grammars/imperative/compiler/ -cp -pv imperative/compiler/README gf-grammars/imperative/compiler/ -cp -pv imperative/compiler/FILES gf-grammars/imperative/compiler/ -cp -pv imperative/compiler/gfcc gf-grammars/imperative/compiler/ -cp -pv imperative/compiler/makefile gf-grammars/imperative/compiler/ -cp -pv imperative/compiler/*.c gf-grammars/imperative/compiler/ -cp -pv imperative/compiler/*.gfs gf-grammars/imperative/compiler/ -cp -pv imperative/compiler/runtime.j gf-grammars/imperative/compiler/ +cp -pv database/README grammars/database/ +cp -pv database/*.gf grammars/database/ + +cp -pv imperative/*.gf grammars/imperative/ +cp -pv imperative/compiler/*.hs grammars/imperative/compiler/ +cp -pv imperative/compiler/README grammars/imperative/compiler/ +cp -pv imperative/compiler/FILES grammars/imperative/compiler/ +cp -pv imperative/compiler/gfcc grammars/imperative/compiler/ +cp -pv imperative/compiler/makefile grammars/imperative/compiler/ +cp -pv imperative/compiler/*.c grammars/imperative/compiler/ +cp -pv imperative/compiler/*.gfs grammars/imperative/compiler/ +cp -pv imperative/compiler/runtime.j grammars/imperative/compiler/ -tar cvfz gf-grammars.tgz gf-grammars +tar cvfz grammars.tgz grammars +