From bd8550b6528bd8cea3d63625ce8d7f5229e3f711 Mon Sep 17 00:00:00 2001 From: aarneranta Date: Fri, 30 Jul 2021 10:11:21 +0200 Subject: [PATCH] Extend.CardCNCard for 5 million, 5 dozen, etc --- src/abstract/Extend.gf | 3 +++ src/common/ExtendFunctor.gf | 6 ++++++ src/english/ExtendEng.gf | 6 +++++- src/finnish/ExtendFin.gf | 3 +++ src/german/ExtendGer.gf | 10 +++++++++- 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/abstract/Extend.gf b/src/abstract/Extend.gf index e58043ef7..660169412 100644 --- a/src/abstract/Extend.gf +++ b/src/abstract/Extend.gf @@ -289,4 +289,7 @@ fun UseDAP : DAP -> NP ; cat X ; -- for words that are difficult to classify, mainly for MorphoDict +fun + CardCNCard : Card -> CN -> Card ; -- three million, four lakh, six dozen etc + } diff --git a/src/common/ExtendFunctor.gf b/src/common/ExtendFunctor.gf index 1906fa57f..98c7dba53 100644 --- a/src/common/ExtendFunctor.gf +++ b/src/common/ExtendFunctor.gf @@ -132,6 +132,12 @@ lin ExistNPQS t p np = UseQCl t p (QuestCl (ExistNP np)) ; ExistIPQS t p np = UseQCl t p (ExistIP np) ; +lincat + X = {s : Str} ; + +lin + CardCNCard = variants {} ; + oper quoted : Str -> Str = \s -> "\"" ++ s ++ "\"" ; ---- TODO bind ; move to Prelude? diff --git a/src/english/ExtendEng.gf b/src/english/ExtendEng.gf index 5149a825d..c2f240957 100644 --- a/src/english/ExtendEng.gf +++ b/src/english/ExtendEng.gf @@ -17,7 +17,8 @@ concrete ExtendEng of Extend = GerundAdv, GerundCN, GerundNP, IAdvAdv, ICompAP, InOrderToVP, NominalizeVPSlashNP, PassAgentVPSlash, PassVPSlash, ProgrVPSlash, PastPartAP, PastPartAgentAP, PositAdVAdj, PredVPSVV, PredetRNP, PrepCN, EmbedSSlash, PredIAdvVP, PresPartAP, PurposeVP, ReflPoss, ReflPron, ReflRNP, SlashBareV2S, SlashV2V, StrandQuestSlash, StrandRelSlash, - UncontractedNeg, UttAccIP, UttAccNP, UttAdV, UttDatIP, UttDatNP, UttVPShort, WithoutVP, A2VPSlash, N2VPSlash + UncontractedNeg, UttAccIP, UttAccNP, UttAdV, UttDatIP, UttDatNP, UttVPShort, WithoutVP, A2VPSlash, N2VPSlash, + CardCNCard ] with (Grammar = GrammarEng) ** @@ -467,4 +468,7 @@ lin UseDAPFem dap = { a = agrgP3 dap.n Fem } ; +lin CardCNCard card cn = + {s,sp = \\d,c => card.s ! d ! Nom ++ cn.s ! card.n ! c ; n = Pl} ; + } diff --git a/src/finnish/ExtendFin.gf b/src/finnish/ExtendFin.gf index 647b8cf3f..9cd166ff3 100644 --- a/src/finnish/ExtendFin.gf +++ b/src/finnish/ExtendFin.gf @@ -225,5 +225,8 @@ lin }) ; isPron = False ; isNeg = dap.isNeg } ; + +lin CardCNCard card cn = + {s = \\n,c => card.s ! n ! c ++ cn.s ! card.n ! NCase n c ; n = Pl} ; } diff --git a/src/german/ExtendGer.gf b/src/german/ExtendGer.gf index 244a1d7ad..d5b271334 100644 --- a/src/german/ExtendGer.gf +++ b/src/german/ExtendGer.gf @@ -6,7 +6,8 @@ concrete ExtendGer of Extend = InOrderToVP, VPS, ListVPS, VPI, ListVPI, MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, - MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV + MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV, + CardCNCard ] with (Grammar = GrammarGer) ** @@ -125,4 +126,11 @@ lin rc, ext = [] } ; +lin + CardCNCard card cn = { + s = \\g,c => + (Grammar.DetCN (Grammar.DetQuant Grammar.IndefArt (Grammar.NumCard card)) cn).s ! NPC c ; + n = Pl + } ; + }