diff --git a/next-resource/api/Combinators.gf b/next-resource/api/Combinators.gf index 5f90335a..23426df0 100644 --- a/next-resource/api/Combinators.gf +++ b/next-resource/api/Combinators.gf @@ -34,7 +34,11 @@ incomplete resource Combinators = open Grammar in { app : N2 -> NP -> NP ; app : N3 -> NP -> NP -> NP ; app : N2 -> NP -> NP -> NP ; - app : N2 -> N -> CN + app : N2 -> N -> CN ; + + app : N2 -> NP -> CN ; -- divisor of x + app : N3 -> NP -> NP -> CN ; -- path from x to y + app : N2 -> NP -> NP -> CN ; -- path between x and y } ; --2 Coordination @@ -126,7 +130,12 @@ incomplete resource Combinators = open Grammar in { app : N2 -> NP -> NP -> NP = \n,x,y -> (DetArtSg DefArt (ComplN2 n (ConjNP and_Conj (BaseNP x y)))) ; app : N2 -> N -> CN - = \f,n -> ComplN2 f (DetArtPl (IndefArt) (UseN n)) + = \f,n -> ComplN2 f (DetArtPl (IndefArt) (UseN n)) ; + + app : N2 -> NP -> CN = ComplN2 ; + app : N3 -> NP -> NP -> CN = \n,x,y -> ComplN2 (ComplN3 n x) y ; + app : N2 -> NP -> NP -> CN = \n,x,y -> + ComplN2 n (ConjNP and_Conj (BaseNP x y)) ; } ; coord = overload { diff --git a/next-resource/api/CombinatorsAra.gf b/next-resource/api/CombinatorsAra.gf new file mode 100644 index 00000000..707b6be7 --- /dev/null +++ b/next-resource/api/CombinatorsAra.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsAra = Combinators with (Grammar = GrammarAra) ; diff --git a/next-resource/api/CombinatorsBul.gf b/next-resource/api/CombinatorsBul.gf new file mode 100644 index 00000000..882a7c87 --- /dev/null +++ b/next-resource/api/CombinatorsBul.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsBul = Combinators with (Grammar = GrammarBul) ; diff --git a/next-resource/api/CombinatorsCat.gf b/next-resource/api/CombinatorsCat.gf new file mode 100644 index 00000000..af78ebfd --- /dev/null +++ b/next-resource/api/CombinatorsCat.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsCat = Combinators with (Grammar = GrammarCat) ; diff --git a/next-resource/api/CombinatorsDan.gf b/next-resource/api/CombinatorsDan.gf new file mode 100644 index 00000000..dff911eb --- /dev/null +++ b/next-resource/api/CombinatorsDan.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsDan = Combinators with (Grammar = GrammarDan) ; diff --git a/next-resource/api/CombinatorsFin.gf b/next-resource/api/CombinatorsFin.gf new file mode 100644 index 00000000..e5da9640 --- /dev/null +++ b/next-resource/api/CombinatorsFin.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsFin = Combinators with (Grammar = GrammarFin) ; diff --git a/next-resource/api/CombinatorsFre.gf b/next-resource/api/CombinatorsFre.gf new file mode 100644 index 00000000..48d2166e --- /dev/null +++ b/next-resource/api/CombinatorsFre.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsFre = Combinators with (Grammar = GrammarFre) ; diff --git a/next-resource/api/CombinatorsGer.gf b/next-resource/api/CombinatorsGer.gf new file mode 100644 index 00000000..e209fa13 --- /dev/null +++ b/next-resource/api/CombinatorsGer.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsGer = Combinators with (Grammar = GrammarGer) ; diff --git a/next-resource/api/CombinatorsHin.gf b/next-resource/api/CombinatorsHin.gf new file mode 100644 index 00000000..e75f470c --- /dev/null +++ b/next-resource/api/CombinatorsHin.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsHin = Combinators with (Grammar = GrammarHin) ; diff --git a/next-resource/api/CombinatorsIna.gf b/next-resource/api/CombinatorsIna.gf new file mode 100644 index 00000000..43db76ef --- /dev/null +++ b/next-resource/api/CombinatorsIna.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsIna = Combinators with (Grammar = GrammarIna) ; diff --git a/next-resource/api/CombinatorsIta.gf b/next-resource/api/CombinatorsIta.gf new file mode 100644 index 00000000..40c8ec88 --- /dev/null +++ b/next-resource/api/CombinatorsIta.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsIta = Combinators with (Grammar = GrammarIta) ; diff --git a/next-resource/api/CombinatorsNor.gf b/next-resource/api/CombinatorsNor.gf new file mode 100644 index 00000000..780c88ab --- /dev/null +++ b/next-resource/api/CombinatorsNor.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsNor = Combinators with (Grammar = GrammarNor) ; diff --git a/next-resource/api/CombinatorsRus.gf b/next-resource/api/CombinatorsRus.gf new file mode 100644 index 00000000..b99b5555 --- /dev/null +++ b/next-resource/api/CombinatorsRus.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsRus = Combinators with (Grammar = GrammarRus) ; diff --git a/next-resource/api/CombinatorsSpa.gf b/next-resource/api/CombinatorsSpa.gf new file mode 100644 index 00000000..43b881b5 --- /dev/null +++ b/next-resource/api/CombinatorsSpa.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsSpa = Combinators with (Grammar = GrammarSpa) ; diff --git a/next-resource/api/CombinatorsSwe.gf b/next-resource/api/CombinatorsSwe.gf new file mode 100644 index 00000000..c3b9a035 --- /dev/null +++ b/next-resource/api/CombinatorsSwe.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsSwe = Combinators with (Grammar = GrammarSwe) ; diff --git a/next-resource/api/CombinatorsTha.gf b/next-resource/api/CombinatorsTha.gf new file mode 100644 index 00000000..5c77348b --- /dev/null +++ b/next-resource/api/CombinatorsTha.gf @@ -0,0 +1,3 @@ +--# -path=.:alltenses:prelude + +resource CombinatorsTha = Combinators with (Grammar = GrammarTha) ; diff --git a/next-resource/api/Syntax.gf b/next-resource/api/Syntax.gf index 0350a978..1302e639 100644 --- a/next-resource/api/Syntax.gf +++ b/next-resource/api/Syntax.gf @@ -1,4 +1,4 @@ --# -path=.:alltenses:prelude -interface Syntax = Constructors, Cat, Structural, Numeral ; +interface Syntax = Constructors, Cat, Structural, Combinators ; diff --git a/next-resource/api/SyntaxBul.gf b/next-resource/api/SyntaxBul.gf index 03e9dff6..ff11f688 100644 --- a/next-resource/api/SyntaxBul.gf +++ b/next-resource/api/SyntaxBul.gf @@ -1,4 +1,4 @@ --# -path=.:alltenses:prelude -instance SyntaxBul of Syntax = ConstructorsBul, CatBul, StructuralBul, NumeralBul ; +instance SyntaxBul of Syntax = ConstructorsBul, CatBul, StructuralBul, CombinatorsBul ; diff --git a/next-resource/api/SyntaxCat.gf b/next-resource/api/SyntaxCat.gf index a1872680..73ff4829 100644 --- a/next-resource/api/SyntaxCat.gf +++ b/next-resource/api/SyntaxCat.gf @@ -1,4 +1,4 @@ --# -path=.:alltenses:prelude -instance SyntaxCat of Syntax = ConstructorsCat, CatCat, StructuralCat, NumeralCat ; +instance SyntaxCat of Syntax = ConstructorsCat, CatCat, StructuralCat, CombinatorsCat ; diff --git a/next-resource/api/SyntaxDan.gf b/next-resource/api/SyntaxDan.gf index 43430ce0..83d07d82 100644 --- a/next-resource/api/SyntaxDan.gf +++ b/next-resource/api/SyntaxDan.gf @@ -1,4 +1,4 @@ --# -path=.:alltenses:prelude -instance SyntaxDan of Syntax = ConstructorsDan, CatDan, StructuralDan, NumeralDan ; +instance SyntaxDan of Syntax = ConstructorsDan, CatDan, StructuralDan, CombinatorsDan ; diff --git a/next-resource/api/SyntaxEng.gf b/next-resource/api/SyntaxEng.gf index 0ee6e55b..940ee057 100644 --- a/next-resource/api/SyntaxEng.gf +++ b/next-resource/api/SyntaxEng.gf @@ -1,4 +1,5 @@ --# -path=.:alltenses:prelude -instance SyntaxEng of Syntax = ConstructorsEng, CatEng, StructuralEng, NumeralEng ; +instance SyntaxEng of Syntax = + ConstructorsEng, CatEng, StructuralEng, CombinatorsEng ; diff --git a/next-resource/api/SyntaxFin.gf b/next-resource/api/SyntaxFin.gf index eef68d09..300c5617 100644 --- a/next-resource/api/SyntaxFin.gf +++ b/next-resource/api/SyntaxFin.gf @@ -1,4 +1,4 @@ --# -path=.:alltenses:prelude -instance SyntaxFin of Syntax = ConstructorsFin, CatFin, StructuralFin, NumeralFin ; +instance SyntaxFin of Syntax = ConstructorsFin, CatFin, StructuralFin, CombinatorsFin ; diff --git a/next-resource/api/SyntaxFre.gf b/next-resource/api/SyntaxFre.gf index 52fd7435..8f5ffa20 100644 --- a/next-resource/api/SyntaxFre.gf +++ b/next-resource/api/SyntaxFre.gf @@ -1,4 +1,4 @@ --# -path=.:alltenses:prelude -instance SyntaxFre of Syntax = ConstructorsFre, CatFre, StructuralFre, NumeralFre ; +instance SyntaxFre of Syntax = ConstructorsFre, CatFre, StructuralFre, CombinatorsFre ; diff --git a/next-resource/api/SyntaxGer.gf b/next-resource/api/SyntaxGer.gf index 87b3d03a..59f49527 100644 --- a/next-resource/api/SyntaxGer.gf +++ b/next-resource/api/SyntaxGer.gf @@ -1,4 +1,4 @@ --# -path=.:alltenses:prelude -instance SyntaxGer of Syntax = ConstructorsGer, CatGer, StructuralGer, NumeralGer ; +instance SyntaxGer of Syntax = ConstructorsGer, CatGer, StructuralGer, CombinatorsGer ; diff --git a/next-resource/api/SyntaxIta.gf b/next-resource/api/SyntaxIta.gf index 6b0f99b3..3bba98dd 100644 --- a/next-resource/api/SyntaxIta.gf +++ b/next-resource/api/SyntaxIta.gf @@ -1,4 +1,4 @@ --# -path=.:alltenses:prelude -instance SyntaxIta of Syntax = ConstructorsIta, CatIta, StructuralIta, NumeralIta ; +instance SyntaxIta of Syntax = ConstructorsIta, CatIta, StructuralIta, CombinatorsIta ; diff --git a/next-resource/api/SyntaxNor.gf b/next-resource/api/SyntaxNor.gf index ee2ad1bb..98b4d41c 100644 --- a/next-resource/api/SyntaxNor.gf +++ b/next-resource/api/SyntaxNor.gf @@ -1,5 +1,5 @@ --# -path=.:alltenses:prelude -instance SyntaxNor of Syntax = ConstructorsNor, CatNor, StructuralNor, NumeralNor +instance SyntaxNor of Syntax = ConstructorsNor, CatNor, StructuralNor, CombinatorsNor ; diff --git a/next-resource/api/SyntaxRus.gf b/next-resource/api/SyntaxRus.gf index 0804e209..56f750ac 100644 --- a/next-resource/api/SyntaxRus.gf +++ b/next-resource/api/SyntaxRus.gf @@ -1,4 +1,4 @@ --# -path=.:alltenses:prelude -instance SyntaxRus of Syntax = ConstructorsRus, CatRus, StructuralRus, NumeralRus ; +instance SyntaxRus of Syntax = ConstructorsRus, CatRus, StructuralRus, CombinatorsRus ; diff --git a/next-resource/api/SyntaxSpa.gf b/next-resource/api/SyntaxSpa.gf index 7cf6b764..40315b43 100644 --- a/next-resource/api/SyntaxSpa.gf +++ b/next-resource/api/SyntaxSpa.gf @@ -1,4 +1,5 @@ --# -path=.:alltenses:prelude -instance SyntaxSpa of Syntax = ConstructorsSpa, CatSpa, StructuralSpa, NumeralSpa ; +instance SyntaxSpa of Syntax = + ConstructorsSpa, CatSpa, StructuralSpa, CombinatorsSpa ; diff --git a/next-resource/api/SyntaxSwe.gf b/next-resource/api/SyntaxSwe.gf index ecf6bbb0..b1b603f8 100644 --- a/next-resource/api/SyntaxSwe.gf +++ b/next-resource/api/SyntaxSwe.gf @@ -1,4 +1,5 @@ --# -path=.:alltenses:prelude -instance SyntaxSwe of Syntax = ConstructorsSwe, CatSwe, StructuralSwe, NumeralSwe ; +instance SyntaxSwe of Syntax = + ConstructorsSwe, CatSwe, StructuralSwe, CombinatorsSwe ; diff --git a/next-resource/italian/StructuralIta.gf b/next-resource/italian/StructuralIta.gf index fdb0aafd..c8d3618a 100644 --- a/next-resource/italian/StructuralIta.gf +++ b/next-resource/italian/StructuralIta.gf @@ -82,13 +82,16 @@ lin something_NP = pn2np (mkPN ["qualche cosa"] Masc) ; somewhere_Adv = ss ["qualche parte"] ; that_Quant = let - quello : Number => Gender => Case => Str = table { - Sg => \\g,c => prepCase c ++ genForms "quello" "quella" ! g ; - Pl => \\g,c => prepCase c ++ genForms "quelli" "quelle" ! g ---- quegli + quello : Str -> Str -> Number => Gender => Case => Str = + \quel, quelli -> table { + Sg => \\g,c => prepCase c ++ genForms quel "quella" ! g ; + Pl => \\g,c => prepCase c ++ genForms quelli "quelle" ! g ---- quegli } in { - s = \\_ => quello ; - sp = quello ; + s = \\_ => + quello (elision "quel" "quell'" "quello") + (elision "quelli" "quegli" "quegli") ; + sp = quello "quello" "quelli" ; s2 = [] } ;