mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 08:58:55 -06:00
(Ara) Use PerGenNum in the table for RCl and RS; compiles 15sec faster
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
|
||||
@@ -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 } ;
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user