diff --git a/lib/doc/MkSynopsis.hs b/lib/doc/MkSynopsis.hs index a2a8e5edc..30e9f0d42 100644 --- a/lib/doc/MkSynopsis.hs +++ b/lib/doc/MkSynopsis.hs @@ -121,7 +121,7 @@ rulesTable aexx hasEx isLatex cs file = do getRules :: ApiExx -> FilePath -> IO Rules getRules aexx file = do - ss <- readFileC file >>= return . filter (not . hiddenLine) . lines + ss <- readFileC (coding file) file >>= return . filter (not . hiddenLine) . lines return $ getrs [] ss where getrs rs ss = case ss of @@ -311,7 +311,18 @@ showTyp cs = unwords . map f . words && isUpper (head cat) -- to work around GHC 6.12 file input -readFileC file = do +readFileC cod file = do let tmp = file ++ ".tmp" - system $ "iconv -f ISO-8859-1 -t UTF-8 " ++ file ++ " >" ++ tmp - readFile tmp + case cod of + "utf8" -> readFile file + _ -> do + system $ "iconv -f ISO-8859-1 -t UTF-8 " ++ file ++ " >" ++ tmp + readFile tmp + +coding file = case language file of + "Pol" -> "utf8" + "Rus" -> "utf8" + _ -> "latin1" + +language = reverse . take 3 . drop 3 . reverse + diff --git a/lib/doc/synopsis.html b/lib/doc/synopsis.html index e37890c2a..5c219c0b2 100644 --- a/lib/doc/synopsis.html +++ b/lib/doc/synopsis.html @@ -87,7 +87,7 @@ of C that takes D as an argument. What the constructors exactly ar and what other arguments they take, is described by separate tables for each category.

- +
@@ -152,7 +152,7 @@ also in the Paradigms modules.

Explanations

-
+
@@ -497,7 +497,7 @@ Lexical category, constructors given in

AP - adjectival phrase

-
Category Explanation
+
@@ -587,7 +587,7 @@ Lexical category, constructors given in

AdA - adjective-modifying adverb

-
Function Type
+
@@ -622,7 +622,7 @@ Lexical category, constructors given in

AdN - numeral-modifying adverb

-
Function Type
+
@@ -652,7 +652,7 @@ Lexical category, constructors given in

AdV - adverb directly attached to verb

-
Function Type
+
@@ -667,7 +667,7 @@ Lexical category, constructors given in

Adv - verb-phrase-modifying adverb

-
Function Type
+
@@ -757,7 +757,7 @@ Lexical category, constructors given in

Ant - anteriority

-
Function Type
+
@@ -777,7 +777,7 @@ Lexical category, constructors given in

CAdv - comparative adverb

-
Function Type
+
@@ -802,7 +802,7 @@ Lexical category, constructors given in

CN - common noun (without determiner)

-
Function Type
+
@@ -907,7 +907,7 @@ Lexical category, constructors given in

Card - cardinal number

-
Function Type
+
@@ -937,7 +937,7 @@ Lexical category, constructors given in

Cl - declarative clause, with all tenses

-
Function Type
+
@@ -961,7 +961,7 @@ Lexical category, constructors given in - + @@ -1102,7 +1102,7 @@ Lexical category, constructors given in

ClSlash

-
Function Type
mkCl NP -> V3 -> NP -> NP -> Cl
she sends it to him
she sends it to him
mkCl
+
@@ -1142,7 +1142,7 @@ Lexical category, constructors given in

Comp - complement of copula, such as AP

-
Function Type
+
@@ -1167,7 +1167,7 @@ Lexical category, constructors given in

Conj - conjunction

-
Function Type
+
@@ -1202,7 +1202,7 @@ Lexical category, constructors given in

Det - determiner phrase

-
Function Type
+
@@ -1322,7 +1322,7 @@ Lexical category, constructors given in

Dig

-
Function Type
+
@@ -1382,7 +1382,7 @@ Lexical category, constructors given in

Digits - cardinal or ordinal in digits

-
Function Type
+
@@ -1407,7 +1407,7 @@ Lexical category, constructors given in

IAdv - interrogative adverb

-
Function Type
+
@@ -1452,7 +1452,7 @@ Lexical category, constructors given in

IComp - interrogative complement of copula

-
Function Type
+
@@ -1472,7 +1472,7 @@ Lexical category, constructors given in

IDet - interrogative determiner

-
Function Type
+
@@ -1507,7 +1507,7 @@ Lexical category, constructors given in

IP - interrogative pronoun

-
Function Type
+
@@ -1582,7 +1582,7 @@ Lexical category, constructors given in

IQuant

-
Function Type
+
@@ -1597,7 +1597,7 @@ Lexical category, constructors given in

Imp - imperative

-
Function Type
+
@@ -1622,7 +1622,7 @@ Lexical category, constructors given in

ImpForm

-
Function Type
+
@@ -1653,7 +1653,7 @@ Lexical category, constructors given in

ListAP

-
Function Type
+
@@ -1673,7 +1673,7 @@ Lexical category, constructors given in

ListAdv

-
Function Type
+
@@ -1693,7 +1693,7 @@ Lexical category, constructors given in

ListNP

-
Function Type
+
@@ -1713,7 +1713,7 @@ Lexical category, constructors given in

ListRS

-
Function Type
+
@@ -1733,7 +1733,7 @@ Lexical category, constructors given in

ListS

-
Function Type
+
@@ -1771,7 +1771,7 @@ Lexical category, constructors given in

NP - noun phrase (subject or object)

-
Function Type
+
@@ -1991,7 +1991,7 @@ Lexical category, constructors given in

Num - number determining element

-
Function Type
+
@@ -2041,7 +2041,7 @@ Lexical category, constructors given in

Numeral - cardinal or ordinal in words

-
Function Type
+
@@ -2081,7 +2081,7 @@ Lexical category, constructors given in

Ord - ordinal number (used in Det)

-
Function Type
+
@@ -2111,7 +2111,7 @@ Lexical category, constructors given in

PConj - phrase-beginning conjunction

-
Function Type
+
@@ -2147,7 +2147,7 @@ Lexical category, constructors given in

Phr - phrase in a text

-
Function Type
+
@@ -2182,7 +2182,7 @@ Lexical category, constructors given in

Pol - polarity

-
Function Type
+
@@ -2202,7 +2202,7 @@ Lexical category, constructors given in

Predet - predeterminer (prefixed Quant)

-
Function Type
+
@@ -2232,7 +2232,7 @@ Lexical category, constructors given in

Prep - preposition, or just case

-
Function Type
+
@@ -2347,7 +2347,7 @@ Lexical category, constructors given in

Pron - personal pronoun

-
Function Type
+
@@ -2402,7 +2402,7 @@ Lexical category, constructors given in

Punct

-
Function Type
+
@@ -2427,7 +2427,7 @@ Lexical category, constructors given in

QCl - question clause, with all tenses

-
Function Type
+
@@ -2456,7 +2456,7 @@ Lexical category, constructors given in - + @@ -2587,7 +2587,7 @@ Lexical category, constructors given in

QS - question

-
Function Type
mkQCl IP -> V3 -> NP -> NP -> QCl
who sends it to her
who sends it to her
mkQCl
+
@@ -2607,7 +2607,7 @@ Lexical category, constructors given in

Quant - quantifier ('nucleus' of Det)

-
Function Type
+
@@ -2647,7 +2647,7 @@ Lexical category, constructors given in

RCl - relative clause, with all tenses

-
Function Type
+
@@ -2671,7 +2671,7 @@ Lexical category, constructors given in - + @@ -2782,7 +2782,7 @@ Lexical category, constructors given in

RP - relative pronoun

-
Function Type
mkRCl RP -> V3 -> NP -> NP -> RCl
who send it to her
who send it to her
mkRCl
+
@@ -2802,7 +2802,7 @@ Lexical category, constructors given in

RS - relative

-
Function Type
+
@@ -2827,7 +2827,7 @@ Lexical category, constructors given in

S - declarative sentence

-
Function Type
+
@@ -2857,7 +2857,7 @@ Lexical category, constructors given in

SC - embedded sentence or question

-
Function Type
+
@@ -2882,7 +2882,7 @@ Lexical category, constructors given in

SSlash

-
Function Type
+
@@ -2897,7 +2897,7 @@ Lexical category, constructors given in

Sub100

-
Function Type
+
@@ -2922,7 +2922,7 @@ Lexical category, constructors given in

Sub1000

-
Function Type
+
@@ -2947,7 +2947,7 @@ Lexical category, constructors given in

Subj - subjunction

-
Function Type
+
@@ -2988,7 +2988,7 @@ Lexical category, constructors given in

Tense - tense

-
Function Type
+
@@ -3018,7 +3018,7 @@ Lexical category, constructors given in

Text - text consisting of several phrases

-
Function Type
+
@@ -3068,7 +3068,7 @@ Lexical category, constructors given in

Unit

-
Function Type
+
@@ -3123,7 +3123,7 @@ Lexical category, constructors given in

Utt - sentence, question, word...

-
Function Type
+
@@ -3219,7 +3219,7 @@ Lexical category, constructors given in

V2 - two-place verb

-
Function Type
+
@@ -3270,7 +3270,7 @@ Lexical category, constructors given in

VP - verb phrase

-
Function Type
+
@@ -3289,7 +3289,7 @@ Lexical category, constructors given in - + @@ -3425,7 +3425,7 @@ Lexical category, constructors given in

VPSlash - verb phrase missing complement

-
Function Type
mkVP V3 -> NP -> NP -> VP
to send it to him
to send it to him
mkVP
+
@@ -3487,7 +3487,7 @@ Lexical category, constructors given in

VV - verb-phrase-complement verb

-
Function Type
+
@@ -3517,7 +3517,7 @@ Lexical category, constructors given in

Voc - vocative or "please"

-
Function Type
+
@@ -3545,7 +3545,7 @@ Lexical category, constructors given in

source http://www.grammaticalframework.org/lib/resource/src/bulgarian/ParadigmsBul.gf

-
Function Type
+
@@ -4406,7 +4406,7 @@ source http://www.grammaticalfr

source http://www.grammaticalframework.org/lib/resource/src/catalan/ParadigmsCat.gf

-
Function Type
+
@@ -4445,97 +4445,97 @@ source http://www.grammaticalfram - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4555,42 +4555,32 @@ source http://www.grammaticalfram - + - + - - - - - - + - + - + - - - - - - + @@ -4608,11 +4598,6 @@ source http://www.grammaticalfram - - - - - @@ -4662,31 +4647,6 @@ source http://www.grammaticalfram - - - - - - - - - - - - - - - - - - - - - - - - -
Function Type
accusative Prep-direct object
genitive Prep-preposition "de"
dative Prep-preposition "a"
mkPrep Str -> Prep-other preposition
mkN (llum : Str) -> N-regular, with heuristics for plural and gender
mkN Str -> Gender -> N-force gender
mkN (disc,discos : Str) -> Gender -> N-worst case
compN N -> Str -> N-compound, e.g. "número" + "de telèfon"
mkN2 N -> Prep -> N2-e.g. filla + genitive
deN2 N -> N2-relation with genitive
aN2 N -> N2-relation with dative
mkN3 N -> Prep -> Prep -> N3-e.g. connexió + genitive + dative
mkPN (Anna : Str) -> PN-feminine for "-a", otherwise masculine
mkPN (Pilar : Str) -> Gender -> PN-force gender
mkA (sol : Str) -> A-regular
mkA (fort,forta,forts,fortes,fortament : Str) -> A-worst case
mkA (bo : A) -> (millor : A) -> A-special comparison (default with "mas")
prefixA A -> A-adjective before noun (default: after)
mkA2 A -> Prep -> A2-e.g. "casat" + dative
mkAdv
mkV (cantar : Str) -> V-regular in models I, IIa, IIb
mkV Verbum -> V-use verb constructed in BeschCat
reflV V -> V-
special_ppVV -> Str -> V-reflexive verb
mkV2 Str -> V2-regular verb, direct object
mkV2 V -> V2-any verb, direct object
mkV2 V -> Prep -> V2-
v2VV2 -> V-preposition for complement
mkV3donar,(dative),(accusative)
mkV0V -> V0-
mkVS V -> VS -V -> Prep -> V2Q -
mkASA -> AS-
mkA2SA -> Prep -> A2S-
mkAVA -> Prep -> AV-
mkA2VA -> Prep -> Prep -> A2V-
V0Type-
@@ -4697,7 +4657,7 @@ source http://www.grammaticalfram

source http://www.grammaticalframework.org/lib/resource/src/danish/ParadigmsDan.gf

- +
@@ -4711,47 +4671,17 @@ source http://www.grammaticalframe - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -4761,157 +4691,132 @@ source http://www.grammaticalframe - - - - - - + - - - - - - + - + - - - - - - + - + - + - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - + - + - + @@ -4929,11 +4834,6 @@ source http://www.grammaticalframe - - - - - @@ -4973,31 +4873,6 @@ source http://www.grammaticalframe - - - - - - - - - - - - - - - - - - - - - - - - -
Function Type
utrum Gender-"en" gender
neutrum Gender-
NumberType-
singularNumber-
pluralNumber-
CaseType-
nominativeCase-
genitiveCase-"et" gender
mkPrep Str -> Prep-e.g. "til"
noPrep
mkN (bil : Str) -> N-
mkN(hus : Str) -> Gender -> N-regular noun: "en" gender with plural "-er" or "-r"
mkN (bil,bilen : Str) -> N-
mkN(bil,bilen,biler : Str) -> N-better prediction from both singular and plural
mkN (dreng,drengen,drenge,drengene : Str) -> N-worst case
mkN2 N -> Prep -> N2-
regN2Str -> Gender -> N2-e.g. datter + til
mkN3 N -> Prep -> Prep -> N3-e.g. forbindelse + fra + til
mkPN Str -> PNutrumutrum gender
mkPN Str -> Gender -> PN-
mkPNN -> PN-other gender
mkA (fin : Str) -> A-regular adjective
mkA (fin,fint : Str) -> A-deviant neuter
mkA (galen,galet,galne : Str) -> A-also deviant plural
mkA (stor,stort,store,storre,storst : Str) -> A-worst case
mkA A -> A-/mer/mest norskforce comparison with mer/mest
mkA2 A -> Prep -> A2-e.g. gift + med
mkAdv Str -> Adv-after verb, e.g. "idag"
mkAdV Str -> AdV-close to verb, e.g. "altid"
mkAdA Str -> AdA-modify adjective, e.g. "meget"
mkV (snakke : Str) -> V-regular verb
mkV (leve,levde : Str) -> V-also give past tense
mkV (drikke, drakk, drukket : Str) -> V-theme of irregular verb
mkV (spise,spiser,spises,spiste,spist,spis : Str) -> V-worst case
mkV V -> Str -> V-particle verb, e.g. lukke + op
vaereV V -> V-force auxiliary "være"
depV V -> V-deponent, e.g. "undres"
reflV V -> V-
mkV2Str -> V2-reflexive, e.g. "forestille sig"
mkV2 V -> V2-direct object
mkV2 V -> Prep -> V2-prepositional object
mkV3give,_,_
mkV0V -> V0-
mkVS V -> VS -V -> Prep -> V2Q -
mkASA -> AS-
mkA2SA -> Prep -> A2S-
mkAVA -> AV-
mkA2VA -> Prep -> A2V-
V0Type-
@@ -5008,7 +4883,7 @@ source http://www.grammaticalframe

source http://www.grammaticalframework.org/lib/resource/src/dutch/ParadigmsDut.gf

- +
@@ -5199,7 +5074,7 @@ source http://www.grammaticalframew

source http://www.grammaticalframework.org/lib/resource/src/english/ParadigmsEng.gf

-
Function Type
+
@@ -5221,16 +5096,6 @@ source http://www.grammaticalfram - - - - - - - - - - @@ -5246,24 +5111,9 @@ source http://www.grammaticalfram - - - - - - - - - - - - - - - - + @@ -5446,6 +5296,11 @@ source http://www.grammaticalfram + + + + + @@ -5480,7 +5335,7 @@ source http://www.grammaticalfram

source http://www.grammaticalframework.org/lib/resource/src/finnish/ParadigmsFin.gf

-
Function Type-
masculineGender-
feminineGender-
Number Type --
CaseType-
nominativeCase-
genitiveCase-
npNumber NP -> Number-exctract the number of a noun phrase
mkNe.g. want (to VP)
ingVVV -> VVe.g. start (VPing)
mkV2V V -> Prep -> Prep -> V2V e.g. want (NP) (to VP)
+
@@ -5806,7 +5661,7 @@ source http://www.grammaticalfram

source http://www.grammaticalframework.org/lib/resource/src/french/ParadigmsFre.gf

-
Function Type
+
@@ -6037,7 +5892,7 @@ source http://www.grammaticalframe

source http://www.grammaticalframework.org/lib/resource/src/german/ParadigmsGer.gf

-
Function Type
+
@@ -6348,7 +6203,7 @@ source http://www.grammaticalframe

source http://www.grammaticalframework.org/lib/resource/src/italian/ParadigmsIta.gf

-
Function Type
+
@@ -6392,92 +6247,112 @@ source http://www.grammaticalfram - + - + - + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -6497,47 +6372,42 @@ source http://www.grammaticalfram - + - + - + - + - + - + - + - - - - - - + @@ -6555,11 +6425,6 @@ source http://www.grammaticalfram - - - - - @@ -6609,31 +6474,6 @@ source http://www.grammaticalfram - - - - - - - - - - - - - - - - - - - - - - - - -
Function Type
accusative Prep-direct object
genitive Prep-preposition "di" and its contractions
dative Prep-preposition "a" and its contractions
con_PrepPreppreposition "con" and its contractions
da_PrepPreppreposition "da" and its contractions
in_PrepPreppreposition "in" and its contractions
su_PrepPreppreposition "su" and its contractions
mkPrep Str -> Prep-other prepositions, e.g. "dopo"
mkN (cane : Str) -> N-regular noun; fem for -"a", masc otherwise
mkN (carne : Str) -> Gender -> N-override default gender
mkN (uomo,uomini : Str) -> Gender -> N-worst case
mkN N -> Str -> N-compound such as "numero" + "di telefono"
mkN2 Str -> N2-regular with genitive, e.g. "figlio" + "di"
mkN2 N -> Prep -> N2-arbitrary noun and preposition
mkN3 N -> Prep -> Prep -> N3-e.g. volo + da + per
mkPN Str -> PN-femininne for "-a", otherwise masculine
mkPN Str -> Gender -> PN-set gender manually
mkA (bianco : Str) -> A-predictable adjective
mkA (solo,sola,soli,sole,solamente : Str) -> A-irregular adjective
mkA A -> A -> A-special comparison, e.g. buono - migliore
prefixAA -> A = prefA-A -> Aadjective that comes before noun (default: after)
mkA2 A -> Prep -> A2-e.g. divisibile + per
mkAdv
mkV Str -> V-regular verbs in "-are"/"-ire"
mkV Verbo -> V-verbs formed by BeschIta
mkV (udire,odo,ode,udiamo,udiro,udii,udisti,udi,udirono,odi,udito : Str) -> V-worst case
essereV V -> V-force "essere" as auxiliary (default avere)
reflV V -> V-reflexive verb (implies essere)
mkV2 Str -> V2-regular verb, direct object
mkV2 V -> V2-direct object
mkV2 V -> Prep -> V2-
v2VV2 -> V-prepositional object
mkV3dare,_,_
mkV0V -> V0-
mkVS V -> VS -V -> Prep -> V2Q -
mkASA -> AS-
mkA2SA -> Prep -> A2S-
mkAVA -> Prep -> AV-
mkA2VA -> Prep -> Prep -> A2V-
V0Type-
@@ -6644,7 +6484,7 @@ source http://www.grammaticalfram

source http://www.grammaticalframework.org/lib/resource/src/norwegian/ParadigmsNor.gf

- +
@@ -6658,17 +6498,17 @@ source http://www.grammaticalfr - + - + - + @@ -6686,24 +6526,9 @@ source http://www.grammaticalfr - - - - - - - - - - - - - - - - + @@ -6713,37 +6538,27 @@ source http://www.grammaticalfr - + - - - - - - + - + - - - - - - + - + @@ -6753,42 +6568,37 @@ source http://www.grammaticalfr - - - - - - + - + - + - + - + - + - + @@ -6803,62 +6613,62 @@ source http://www.grammaticalfr - + - + - + - + - + - + - + - + - + - + - + - + @@ -6876,11 +6686,6 @@ source http://www.grammaticalfr - - - - - @@ -6920,31 +6725,6 @@ source http://www.grammaticalfr - - - - - - - - - - - - - - - - - - - - - - - - -
Function Type
masculine Gender-the "en" gender
feminine Gender-the "ei" gender
neutrum Gender-the "et" gender
Number-
CaseType-
nominativeCase-
genitiveCase-
mkPrep Str -> Prep-e.g. "etter"
noPrep
mkN Str -> N-predictable noun, feminine for "-e" otherwise masculine
mkN Str -> Gender -> N-
mkN(bil,bilen : Str) -> N-force gender
mkN (dreng,drengen,drenger,drengene : Str) -> N-worst case
mkN2 N -> Prep -> N2-
regN2Str -> Gender -> N2-e.g. datter + til
mkN3 N -> Prep -> Prep -> N3-e.g forbindelse + fra + til
mkPN
mkPN Str -> Gender -> PN-
mkPNN -> PN-force gender
mkA (fin : Str) -> A-predictable adjective
mkA (fin,fint : Str) -> A-deviant neuter
mkA (galen,galet,galne : Str) -> A-also plural deviant
mkA (stor,stort,store,storre,storst : Str) -> A-worst case
mkA A -> A-/mer/mest norskcomparison with mer/mest, e.g. "norsk"
mkA2 A -> Prep -> A2-e.g. gift + med
mkAdv
mkAdA Str -> AdA-e.g. mye
mkV (snakke : Str) -> V-regular verb (first conjugation)
mkV (leve,levde : Str) -> V-other past tense
mkV (drikke, drakk, drukket : Str) -> V-theme of irregular verb
mkV (spise,spiser,spises,spiste,spist,spis : Str) -> V-worst case
mkV V -> Str -> V-verb with particle, e.g. lukke + opp
vaereV V -> V-force "være" as auxiliary (default "have")
depV V -> V-deponent, e.g "trives"
reflV V -> V-reflexive, e.g. "forestille seg"
mkV2 Str -> V2-regular, direct object
mkV2 V -> V2-direct object
mkV2 V -> Prep -> V2-preposition for complement
mkV3gi,_,_
mkV0V -> V0-
mkVS V -> VS -V -> Prep -> V2Q -
mkASA -> AS-
mkA2SA -> Prep -> A2S-
mkAVA -> AV-
mkA2VA -> Prep -> A2V-
V0Type-
@@ -6955,7 +6735,7 @@ source http://www.grammaticalfr

source http://www.grammaticalframework.org/lib/resource/src/polish/ParadigmsPol.gf

- +
@@ -7059,7 +6839,7 @@ source http://www.grammaticalframe - + @@ -7074,32 +6854,32 @@ source http://www.grammaticalframe - + - + - + - + - + - + @@ -7109,12 +6889,12 @@ source http://www.grammaticalframe - + - + @@ -7124,7 +6904,7 @@ source http://www.grammaticalframe - + @@ -7159,7 +6939,7 @@ source http://www.grammaticalframe - + @@ -7174,12 +6954,12 @@ source http://www.grammaticalframe - + - + @@ -7189,7 +6969,7 @@ source http://www.grammaticalframe - + @@ -7199,7 +6979,7 @@ source http://www.grammaticalframe - + @@ -7224,17 +7004,17 @@ source http://www.grammaticalframe - + - + - + @@ -7259,7 +7039,7 @@ source http://www.grammaticalframe - + @@ -7334,7 +7114,7 @@ source http://www.grammaticalframe - + @@ -7349,7 +7129,7 @@ source http://www.grammaticalframe - + @@ -7384,12 +7164,12 @@ source http://www.grammaticalframe - + - + @@ -7424,12 +7204,12 @@ source http://www.grammaticalframe - + - + @@ -7459,7 +7239,7 @@ source http://www.grammaticalframe - + @@ -7524,7 +7304,7 @@ source http://www.grammaticalframe - + @@ -7544,7 +7324,7 @@ source http://www.grammaticalframe - + @@ -7556,151 +7336,6 @@ source http://www.grammaticalframe - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Function Type
nLodz Str -> N;feminine, subject ending in "-dź"feminine, subject ending in "-dź"
nSul
nWies Str -> N;feminine, subject ending in "-ś"feminine, subject ending in "-ś"
nDlon Str -> N;feminine, subject ending in "-ń"feminine, subject ending in "-ń"
nSiec Str -> N;feminine, subject ending in "-ć" (sieć),"-ść" (miłość)feminine, subject ending in "-ć" (sieć),"-ść" (miłość)
nDrzwi Str -> N;drzwi, wnętrzności, ustadrzwi, wnętrzności, usta
nKosc Str -> N;feminine, subject ending in "-ść"(kość), "-ć" (nić),feminine, subject ending in "-ść"(kość), "-ć" (nić),
nNoc Str -> N;feminine, subject ending in "-c", "-cz", "-rz", "-ż"feminine, subject ending in "-c", "-cz", "-rz", "-ż"
nWesz
nKrolowa Str -> N;feminine, subject ending in "-wa", but also for "księżna"feminine, subject ending in "-wa", but also for "księżna"
nReka Str -> N;feminine "ręka", irregularly nounfeminine "ręka", irregularly noun
nApteka
nDroga Str -> N;feminine, subject ending in "g", consonant alternation d:dz, vowel alternation o:ófeminine, subject ending in "g", consonant alternation d:dz, vowel alternation o:ó
nMatka
nSila Str -> N;feminine, subject ending in "-ł", "-r"feminine, subject ending in "-ł", "-r"
nDoba
nSzkola Str -> N;feminine, subject ending in "-oła", "-ra"feminine, subject ending in "-oła", "-ra"
nWojna Str -> N;feminine, subject ending in two consonants: jn, łz, łn, ćm,żwfeminine, subject ending in two consonants: jn, łz, łn, ćm,żw
nWiosna
nMgla Str -> N;feminine, subject ending in "-gł"feminine, subject ending in "-gł"
nGwiazda
nUlica Str -> N;feminine, subject ending mainly in "-c", but also in "-ż", "-rz", "-dz"feminine, subject ending mainly in "-c", but also in "-ż", "-rz", "-dz"
nOwca
nMorze Str -> N;neuter, subject ending in "-rz", "-ż"neuter, subject ending in "-rz", "-ż"
nImie Str -> N;neuter, subject ending in "-ę"neuter, subject ending in "-ę"
nCiele Str -> N;neuter, subject ending in "-ę"neuter, subject ending in "-ę"
nUdo
nTlo Str -> N;neuter, subject ending in "-ło"neuter, subject ending in "-ło"
nZebro
nLekarz Str -> N;masculine personal ending in -rz, -ż, -cz, -sz (piekarz, lekarz, papież, tłumacz, piwosz)masculine personal ending in -rz, -ż, -cz, -sz (piekarz, lekarz, papież, tłumacz, piwosz)
nKrol
nWrog Str -> N;masculine personal, subject ending in "-g"; only for "wróg"masculine personal, subject ending in "-g"; only for "wróg"
nKsiadz
nKon Str -> N;masculine animate, for "koń"masculine animate, for "koń"
nWaz Str -> N;masculine animate, for "wąż"masculine animate, for "wąż"
nPtak
nZab Str -> N;masculine inanimate, subject ending in "-ąb"masculine inanimate, subject ending in "-ąb"
nKosciol Str -> N;masculine inanimate, for "kosciół"masculine inanimate, for "kosciół"
nCien
nDzien Str -> N;masculine inanimate, for "dzień"masculine inanimate, for "dzień"
nKajak
nPokoj Str -> N;masculine inanimate, subject ending in -ójmasculine inanimate, subject ending in -ój
nGaj
nProg Str -> N;masculine inanimate, subject ending in -ógmasculine inanimate, subject ending in -óg
nStatekStr -> N; masculine inanimate, subject ending in -ch and for dom
mkN(nomSg, genSg, datSg, accSg, instrSg, locSg, vocSg,-
mkN2N -> N2-
mkFunN -> Prep -> N2;-
nullPrepPrep = {s = []; c= GenNoPrep; lock_Prep=<>};-
mkN3N -> Prep -> Prep -> N3;-
mkPrepStr -> Case -> Prep;-
genPrepPrep;-
datPrepPrep;-
accPrepPrep;-
instrPrepPrep;-
bez_PrepPrep; --without-
dla_PrepPrep; --for-
do_PrepPrep; --to-
dookola_PrepPrep; --(a)round-
kolo_PrepPrep; --near-
obok_PrepPrep; --beside, next to-
od_PrepPrep; --from-
oprocz_PrepPrep; --out of-
podczas_PrepPrep; --during-
mimo_PrepPrep;despite
spod_PrepPrep; --under-
u_PrepPrep; --by, with (I was by Peter last sunday.)-
wzdluz_PrepPrep; --along-
z_PrepPrep; --from (I come from Italy.), of/ from (The ring is made of silver.)-
zamiast_PrepPrep; --instead of-
znad_PrepPrep; --over, above-
zza_PrepPrep; --behind-
dzieki_PrepPrep;thanks for
przeciw_PrepPrep;against
@@ -7711,7 +7346,7 @@ source http://www.grammaticalframe

source http://www.grammaticalframework.org/lib/resource/src/romanian/ParadigmsRon.gf

- +
@@ -7828,6 +7463,36 @@ source http://www.grammaticalfra + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7868,6 +7533,21 @@ source http://www.grammaticalfra + + + + + + + + + + + + + + + @@ -7907,26 +7587,6 @@ source http://www.grammaticalfra - - - - - - - - - - - - - - - - - - - -
Function Type-
mkNStr -> NSingular, infers gender and Plural
mkNStr -> Str -> NGender -> Nworst case: Singular + Plural + gender
mkNStr -> Str -> Str -> Nvery irregular nouns - feminine
mkNStr -> Str -> NSingular + Plural, infers gender
mkNStr -> NGender -> NSingular + gender, infers Plural
mkNRStr -> N;-
mkN2 N -> Prep -> N2 --
mkAStr -> Aregular adjectives
mkAStr -> Str -> Str -> Str -> Str -> A --worst caseall 4 forms are needed + form for adverb
mkAStr -> Str -> Str -> Str -> A4 forms are needed
mkA2 A -> Prep -> A2 -V -> Prep -> V2Q -
mkASA -> AS-
mkA2SA -> Prep -> A2S-
mkAVA -> Prep -> AV-
mkA2VA -> Prep -> Prep -> A2V-
@@ -7937,7 +7597,7 @@ source http://www.grammaticalfra

source http://www.grammaticalframework.org/lib/resource/src/russian/ParadigmsRus.gf

- +
@@ -8046,7 +7706,7 @@ source http://www.grammaticalfram - + @@ -8066,7 +7726,7 @@ source http://www.grammaticalfram - + @@ -8075,28 +7735,23 @@ source http://www.grammaticalfram - - - - - - + - + - + - + @@ -8113,7 +7768,7 @@ source http://www.grammaticalfram

source http://www.grammaticalframework.org/lib/resource/src/spanish/ParadigmsSpa.gf

-
Function Type
mkPN Str -> Gender -> Animacy -> PN"Иван", "Маша""Иван", "Маша"
nounPN
mkA2 A -> Str -> Case -> A2"делим на""делим на"
mkAdv
mkVAspect -> (presentSgP1,presentSgP2,presentSgP3,-
pastSgP1,imperative,infinitiveStr) -> VAspect -> (presSg1,presSg2,presSg3,presPl1,presPl2,presPl3,pastSgMasc,imp,inf: Str) -> V -
mkV2 V -> Str -> Case -> V2"войти в дом"; "в", accusative"войти в дом"; "в", accusative
mkV3 V -> Str -> Str -> Case -> Case -> V3"сложить письмо в конверт""сложить письмо в конверт"
dirV2 V -> V2"видеть", "любить""видеть", "любить"
tvDirDir
+
@@ -8152,97 +7807,97 @@ source http://www.grammaticalfram - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8262,67 +7917,57 @@ source http://www.grammaticalfram - + - + - + - + - + - + - + - - - - - - + - + - + - - - - - - + @@ -8374,31 +8019,6 @@ source http://www.grammaticalfram - - - - - - - - - - - - - - - - - - - - - - - - -
Function Type
accusative Prep-direct object
genitive Prep-preposition "de" and its contractions
dative Prep-preposition "a" and its contractions
mkPrep Str -> Prep-other preposition
mkN (luz : Str) -> N-predictable; feminine for "-a"/"-z", otherwise masculine
mkN Str -> Gender -> N-force gender
mkN (baston,bastones : Str) -> Gender -> N-worst case
compN N -> Str -> N-compound, e.g. "número" + "de teléfono"
mkN2 N -> Prep -> N2-relational noun with preposition
deN2 N -> N2-relational noun with preposition "de"
aN2 N -> N2-relational noun with preposition "a"
mkN3 N -> Prep -> Prep -> N3-prepositions for two complements
mkPN (Anna : Str) -> PN-feminine for "-a"
mkPN (Pilar : Str) -> Gender -> PN-force gender
mkA (util : Str) -> A-predictable adjective
mkA (solo,sola,solos,solas,solamente : Str) -> A-worst-case
mkA (bueno : A) -> (mejor : A) -> A-special comparison (default with "mas")
prefixA A -> A-adjective before noun (default after noun)
mkA2 A -> Prep -> A2-e.g. "casado" + dative
mkAdv
mkV (pagar : Str) -> V-regular in "-ar", "-er", ".ir"
mkV (mostrar,muestro : Str) -> V-regular with vowel alternation
mkV Verbum -> V-import verb constructed with BeschSpa
reflV V -> V-reflexive verb
special_ppV V -> Str -> V-deviant past participle, e.g. abrir - abierto
mkV2 Str -> V2-regular, direct object
mkV2 V -> V2-direct object
mkV2 V -> Prep -> V2-
v2VV2 -> V-other object
mkV3 V -> Prep -> Prep -> V3hablar, a, die.g. hablar, a, di
dirV3 V -> Prep -> V3dar,(accusative),ae.g. dar,(accusative),a
dirdirV3 V -> V3dar,(dative),(accusative)
mkV0V -> V0-e.g. dar,(dative),(accusative)
mkVSV -> Prep -> V2Q -
mkASA -> AS-
mkA2SA -> Prep -> A2S-
mkAVA -> Prep -> AV-
mkA2VA -> Prep -> Prep -> A2V-
V0Type-
@@ -8409,7 +8029,7 @@ source http://www.grammaticalfram

source http://www.grammaticalframework.org/lib/resource/src/swedish/ParadigmsSwe.gf

- +
@@ -8650,7 +8270,7 @@ source http://www.grammaticalfram

source http://www.grammaticalframework.org/lib/resource/src/urdu/ParadigmsUrd.gf

-
Function Type
+
@@ -8708,7 +8328,7 @@ source http://www.grammaticalframewo - + @@ -9054,6 +8674,6 @@ For each language, an instantiation of the functor:

- + diff --git a/lib/src/catalan/ParadigmsCat.gf b/lib/src/catalan/ParadigmsCat.gf index 3b4dc2410..34a92ec82 100644 --- a/lib/src/catalan/ParadigmsCat.gf +++ b/lib/src/catalan/ParadigmsCat.gf @@ -58,11 +58,11 @@ oper -- amalgamate with the following word (the 'genitive' "de" and the -- 'dative' "a"). - accusative : Prep ; - genitive : Prep ; - dative : Prep ; + accusative : Prep ; -- direct object + genitive : Prep ; -- preposition "de" + dative : Prep ; -- preposition "a" - mkPrep : Str -> Prep ; + mkPrep : Str -> Prep ; -- other preposition --2 Nouns @@ -77,15 +77,15 @@ oper -- those ending with "z" have "ces" in plural; all other nouns -- have "es" as plural ending. The accent is not dealt with. TODO - mkN : (llum : Str) -> N ; + mkN : (llum : Str) -> N ; -- regular, with heuristics for plural and gender -- A different gender can be forced. - mkN : Str -> Gender -> N ; + mkN : Str -> Gender -> N ; -- force gender -- The worst case has two forms (singular + plural) and the gender. - mkN : (disc,discos : Str) -> Gender -> N + mkN : (disc,discos : Str) -> Gender -> N -- worst case } ; @@ -96,24 +96,24 @@ oper -- They could be formed in syntax, but we give a shortcut here since -- they are frequent in lexica. - compN : N -> Str -> N ; + compN : N -> Str -> N ; -- compound, e.g. "nmero" + "de telfon" --3 Relational nouns -- -- Relational nouns ("filla de x") need a case and a preposition. - mkN2 : N -> Prep -> N2 ; + mkN2 : N -> Prep -> N2 ; -- e.g. filla + genitive -- The most common cases are the genitive "de" and the dative "a", -- with the empty preposition. - deN2 : N -> N2 ; - aN2 : N -> N2 ; + deN2 : N -> N2 ; -- relation with genitive + aN2 : N -> N2 ; -- relation with dative -- Three-place relational nouns ("la connexi de x a y") need two prepositions. - mkN3 : N -> Prep -> Prep -> N3 ; + mkN3 : N -> Prep -> Prep -> N3 ; -- e.g. connexi + genitive + dative --3 Relational common noun phrases @@ -130,8 +130,8 @@ oper -- The default gender is feminine for names ending with "a", otherwise masculine. TODO mkPN : overload { - mkPN : (Anna : Str) -> PN ; - mkPN : (Pilar : Str) -> Gender -> PN + mkPN : (Anna : Str) -> PN ; -- feminine for "-a", otherwise masculine + mkPN : (Pilar : Str) -> Gender -> PN -- force gender } ; @@ -143,17 +143,17 @@ oper -- masculine singular. The types of adjectives that are recognized are -- "alto", "fuerte", "util". Comparison is formed by "mas". - mkA : (sol : Str) -> A ; + mkA : (sol : Str) -> A ; -- regular -- One-place adjectives compared with "mas" need five forms in the worst -- case (masc and fem singular, masc plural, adverbial). - mkA : (fort,forta,forts,fortes,fortament : Str) -> A ; + mkA : (fort,forta,forts,fortes,fortament : Str) -> A ; -- worst case -- In the worst case, two separate adjectives are given: -- the positive ("bo"), and the comparative ("millor"). - mkA : (bo : A) -> (millor : A) -> A + mkA : (bo : A) -> (millor : A) -> A -- special comparison (default with "mas") } ; -- The functions above create postfix adjectives. To switch @@ -162,14 +162,14 @@ oper -- provided. -- JS: What about vi b -> bon vi ? - prefixA : A -> A ; + prefixA : A -> A ; -- adjective before noun (default: after) --3 Two-place adjectives -- -- Two-place adjectives need a preposition for their second argument. - mkA2 : A -> Prep -> A2 ; + mkA2 : A -> Prep -> A2 ; -- e.g. "casat" + dative @@ -197,7 +197,7 @@ oper -- The regular verb function works for models I, IIa, IIb and IIa -- The module $BeschCat$ gives the complete set of "Bescherelle" conjugations. - mkV : (cantar : Str) -> V ; + mkV : (cantar : Str) -> V ; -- regular in models I, IIa, IIb -- Verbs with vowel alternatition in the stem - easiest to give with -- two forms, e.g. "mostrar"/"muestro". TODO @@ -208,17 +208,17 @@ oper -- the module $BeschCat$ gives all the patterns of the "Bescherelle" -- book. To use them in the category $V$, wrap them with the function - mkV : Verbum -> V + mkV : Verbum -> V -- use verb constructed in BeschCat } ; -- To form reflexive verbs: - reflV : V -> V ; + reflV : V -> V ; -- reflexive verb -- Verbs with a deviant passive participle: just give the participle -- in masculine singular form as second argument. - special_ppV : V -> Str -> V ; + special_ppV : V -> Str -> V ; --% @@ -228,15 +228,15 @@ oper -- (transitive verbs). mkV2 : overload { - mkV2 : Str -> V2 ; - mkV2 : V -> V2 ; - mkV2 : V -> Prep -> V2 + mkV2 : Str -> V2 ; -- regular verb, direct object + mkV2 : V -> V2 ; -- any verb, direct object + mkV2 : V -> Prep -> V2 -- preposition for complement } ; -- You can reuse a $V2$ verb in $V$. - v2V : V2 -> V ; + v2V : V2 -> V ; --% --3 Three-place verbs -- @@ -252,7 +252,7 @@ oper -- Verbs and adjectives can take complements such as sentences, -- questions, verb phrases, and adjectives. - mkV0 : V -> V0 ; + mkV0 : V -> V0 ; --% mkVS : V -> VS ; mkV2S : V -> Prep -> V2S ; mkVV : V -> VV ; -- plain infinitive: "vull parlar" @@ -264,18 +264,18 @@ oper mkVQ : V -> VQ ; mkV2Q : V -> Prep -> V2Q ; - mkAS : A -> AS ; - mkA2S : A -> Prep -> A2S ; - mkAV : A -> Prep -> AV ; - mkA2V : A -> Prep -> Prep -> A2V ; + mkAS : A -> AS ; --% + mkA2S : A -> Prep -> A2S ; --% + mkAV : A -> Prep -> AV ; --% + mkA2V : A -> Prep -> Prep -> A2V ; --% -- Notice: categories $AS, A2S, AV, A2V$ are just $A$, -- and the second argument is given -- as an adverb. Likewise -- $V0$ is just $V$. - V0 : Type ; - AS, A2S, AV, A2V : Type ; + V0 : Type ; --% + AS, A2S, AV, A2V : Type ; --% --. diff --git a/lib/src/danish/ParadigmsDan.gf b/lib/src/danish/ParadigmsDan.gf index 1cd2cd62e..9ce6ceef3 100644 --- a/lib/src/danish/ParadigmsDan.gf +++ b/lib/src/danish/ParadigmsDan.gf @@ -40,26 +40,26 @@ resource ParadigmsDan = oper Gender : Type ; - utrum : Gender ; - neutrum : Gender ; + utrum : Gender ; -- "en" gender + neutrum : Gender ; -- "et" gender -- To abstract over number names, we define the following. - Number : Type ; + Number : Type ; --% - singular : Number ; - plural : Number ; + singular : Number ; --% + plural : Number ; --% -- To abstract over case names, we define the following. - Case : Type ; + Case : Type ; --% - nominative : Case ; - genitive : Case ; + nominative : Case ; --% + genitive : Case ; --% -- Prepositions used in many-argument functions are just strings. - mkPrep : Str -> Prep ; + mkPrep : Str -> Prep ; -- e.g. "til" noPrep : Prep ; -- empty string --2 Nouns @@ -71,26 +71,26 @@ oper -- The heuristic is that all nouns are $utrum$ with the -- plural ending "er" or "r". - mkN : (bil : Str) -> N ; + mkN : (bil : Str) -> N ; -- regular noun: "en" gender with plural "-er" or "-r" -- Giving gender manually makes the heuristic more reliable. - mkN : (hus : Str) -> Gender -> N ; + mkN : (hus : Str) -> Gender -> N ; -- regular possibly of "et" gender --% -- This function takes the singular indefinite and definite forms; the -- gender is computed from the definite form. - mkN : (bil,bilen : Str) -> N ; + mkN : (bil,bilen : Str) -> N ; -- better prediction from both singular and plural -- This function takes the singular indefinite and definite and the plural -- indefinite - mkN : (bil,bilen,biler : Str) -> N ; + mkN : (bil,bilen,biler : Str) -> N ; --% -- Worst case: give all four forms. The gender is computed from the -- last letter of the second form (if "n", then $utrum$, otherwise $neutrum$). - mkN : (dreng,drengen,drenge,drengene : Str) -> N ; + mkN : (dreng,drengen,drenge,drengene : Str) -> N ; -- worst case } ; @@ -106,12 +106,12 @@ oper -- -- Relational nouns ("datter til x") need a preposition. - mkN2 : N -> Prep -> N2 ; + mkN2 : N -> Prep -> N2 ; -- e.g. datter + til -- The most common preposition is "af", and the following is a -- shortcut for regular relational nouns with "af". - regN2 : Str -> Gender -> N2 ; + regN2 : Str -> Gender -> N2 ; --% -- Use the function $mkPrep$ or see the section on prepositions below to -- form other prepositions. @@ -119,7 +119,7 @@ oper -- Three-place relational nouns ("forbindelse fra x til y") -- need two prepositions. - mkN3 : N -> Prep -> Prep -> N3 ; + mkN3 : N -> Prep -> Prep -> N3 ; -- e.g. forbindelse + fra + til --3 Relational common noun phrases @@ -135,9 +135,9 @@ oper -- Proper names, with a regular genitive, are formed as follows mkPN : overload { - mkPN : Str -> PN ; -- utrum - mkPN : Str -> Gender -> PN ; - mkPN : N -> PN ; + mkPN : Str -> PN ; -- utrum gender + mkPN : Str -> Gender -> PN ; -- other gender + mkPN : N -> PN ; --% } ; @@ -147,22 +147,22 @@ oper -- with "ig". Two, five, or at worst five forms are sometimes needed. mkA : overload { - mkA : (fin : Str) -> A ; - mkA : (fin,fint : Str) -> A ; - mkA : (galen,galet,galne : Str) -> A ; - mkA : (stor,stort,store,storre,storst : Str) -> A ; + mkA : (fin : Str) -> A ; -- regular adjective + mkA : (fin,fint : Str) -> A ; -- deviant neuter + mkA : (galen,galet,galne : Str) -> A ; -- also deviant plural + mkA : (stor,stort,store,storre,storst : Str) -> A ; -- worst case -- If comparison is formed by "mer", "mest", as in general for -- long adjective, the following pattern is used: - mkA : A -> A ; -- -/mer/mest norsk + mkA : A -> A ; -- force comparison with mer/mest } ; --3 Two-place adjectives -- -- Two-place adjectives need a preposition for their second argument. - mkA2 : A -> Prep -> A2 ; + mkA2 : A -> Prep -> A2 ; -- e.g. gift + med @@ -172,12 +172,12 @@ oper -- after the verb. Some can be close to the verb like the negation -- "ikke" (e.g. "altid"). - mkAdv : Str -> Adv ; - mkAdV : Str -> AdV ; + mkAdv : Str -> Adv ; -- after verb, e.g. "idag" + mkAdV : Str -> AdV ; -- close to verb, e.g. "altid" -- Adverbs modifying adjectives and sentences can also be formed. - mkAdA : Str -> AdA ; + mkAdA : Str -> AdA ; -- modify adjective, e.g. "meget" --2 Verbs @@ -187,27 +187,27 @@ oper -- The 'regular verb' function is the first conjugation. - mkV : (snakke : Str) -> V ; + mkV : (snakke : Str) -> V ; -- regular verb -- The almost regular verb function needs the infinitive and the preteritum. - mkV : (leve,levde : Str) -> V ; + mkV : (leve,levde : Str) -> V ; -- also give past tense -- There is an extensive list of irregular verbs in the module $IrregDan$. -- In practice, it is enough to give three forms, as in school books. - mkV : (drikke, drakk, drukket : Str) -> V ; + mkV : (drikke, drakk, drukket : Str) -> V ; -- theme of irregular verb -- The worst case needs six forms. - mkV : (spise,spiser,spises,spiste,spist,spis : Str) -> V ; + mkV : (spise,spiser,spises,spiste,spist,spis : Str) -> V ; -- worst case --3 Verbs with a particle. -- -- The particle, such as in "lukke op", is given as a string. - mkV : V -> Str -> V ; + mkV : V -> Str -> V ; -- particle verb, e.g. lukke + op } ; @@ -216,7 +216,7 @@ oper -- -- By default, the auxiliary is "have". This function changes it to "vre". - vaereV : V -> V ; + vaereV : V -> V ; -- force auxiliary "vre" @@ -226,8 +226,8 @@ oper -- Some words are used in passive forms only, e.g. "undres", some as -- reflexive e.g. "forestille sig". - depV : V -> V ; - reflV : V -> V ; + depV : V -> V ; -- deponent, e.g. "undres" + reflV : V -> V ; -- reflexive, e.g. "forestille sig" --3 Two-place verbs @@ -236,9 +236,9 @@ oper -- (transitive verbs). Notice that, if a particle is needed, it comes from the $V$. mkV2 : overload { - mkV2 : Str -> V2 ; - mkV2 : V -> V2 ; - mkV2 : V -> Prep -> V2 ; + mkV2 : Str -> V2 ; --% + mkV2 : V -> V2 ; -- direct object + mkV2 : V -> Prep -> V2 ; -- prepositional object } ; @@ -256,7 +256,7 @@ oper -- Verbs and adjectives can take complements such as sentences, -- questions, verb phrases, and adjectives. - mkV0 : V -> V0 ; + mkV0 : V -> V0 ; --% mkVS : V -> VS ; mkV2S : V -> Prep -> V2S ; mkVV : V -> VV ; @@ -266,17 +266,17 @@ oper mkVQ : V -> VQ ; mkV2Q : V -> Prep -> V2Q ; - mkAS : A -> AS ; - mkA2S : A -> Prep -> A2S ; - mkAV : A -> AV ; - mkA2V : A -> Prep -> A2V ; + mkAS : A -> AS ; --% + mkA2S : A -> Prep -> A2S ; --% + mkAV : A -> AV ; --% + mkA2V : A -> Prep -> A2V ; --% -- Notice: categories $AS, A2S, AV, A2V$ are just $A$, -- and the second argument is given as an adverb.. -- $V0$ is just $V$. - V0 : Type ; - AS, A2S, AV, A2V : Type ; + V0 : Type ; --% + AS, A2S, AV, A2V : Type ; --% --. diff --git a/lib/src/english/ParadigmsEng.gf b/lib/src/english/ParadigmsEng.gf index 72ad335ae..776d61ade 100644 --- a/lib/src/english/ParadigmsEng.gf +++ b/lib/src/english/ParadigmsEng.gf @@ -40,22 +40,22 @@ oper human : Gender ; nonhuman : Gender ; - masculine : Gender ; - feminine : Gender ; + masculine : Gender ; --% + feminine : Gender ; --% -- To abstract over number names, we define the following. Number : Type ; - singular : Number ; + singular : Number ; plural : Number ; -- To abstract over case names, we define the following. - Case : Type ; + Case : Type ; --% - nominative : Case ; - genitive : Case ; + nominative : Case ; --% + genitive : Case ; --% -- Prepositions are used in many-argument functions for rection. -- The resource category $Prep$ is used. @@ -63,7 +63,7 @@ oper -- The number of a noun phrase can be extracted with the following -- function. - npNumber : NP -> Number ; + npNumber : NP -> Number ; -- exctract the number of a noun phrase --2 Nouns diff --git a/lib/src/italian/ParadigmsIta.gf b/lib/src/italian/ParadigmsIta.gf index 799e3a73c..01eb06a88 100644 --- a/lib/src/italian/ParadigmsIta.gf +++ b/lib/src/italian/ParadigmsIta.gf @@ -58,15 +58,21 @@ oper --Prep : Type ; - accusative : Prep ; - genitive : Prep ; - dative : Prep ; - - mkPrep : Str -> Prep ; + accusative : Prep ; -- direct object + genitive : Prep ; -- preposition "di" and its contractions + dative : Prep ; -- preposition "a" and its contractions -- The following prepositions also have special contracted forms. - con_Prep, da_Prep, in_Prep, su_Prep : Prep ; + con_Prep : Prep ; -- preposition "con" and its contractions + da_Prep : Prep ; -- preposition "da" and its contractions + in_Prep : Prep ; -- preposition "in" and its contractions + su_Prep : Prep ; -- preposition "su" and its contractions + +-- other prepositions + + mkPrep : Str -> Prep ; -- other prepositions, e.g. "dopo" + --2 Nouns @@ -77,22 +83,22 @@ oper -- The heuristic says that the gender is feminine for nouns -- ending with "a", and masculine for all other words. - mkN : (cane : Str) -> N ; + mkN : (cane : Str) -> N ; -- regular noun; fem for -"a", masc otherwise -- To force a different gender, give it explicitly. - mkN : (carne : Str) -> Gender -> N ; + mkN : (carne : Str) -> Gender -> N ; -- override default gender -- Worst case: give both two forms and the gender. - mkN : (uomo,uomini : Str) -> Gender -> N ; + mkN : (uomo,uomini : Str) -> Gender -> N ; -- worst case -- In *compound nouns*, the first part is inflected as a noun but -- the second part is not inflected. e.g. "numero di telefono". -- They could be formed in syntax, but we give a shortcut here since -- they are frequent in lexica. - mkN : N -> Str -> N + mkN : N -> Str -> N -- compound such as "numero" + "di telefono" } ; @@ -104,13 +110,13 @@ oper -- The default is regular nouns with the genitive "di". mkN2 : overload { - mkN2 : Str -> N2 ; - mkN2 : N -> Prep -> N2 + mkN2 : Str -> N2 ; -- regular with genitive, e.g. "figlio" + "di" + mkN2 : N -> Prep -> N2 -- arbitrary noun and preposition } ; -- Three-place relational nouns ("la connessione di x a y") need two prepositions. - mkN3 : N -> Prep -> Prep -> N3 ; + mkN3 : N -> Prep -> Prep -> N3 ; -- e.g. volo + da + per --3 Relational common noun phrases @@ -127,8 +133,8 @@ oper -- the name ends with an "a", and masculine otherwise. mkPN : overload { - mkPN : Str -> PN ; - mkPN : Str -> Gender -> PN + mkPN : Str -> PN ; -- femininne for "-a", otherwise masculine + mkPN : Str -> Gender -> PN -- set gender manually } ; @@ -140,18 +146,18 @@ oper -- For regular adjectives, all forms are derived from the -- masculine singular. Comparison is formed by "pi". - mkA : (bianco : Str) -> A ; + mkA : (bianco : Str) -> A ; -- predictable adjective -- Five forms are needed in the worst -- case (masc and fem singular, masc plural, adverbial), given that -- comparison is formed by "pi". - mkA : (solo,sola,soli,sole,solamente : Str) -> A ; + mkA : (solo,sola,soli,sole,solamente : Str) -> A ; -- irregular adjective -- With irregular comparison, there are as it were two adjectives: -- the positive ("buono") and the comparative ("migliore"). - mkA : A -> A -> A + mkA : A -> A -> A -- special comparison, e.g. buono - migliore } ; -- All the functions above create postfix adjectives. To switch @@ -159,7 +165,8 @@ oper -- modification, as in "vecchia chiesa"), the following function is -- provided. - prefixA : A -> A = prefA ; + prefixA : A -> A -- adjective that comes before noun (default: after) + = prefA ; @@ -167,7 +174,7 @@ oper -- -- Two-place adjectives need a preposition for their second argument. - mkA2 : A -> Prep -> A2 ; + mkA2 : A -> Prep -> A2 ; -- e.g. divisibile + per @@ -197,26 +204,26 @@ oper -- these endings, as well as the variations among -- "amare, cominciare, mangiare, legare, cercare". - mkV : Str -> V ; + mkV : Str -> V ; -- regular verbs in "-are"/"-ire" -- The module $BeschIta$ gives (almost) all the patterns of the "Bescherelle" -- book. To use them in the category $V$, wrap them with the function - mkV : Verbo -> V ; + mkV : Verbo -> V ; -- verbs formed by BeschIta -- If $BeschIta$ does not give the desired result or feels difficult -- to consult, here is a worst-case function for "-ire" and "-ere" verbs, -- taking 11 arguments. - mkV : (udire,odo,ode,udiamo,udiro,udii,udisti,udi,udirono,odi,udito : Str) -> V + mkV : (udire,odo,ode,udiamo,udiro,udii,udisti,udi,udirono,odi,udito : Str) -> V -- worst case } ; -- The function $regV$ gives all verbs the compound auxiliary "avere". -- To change it to "essere", use the following function. -- Reflexive implies "essere". - essereV : V -> V ; - reflV : V -> V ; + essereV : V -> V ; -- force "essere" as auxiliary (default avere) + reflV : V -> V ; -- reflexive verb (implies essere) --3 Two-place verbs @@ -225,14 +232,14 @@ oper -- (transitive verbs). Notice that a particle comes from the $V$. mkV2 : overload { - mkV2 : Str -> V2 ; - mkV2 : V -> V2 ; - mkV2 : V -> Prep -> V2 + mkV2 : Str -> V2 ; -- regular verb, direct object + mkV2 : V -> V2 ; -- direct object + mkV2 : V -> Prep -> V2 -- prepositional object } ; -- You can reuse a $V2$ verb in $V$. - v2V : V2 -> V ; + v2V : V2 -> V ; --% --3 Three-place verbs -- @@ -249,7 +256,7 @@ oper -- Verbs and adjectives can take complements such as sentences, -- questions, verb phrases, and adjectives. - mkV0 : V -> V0 ; + mkV0 : V -> V0 ; --% mkVS : V -> VS ; mkV2S : V -> Prep -> V2S ; mkVV : V -> VV ; -- plain infinitive: "voglio parlare" @@ -261,18 +268,18 @@ oper mkVQ : V -> VQ ; mkV2Q : V -> Prep -> V2Q ; - mkAS : A -> AS ; - mkA2S : A -> Prep -> A2S ; - mkAV : A -> Prep -> AV ; - mkA2V : A -> Prep -> Prep -> A2V ; + mkAS : A -> AS ; --% + mkA2S : A -> Prep -> A2S ; --% + mkAV : A -> Prep -> AV ; --% + mkA2V : A -> Prep -> Prep -> A2V ; --% -- Notice: categories $AS, A2S, AV, A2V$ are just $A$, -- and the second argument is given -- as an adverb. Likewise -- $V0$ is just $V$. - V0 : Type ; - AS, A2S, AV, A2V : Type ; + V0 : Type ; --% + AS, A2S, AV, A2V : Type ; --% --. diff --git a/lib/src/italian/StructuralIta.gf b/lib/src/italian/StructuralIta.gf index 08e6ca2e3..76f5eac3d 100644 --- a/lib/src/italian/StructuralIta.gf +++ b/lib/src/italian/StructuralIta.gf @@ -129,8 +129,8 @@ lin we_Pron = mkPronoun "noi" "ci" "ci" "ce" "noi" "nostro" "nostra" "nostri" "nostre" Masc Pl P1 ; - whatSg_IP = {s = \\c => prepCase c ++ ["che cosa"] ; a = aagr Fem Sg} ; - whatPl_IP = {s = \\c => prepCase c ++ ["che cose"] ; a = aagr Fem Pl} ; --- + whatSg_IP = {s = \\c => prepCase c ++ ["che"] ; a = aagr Fem Sg} ; + whatPl_IP = {s = \\c => prepCase c ++ ["che"] ; a = aagr Fem Pl} ; --- when_IAdv = ss "quando" ; when_Subj = ss "quando" ** {m = Indic} ; where_IAdv = ss "dove" ; diff --git a/lib/src/norwegian/ParadigmsNor.gf b/lib/src/norwegian/ParadigmsNor.gf index 875444a17..0fa487b00 100644 --- a/lib/src/norwegian/ParadigmsNor.gf +++ b/lib/src/norwegian/ParadigmsNor.gf @@ -41,9 +41,9 @@ resource ParadigmsNor = oper Gender : Type ; - masculine : Gender ; - feminine : Gender ; - neutrum : Gender ; + masculine : Gender ; -- the "en" gender + feminine : Gender ; -- the "ei" gender + neutrum : Gender ; -- the "et" gender -- To abstract over number names, we define the following. @@ -54,14 +54,14 @@ oper -- To abstract over case names, we define the following. - Case : Type ; + Case : Type ; --% - nominative : Case ; - genitive : Case ; + nominative : Case ; --% + genitive : Case ; --% -- Prepositions used in many-argument functions are just strings. - mkPrep : Str -> Prep ; + mkPrep : Str -> Prep ; -- e.g. "etter" noPrep : Prep ; -- empty string --2 Nouns @@ -78,10 +78,10 @@ oper -- last letter of the second form (if "n", then $utrum$, otherwise $neutrum$). mkN : overload { - mkN : Str -> N ; - mkN : Str -> Gender -> N ; - mkN : (bil,bilen : Str) -> N ; - mkN : (dreng,drengen,drenger,drengene : Str) -> N + mkN : Str -> N ; -- predictable noun, feminine for "-e" otherwise masculine + mkN : Str -> Gender -> N ; -- force gender + mkN : (bil,bilen : Str) -> N ; --% + mkN : (dreng,drengen,drenger,drengene : Str) -> N -- worst case } ; @@ -96,12 +96,12 @@ oper -- -- Relational nouns ("datter til x") need a preposition. - mkN2 : N -> Prep -> N2 ; + mkN2 : N -> Prep -> N2 ; -- e.g. datter + til -- The most common preposition is "av", and the following is a -- shortcut for regular, $nonhuman$ relational nouns with "av". - regN2 : Str -> Gender -> N2 ; + regN2 : Str -> Gender -> N2 ; --% -- Use the function $mkPrep$ or see the section on prepositions below to -- form other prepositions. @@ -109,7 +109,7 @@ oper -- Three-place relational nouns ("forbindelse fra x til y") -- need two prepositions. - mkN3 : N -> Prep -> Prep -> N3 ; + mkN3 : N -> Prep -> Prep -> N3 ; -- e.g forbindelse + fra + til --3 Relational common noun phrases @@ -127,8 +127,8 @@ oper mkPN : overload { mkPN : Str -> PN ; -- masculine - mkPN : Str -> Gender -> PN ; - mkPN : N -> PN ; + mkPN : Str -> Gender -> PN ; -- force gender + mkPN : N -> PN ; --% } ; @@ -138,15 +138,15 @@ oper -- with "ig". Two, five, or at worst five forms are sometimes needed. mkA : overload { - mkA : (fin : Str) -> A ; - mkA : (fin,fint : Str) -> A ; - mkA : (galen,galet,galne : Str) -> A ; - mkA : (stor,stort,store,storre,storst : Str) -> A ; + mkA : (fin : Str) -> A ; -- predictable adjective + mkA : (fin,fint : Str) -> A ; -- deviant neuter + mkA : (galen,galet,galne : Str) -> A ; -- also plural deviant + mkA : (stor,stort,store,storre,storst : Str) -> A ; -- worst case -- If comparison is formed by "mer", "mest", as in general for -- long adjective, the following pattern is used: - mkA : A -> A ; -- -/mer/mest norsk + mkA : A -> A ; -- comparison with mer/mest, e.g. "norsk" } ; @@ -154,7 +154,7 @@ oper -- -- Two-place adjectives need a preposition for their second argument. - mkA2 : A -> Prep -> A2 ; + mkA2 : A -> Prep -> A2 ; -- e.g. gift + med @@ -168,7 +168,7 @@ oper -- Adverbs modifying adjectives and sentences can also be formed. - mkAdA : Str -> AdA ; + mkAdA : Str -> AdA ; -- e.g. mye --2 Verbs @@ -178,26 +178,26 @@ oper -- The 'regular verb' function is the first conjugation. - mkV : (snakke : Str) -> V ; + mkV : (snakke : Str) -> V ; -- regular verb (first conjugation) -- The almost regular verb function needs the infinitive and the preteritum. - mkV : (leve,levde : Str) -> V ; + mkV : (leve,levde : Str) -> V ; -- other past tense -- There is an extensive list of irregular verbs in the module $IrregNor$. -- In practice, it is enough to give three forms, as in school books. - mkV : (drikke, drakk, drukket : Str) -> V ; + mkV : (drikke, drakk, drukket : Str) -> V ; -- theme of irregular verb -- The worst case needs six forms. - mkV : (spise,spiser,spises,spiste,spist,spis : Str) -> V ; + mkV : (spise,spiser,spises,spiste,spist,spis : Str) -> V ; -- worst case --3 Verbs with a particle. -- -- The particle, such as in "lukke opp", is given as a string. - mkV : V -> Str -> V ; + mkV : V -> Str -> V ; -- verb with particle, e.g. lukke + opp } ; @@ -206,7 +206,7 @@ oper -- -- By default, the auxiliary is "have". This function changes it to "vre". - vaereV : V -> V ; + vaereV : V -> V ; -- force "vre" as auxiliary (default "have") @@ -215,8 +215,8 @@ oper -- Some words are used in passive forms only, e.g. "trives", some as -- reflexive e.g. "forestille seg". - depV : V -> V ; - reflV : V -> V ; + depV : V -> V ; -- deponent, e.g "trives" + reflV : V -> V ; -- reflexive, e.g. "forestille seg" --3 Two-place verbs -- @@ -224,9 +224,9 @@ oper -- (transitive verbs). Notice that, if a particle is needed, it comes from the $V$. mkV2 : overload { - mkV2 : Str -> V2 ; - mkV2 : V -> V2 ; - mkV2 : V -> Prep -> V2 ; + mkV2 : Str -> V2 ; -- regular, direct object + mkV2 : V -> V2 ; -- direct object + mkV2 : V -> Prep -> V2 ; -- preposition for complement } ; @@ -244,7 +244,7 @@ oper -- Verbs and adjectives can take complements such as sentences, -- questions, verb phrases, and adjectives. - mkV0 : V -> V0 ; + mkV0 : V -> V0 ; --% mkVS : V -> VS ; mkV2S : V -> Prep -> V2S ; mkVV : V -> VV ; @@ -254,16 +254,16 @@ oper mkVQ : V -> VQ ; mkV2Q : V -> Prep -> V2Q ; - mkAS : A -> AS ; - mkA2S : A -> Prep -> A2S ; - mkAV : A -> AV ; - mkA2V : A -> Prep -> A2V ; + mkAS : A -> AS ; --% + mkA2S : A -> Prep -> A2S ; --% + mkAV : A -> AV ; --% + mkA2V : A -> Prep -> A2V ; --% -- Notice: categories $AS, A2S, AV, A2V$ are just $A$. -- $V0$ is just $V$. - V0 : Type ; - AS, A2S, AV, A2V : Type ; + V0 : Type ; --% + AS, A2S, AV, A2V : Type ; --% --. diff --git a/lib/src/romanian/ParadigmsRon.gf b/lib/src/romanian/ParadigmsRon.gf index 907f73678..ad1407dbe 100644 --- a/lib/src/romanian/ParadigmsRon.gf +++ b/lib/src/romanian/ParadigmsRon.gf @@ -64,6 +64,26 @@ noPrep : NCase -> Prep ; --2 Nouns + mkN = overload { + mkN : Str -> N -- Singular, infers gender and Plural + = mkSPN; + mkN : Str -> Str -> NGender -> N -- worst case: Singular + Plural + gender + = mkNI; + mkN : Str -> Str -> Str -> N -- very irregular nouns - feminine + = mkVI; + mkN : Str -> Str -> N -- Singular + Plural, infers gender + = mkNN; + mkN : Str -> NGender -> N -- Singular + gender, infers Plural + = regN; + } ; + +--because the plurals ending in "uri" are becoming less and less frequent for neuter nouns, +--and because there is no way of infering the plural form by looking at the structure of the word +--we treat this case separately : + +mkNR : Str -> N; +mkNR s = mkInanimate (mkNomNeut s) ** {lock_N = <>} ; + --3 Relational nouns @@ -147,6 +167,17 @@ lock_PN = <> }; +--3 Adjectives +-- +mkA = overload { + mkA : Str -> A -- regular adjectives + = regA; + mkA : Str -> Str -> Str -> Str -> Str -> A --worst case -- all 4 forms are needed + form for adverb + = mk5A ; + mkA : Str -> Str -> Str -> Str -> A -- 4 forms are needed + = mk4A; +}; + --3 Two-place adjectives @@ -168,10 +199,10 @@ lock_PN = <> mkVQ : V -> VQ ; mkV2Q : V -> Prep -> V2Q ; - mkAS : A -> AS ; - mkA2S : A -> Prep -> A2S ; - mkAV : A -> Prep -> AV ; - mkA2V : A -> Prep -> Prep -> A2V ; + mkAS : A -> AS ; --% + mkA2S : A -> Prep -> A2S ; --% + mkAV : A -> Prep -> AV ; --% + mkA2V : A -> Prep -> Prep -> A2V ; --% @@ -272,28 +303,9 @@ mkNN s ss = case s of } }; - mkN = overload { - mkN : Str -> Str -> NGender -> N = mkNI; -- worst case - we need Singular + Plural form + gender - mkN : Str -> Str -> Str -> N = mkVI; -- very irregular nouns - feminine - mkN : Str -> Str -> N = mkNN; -- needed Singular + Plural form, infers gender - mkN : Str -> NGender -> N = regN; -- needed Singular + gender, infers Plural form - mkN : Str -> N = mkSPN; -- needed Singular form, infers gender and Plural form - } ; - ---because the plurals ending in "uri" are becoming less and less frequent for neuter nouns, ---and because there is no way of infering the plural form by looking at the structure of the word ---we treat this case separately : - -mkNR : Str -> N; -mkNR s = mkInanimate (mkNomNeut s) ** {lock_N = <>} ; -------------------------------------------------------------------- -mkA = overload { - mkA : Str -> Str -> Str -> Str -> Str -> A = mk5A ;--worst case -- all 4 forms are needed + form for adverb - mkA : Str -> Str -> Str -> Str -> A = mk4A; -- 4 forms are needed - mkA : Str -> A = regA; -- regular adjectives -}; mk4A : Str -> Str -> Str -> Str -> A; mk4A a b c d = diff --git a/lib/src/russian/ParadigmsRus.gf b/lib/src/russian/ParadigmsRus.gf index 6744692a1..2ebaf4f63 100644 --- a/lib/src/russian/ParadigmsRus.gf +++ b/lib/src/russian/ParadigmsRus.gf @@ -197,9 +197,7 @@ perfective: Aspect ; -- Inherent aspect should also be specified. -- mkVerbum : Aspect -> (presentSgP1,presentSgP2,presentSgP3, - mkV : Aspect -> (presentSgP1,presentSgP2,presentSgP3, - presentPlP1,presentPlP2,presentPlP3, - pastSgMasculine,imperative,infinitive: Str) -> V ; + mkV : Aspect -> (presSg1,presSg2,presSg3,presPl1,presPl2,presPl3,pastSgMasc,imp,inf: Str) -> V ; -- Common conjugation patterns are two conjugations: -- first - verbs ending with "-ать/-ять" and second - "-ить/-еть". @@ -212,8 +210,7 @@ perfective: Aspect ; -- So the definition for verb "любить" looks like: -- regV Imperfective Second "люб" "лю" "любил" "люби" "любить"; - regV :Aspect -> Conjugation -> (stemPresentSgP1,endingPresentSgP1, - pastSgP1,imperative,infinitive : Str) -> V ; + regV :Aspect -> Conjugation -> (stemPresSg1,endPresSg1,pastSg1,imp,inf : Str) -> V ; -- Two-place verbs, and the special case with direct object. Notice that diff --git a/lib/src/spanish/ParadigmsSpa.gf b/lib/src/spanish/ParadigmsSpa.gf index f09614e4e..a9cb263c4 100644 --- a/lib/src/spanish/ParadigmsSpa.gf +++ b/lib/src/spanish/ParadigmsSpa.gf @@ -55,11 +55,11 @@ oper -- amalgamate with the following word (the 'genitive' "de" and the -- 'dative' "a"). - accusative : Prep ; - genitive : Prep ; - dative : Prep ; + accusative : Prep ; -- direct object + genitive : Prep ; -- preposition "de" and its contractions + dative : Prep ; -- preposition "a" and its contractions - mkPrep : Str -> Prep ; + mkPrep : Str -> Prep ; -- other preposition --2 Nouns @@ -74,15 +74,15 @@ oper -- those ending with "z" have "ces" in plural; all other nouns -- have "es" as plural ending. The accent is not dealt with. - mkN : (luz : Str) -> N ; + mkN : (luz : Str) -> N ; -- predictable; feminine for "-a"/"-z", otherwise masculine -- A different gender can be forced. - mkN : Str -> Gender -> N ; + mkN : Str -> Gender -> N ; -- force gender -- The worst case has two forms (singular + plural) and the gender. - mkN : (baston,bastones : Str) -> Gender -> N + mkN : (baston,bastones : Str) -> Gender -> N -- worst case } ; @@ -93,24 +93,24 @@ oper -- They could be formed in syntax, but we give a shortcut here since -- they are frequent in lexica. - compN : N -> Str -> N ; + compN : N -> Str -> N ; -- compound, e.g. "nmero" + "de telfono" --3 Relational nouns -- -- Relational nouns ("fille de x") need a case and a preposition. - mkN2 : N -> Prep -> N2 ; + mkN2 : N -> Prep -> N2 ; -- relational noun with preposition -- The most common cases are the genitive "de" and the dative "a", -- with the empty preposition. - deN2 : N -> N2 ; - aN2 : N -> N2 ; + deN2 : N -> N2 ; -- relational noun with preposition "de" + aN2 : N -> N2 ; -- relational noun with preposition "a" -- Three-place relational nouns ("la connessione di x a y") need two prepositions. - mkN3 : N -> Prep -> Prep -> N3 ; + mkN3 : N -> Prep -> Prep -> N3 ; -- prepositions for two complements --3 Relational common noun phrases @@ -127,8 +127,8 @@ oper -- The default gender is feminine for names ending with "a", otherwise masculine. mkPN : overload { - mkPN : (Anna : Str) -> PN ; - mkPN : (Pilar : Str) -> Gender -> PN + mkPN : (Anna : Str) -> PN ; -- feminine for "-a" + mkPN : (Pilar : Str) -> Gender -> PN -- force gender } ; @@ -140,17 +140,17 @@ oper -- masculine singular. The types of adjectives that are recognized are -- "alto", "fuerte", "util". Comparison is formed by "mas". - mkA : (util : Str) -> A ; + mkA : (util : Str) -> A ; -- predictable adjective -- One-place adjectives compared with "mas" need five forms in the worst -- case (masc and fem singular, masc plural, adverbial). - mkA : (solo,sola,solos,solas,solamente : Str) -> A ; + mkA : (solo,sola,solos,solas,solamente : Str) -> A ; -- worst-case -- In the worst case, two separate adjectives are given: -- the positive ("bueno"), and the comparative ("mejor"). - mkA : (bueno : A) -> (mejor : A) -> A + mkA : (bueno : A) -> (mejor : A) -> A -- special comparison (default with "mas") } ; -- The functions above create postfix adjectives. To switch @@ -158,14 +158,14 @@ oper -- modification, as in "buen vino"), the following function is -- provided. - prefixA : A -> A ; + prefixA : A -> A ; -- adjective before noun (default after noun) --3 Two-place adjectives -- -- Two-place adjectives need a preposition for their second argument. - mkA2 : A -> Prep -> A2 ; + mkA2 : A -> Prep -> A2 ; -- e.g. "casado" + dative @@ -195,28 +195,28 @@ oper -- "actuar, cazar, guiar, pagar, sacar". The module $BeschSpa$ gives -- the complete set of "Bescherelle" conjugations. - mkV : (pagar : Str) -> V ; + mkV : (pagar : Str) -> V ; -- regular in "-ar", "-er", ".ir" -- Verbs with vowel alternatition in the stem - easiest to give with -- two forms, e.g. "mostrar"/"muestro". - mkV : (mostrar,muestro : Str) -> V ; + mkV : (mostrar,muestro : Str) -> V ; -- regular with vowel alternation -- Most irreguler verbs are found in $IrregSpa$. If this is not enough, -- the module $BeschSpa$ gives all the patterns of the "Bescherelle" -- book. To use them in the category $V$, wrap them with the function - mkV : Verbum -> V + mkV : Verbum -> V -- import verb constructed with BeschSpa } ; -- To form reflexive verbs: - reflV : V -> V ; + reflV : V -> V ; -- reflexive verb -- Verbs with a deviant passive participle: just give the participle -- in masculine singular form as second argument. - special_ppV : V -> Str -> V ; + special_ppV : V -> Str -> V ; -- deviant past participle, e.g. abrir - abierto @@ -226,31 +226,31 @@ oper -- (transitive verbs). mkV2 : overload { - mkV2 : Str -> V2 ; - mkV2 : V -> V2 ; - mkV2 : V -> Prep -> V2 + mkV2 : Str -> V2 ; -- regular, direct object + mkV2 : V -> V2 ; -- direct object + mkV2 : V -> Prep -> V2 -- other object } ; -- You can reuse a $V2$ verb in $V$. - v2V : V2 -> V ; + v2V : V2 -> V ; --% --3 Three-place verbs -- -- Three-place (ditransitive) verbs need two prepositions, of which -- the first one or both can be absent. - mkV3 : V -> Prep -> Prep -> V3 ; -- hablar, a, di - dirV3 : V -> Prep -> V3 ; -- dar,(accusative),a - dirdirV3 : V -> V3 ; -- dar,(dative),(accusative) + mkV3 : V -> Prep -> Prep -> V3 ; -- e.g. hablar, a, di + dirV3 : V -> Prep -> V3 ; -- e.g. dar,(accusative),a + dirdirV3 : V -> V3 ; -- e.g. dar,(dative),(accusative) --3 Other complement patterns -- -- Verbs and adjectives can take complements such as sentences, -- questions, verb phrases, and adjectives. - mkV0 : V -> V0 ; + mkV0 : V -> V0 ; --% mkVS : V -> VS ; mkV2S : V -> Prep -> V2S ; mkVV : V -> VV ; -- plain infinitive: "quiero hablar" @@ -262,18 +262,18 @@ oper mkVQ : V -> VQ ; mkV2Q : V -> Prep -> V2Q ; - mkAS : A -> AS ; - mkA2S : A -> Prep -> A2S ; - mkAV : A -> Prep -> AV ; - mkA2V : A -> Prep -> Prep -> A2V ; + mkAS : A -> AS ; --% + mkA2S : A -> Prep -> A2S ; --% + mkAV : A -> Prep -> AV ; --% + mkA2V : A -> Prep -> Prep -> A2V ; --% -- Notice: categories $AS, A2S, AV, A2V$ are just $A$, -- and the second argument is given -- as an adverb. Likewise -- $V0$ is just $V$. - V0 : Type ; - AS, A2S, AV, A2V : Type ; + V0 : Type ; --% + AS, A2S, AV, A2V : Type ; --% --. diff --git a/lib/src/urdu/ParadigmsUrd.gf b/lib/src/urdu/ParadigmsUrd.gf index ed20030ac..47a731a63 100644 --- a/lib/src/urdu/ParadigmsUrd.gf +++ b/lib/src/urdu/ParadigmsUrd.gf @@ -49,8 +49,8 @@ oper -- Proper names - mkPN : Str -> PN = \s -> let n - = regNoun s in {s = n.s ! Sg ; g = n.g ; lock_PN = <>} ; + mkPN : Str -> PN + = \s -> let n = regNoun s in {s = n.s ! Sg ; g = n.g ; lock_PN = <>} ; personalPN : Str -> Str -> Str -> Str -> Number -> Gender -> UPerson -> Pron = \s1,s2,s3,sp,nn,g,p -> let n = mkPron s1 s2 s3 in {s = n.s ; a = toAgr nn p g ; ps = sp ; lock_Pron = <>}; demoPN : Str -> Str -> Str -> Quant
Function Type
mkPNStr -> PN = \s -> let nStr -> PN -