forked from GitHub/gf-core
82 lines
2.0 KiB
Plaintext
82 lines
2.0 KiB
Plaintext
incomplete concrete ChunkFunctor of Chunk = Cat, Extensions [VPS,VPI] **
|
|
open
|
|
Syntax, Extensions,
|
|
Prelude in {
|
|
|
|
lincat
|
|
Chunks = {s : Str} ;
|
|
Chunk = {s : Str};
|
|
|
|
VC = V ;
|
|
|
|
lin
|
|
OneChunk c = c ;
|
|
PlusChunk c cs = cc2 c cs ;
|
|
|
|
ChunkPhr c = ss ("*" ++ c.s) | c ;
|
|
|
|
lin
|
|
AP_Chunk ap = mkUtt ap ;
|
|
AdA_Chunk ada = ada ;
|
|
Adv_Chunk adv = adv ;
|
|
AdV_Chunk adv = adv ;
|
|
AdN_Chunk adn = adn ;
|
|
S_Chunk s = mkUtt s ;
|
|
SSlash_Chunk s = mkUtt <lin S s : S> ;
|
|
QS_Chunk qs = mkUtt qs ;
|
|
CN_Pl_Chunk cn = mkUtt (Syntax.mkNP aPl_Det cn) ;
|
|
CN_Sg_Chunk cn = mkUtt cn ;
|
|
---- CN_Pl_Gen_Chunk cn = ss (cn.s ! Pl ! Gen) ;
|
|
---- CN_Sg_Gen_Chunk cn = ss (cn.s ! Sg ! Gen) ;
|
|
Conj_Chunk conj = ss conj.s2 ; ----
|
|
IAdv_Chunk iadv = iadv ;
|
|
IP_Chunk ip = mkUtt ip ;
|
|
NP_Nom_Chunk np = mkUtt np ;
|
|
---- NP_Acc_Chunk np = ss (np.s ! NPAcc) ;
|
|
---- NP_Gen_Chunk np = ss (np.s ! NCase Gen) | ss (np.s ! NPNomPoss) ;
|
|
Numeral_Nom_Chunk num = mkUtt (Syntax.mkNP (Syntax.mkDet num)) ;
|
|
---- Numeral_Gen_Chunk num = ss (num.s ! NCard ! Gen) ;
|
|
---- Ord_Nom_Chunk ord = ss (ord.s ! Nom) ;
|
|
---- Ord_Gen_Chunk ord = ss (ord.s ! Gen) ;
|
|
Predet_Chunk predet = mkUtt (Syntax.mkNP predet emptyNP) ;
|
|
Prep_Chunk prep = mkAdv prep emptyNP ; ----
|
|
---- RP_Nom_Chunk rp = ss (rp.s ! RC Neutr (NCase Nom)) ;
|
|
---- RP_Acc_Chunk rp = ss (rp.s ! RPrep Masc) ; ----
|
|
---- RP_Gen_Chunk rp = ss (rp.s ! RC Neutr (NCase Gen)) ;
|
|
Subj_Chunk subj = subj ;
|
|
PConj_Chunk pconj = pconj ;
|
|
|
|
VPS_Chunk vps = mkUtt (E.PredVPS emptyNP vps) ;
|
|
-- VPI_Chunk : VPI -> Chunk ;
|
|
|
|
|
|
V2_V,
|
|
VA_V,
|
|
VQ_V,
|
|
VS_V,
|
|
---- VV_V,
|
|
V3_V,
|
|
V2A_V,
|
|
V2Q_V,
|
|
V2S_V,
|
|
V2V_V
|
|
= \v -> <lin V v : V> ;
|
|
|
|
UseVC t p vc = E.MkVPS t p (mkVP vc) ;
|
|
|
|
|
|
fullstop_Chunk = ss "." ;
|
|
exclmark_Chunk = ss "!" ;
|
|
questmark_Chunk = ss "?" ;
|
|
comma_Chunk = ss "," ;
|
|
colon_Chunk = ss ":" ;
|
|
semicolon_Chunk = ss ";" ;
|
|
quote_Chunk = ss "\"" ;
|
|
lpar_Chunk = ss "(" ;
|
|
rpar_Chunk = ss ")" ;
|
|
dash_Chunk = ss "-" ;
|
|
|
|
oper
|
|
emptyNP : NP = mkNP (P.mkPN []) ;
|
|
|
|
} |