(Ara) Use PerGenNum in the table for RCl and RS; compiles 15sec faster

This commit is contained in:
Inari Listenmaa
2019-01-30 16:23:11 +01:00
parent 269191cf9a
commit bf0fd56960
4 changed files with 10 additions and 10 deletions

View File

@@ -13,7 +13,7 @@ concrete CatAra of Cat = CommonX - [Utt] ** open ResAra, Prelude, ParamX in {
SSlash,
S = {s : Order => Str} ; -- subordinate clause has nominal word order and subject in acc
QS = {s : QForm => Str} ;
RS = {s : Agr => Case => Str} ; -- case because the relative pronoun inflects in case
RS = {s : PerGenNum => Case => Str} ; -- case because the relative pronoun inflects in case
-- Sentence

View File

@@ -199,13 +199,13 @@ lin
RelCN cn rs = cn ** {
s2 = \\n,s,c => cn.s2 ! n ! s ! c
++ rs.s ! {pgn=Per3 cn.g n ; isPron=False} ! c ;
++ rs.s ! Per3 cn.g n ! c ;
isHeavy = True
} ;
RelNP np rs = np ** {
s = \\c => np.s ! c ++ rs.s ! np.a ! c ;
s = \\c => np.s ! c ++ rs.s ! np.a.pgn ! c ;
isHeavy = True
} ;

View File

@@ -1,5 +1,5 @@
concrete RelativeAra of Relative = CatAra **
open ResAra in {
open Prelude,ResAra in {
flags coding=utf8;
lin
@@ -13,7 +13,7 @@ concrete RelativeAra of Relative = CatAra **
s = \\t,p,agr,c =>
let
npS : Case => Str = \\_ => rp.s ! agr2ragr agr c ;
np : ResAra.NP = agrNP agr ** {s = npS} ;
np : ResAra.NP = agrNP {pgn=agr;isPron=False} ** {s = npS} ;
cl = predVP np vp ;
in
cl.s ! t ! p ! Nominal
@@ -23,7 +23,7 @@ concrete RelativeAra of Relative = CatAra **
RelSlash rp cls = cls ** {
s = \\t,p,agr,c =>
let --empty : Agr -> NP = emptyNP ;
obj : ResAra.NP = pgn2pron agr.pgn ; -- head is repeated as a clitic object pronoun
obj : ResAra.NP = pgn2pron agr ; -- head is repeated as a clitic object pronoun
cl : ResAra.Cl = complClSlash obj cls ;
in rp.s ! agr2ragr agr c ++ cl.s ! t ! p ! VOS
} ;

View File

@@ -469,7 +469,7 @@ param
| VPImp
| VPGer ;
VType = -- indicates if there is a predicate (xabar):
VType = -- indicates if there is a predicate (xabar):
Copula -- 1) disappears in equational sentences
-- 2) its argument ('xabar') is in the pred field
-- 3) it is negated with laysa
@@ -729,8 +729,8 @@ param
oper
agr2ragr = overload {
agr2ragr : Agr -> Case -> RAgr = \a,c ->
let gn = pgn2gn a.pgn in case <gn.n,gn.g,a> of {
agr2ragr : PerGenNum -> Case -> RAgr = \pgn,c ->
let gn = pgn2gn pgn in case <gn.n,gn.g,a> of {
<Sg,x> => RSg x ;
<Dl,x> => RDl x c ;
<Pl,x> => RPl x } ;
@@ -741,7 +741,7 @@ oper
Pl => RPl g }
} ;
RCl : Type = {s : Tense => Polarity => Agr => Case => Str} ;
RCl : Type = {s : Tense => Polarity => PerGenNum => Case => Str} ;
RP : Type = {s : RAgr => Str } ;
-----------------------------------------------------------------------------