1
0
forked from GitHub/gf-rgl

Implemented functions NumDigits, NumNumeral, OrdDigits,OrdNumeral, OrdSuperl but with changes in Structural and CatCgg for the categories

This commit is contained in:
David Bamutura
2019-05-10 18:08:35 +02:00
parent 19870f6b38
commit e8cce483c5
4 changed files with 25 additions and 20 deletions

View File

@@ -62,9 +62,10 @@ lincat
root : Str;
morphs : Res.VFormMini => Res.VerbMorphPos =>Str --; compl : Str -- after verb: complement, adverbs
} ;
Numeral = {s : Str ; g : Res.Gender; n: Res.Number} ;
Numeral = {s : Res.CardOrd=>Res.Agreement=> Str ; g : Res.Gender; n: Res.Number} ;
Digits = {s : Res.CardOrd => Res.Agreement=>Str ; n : Res.Number ; tail : Px.DTail} ;
Ord = {s :Res.Agreement=>Str; position1:Res.Position1} ;
Card = {s :Res.Agreement=>Str; n : Res.Number} ;
--VV =
{-
--1 Cat: the Category System

View File

@@ -1,7 +1,7 @@
--# -path=.:../prelude:../abstract:../common
concrete NounCgg of Noun = CatCgg **
open ResCgg, Prelude in {
open ResCgg, Prelude, Predef in {
lin
@@ -76,7 +76,7 @@ lin
AdvNP np adv = {s= \\c => np.s ! c ++ adv.s; agr = np.agr };
--PPartNP : NP -> V2 -> NP ; -- the man seen use the Passive form of the verb see. abantu abarebirwe
PPartNP np v2 =
{s= \\c => np.s!c ++ mkSubjClitic np.agr ++ v2.s ++ Predef.BIND ++ v2.morphs!VFPastPart!RestOfVerb; agr = np.agr};
{s= \\c => np.s!c ++ mkSubjClitic np.agr ++ v2.s ++ BIND ++ v2.morphs!VFPastPart!RestOfVerb; agr = np.agr};
{-What the hell does this mean?-}
ExtAdvNP np adv = {s= \\c => np.s ! c ++ embedInCommas adv.s; agr = np.agr}; -- how do I do the adverbial clause?
@@ -88,23 +88,27 @@ lin
DetQuant quant num = {s=[]; s2 = quant.s2; ntype = Incomplete; num = num.n; pos=PreDeterminer; doesAgree = quant.doesAgree}; --
--DetQuantOrd : Quant -> Num -> Ord -> Det ; -- these five best
--DetQuantOrd quant num ord = {};
{-
Need sample quatitifiers in Runynakore. Immediate, Far, Distant. so DetQuant is commented out
-}
--DetQuant quant num = {s = quant.s ++ num.s ; ntype = Complete ; num = num.n ; pos = PostDeterminer } ;
--NumSg = {s=[]; n=Sg};
--NumPl = {s=[]; n=Pl};
NumSg = {s=[]; n=Sg};
NumPl = {s=[]; n=Pl};
-- NumCard card = {...};
--Quant = {s : Str ; s2 :Res.Agreement => Str; doesAgree : Bool} ;
IndefArt = {s=[]; s2 = \\_=>[]; doesAgree = False};
DefArt = {s=[]; s2 = \\_=>[]; doesAgree = False}; -- noun with initial vowel
--IndefArt = {s=[]};
--DefArt = {s=[]} ;
--NumDigits : Digits -> Card ; -- 51
NumDigits dig = {s = dig.s!NCard ; n=dig.n};
--NumNumeral : Numeral -> Card ; -- fifty-one
NumNumeral numeral = {s=numeral.s!NCard; n=numeral.n};
--OrdDigits : Digits -> Ord ; -- 51st
OrdDigits dig ={s=dig.s!NOrd ; position1 = Post};
--OrdNumeral : Numeral -> Ord ; -- fifty-first
OrdNumeral numeral ={s=numeral.s!NOrd; position1 = Post};
--OrdSuperl : A -> Ord ; -- warmest
--Adjective : Type = {s : Str ; position1 : Position1; isProper : Bool; isPrep: Bool};
OrdSuperl a = {s= \\c => a.s ++ "kukira" ++ (mkAdjPronIVClitic c) ++ BIND ++ "ona"; position1 = a.position1};
-- AdvCN : CN -> Adv -> CN ; -- house on the hill
--AdvCN cn adv ={s=\\ntype,num =>cn.s!ntype!num ++ adv.s!(AgP3 num cn.nc); nc=cn.nc};
{-

View File

@@ -11,7 +11,7 @@ lincat
Sub1000000 = {s : Str ; g:Gender; n : Number} ;
lin num x = x ; --Numeral = {s : Res.CardOrd => Res.Agreement => Str ; n : Res.Number} ;
lin num x = {s = \\_,_=> x.s; g=x.g; n=x.n} ; --Numeral = {s : Res.CardOrd => Res.Agreement => Str ; n : Res.Number} ;
lin n2 = mkNum "biri" "ibiri" ZERO_ZERO "abiri" I_MA True;
lin n3 = mkNum "shatu" "ishatu" I_ZERO "ashatu" I_MA True;
lin n4 = mkNum "na" "ina" I_ZERO "ana" I_MA True;

View File

@@ -133,8 +133,8 @@ here_Adv = {s = "hanu"; agr = AgrNo};
For DetQuant function to work, we need sample quatitifiers in Runynakore. Proximal, Medial, Distant
We need a table to provide all of these.
-}
that_Quant = {s =[]; s2 = mkThat; doesAgree = True}; --: Quant ;
this_Quant = {s =[]; s2 = mkThis; doesAgree = True}; --: Quant ;
that_Quant = {s=[]; s2 = mkThat; doesAgree = True}; --: Quant ;
this_Quant = {s=[]; s2 = mkThis; doesAgree = True}; --: Quant ;
these_Quant = {s =[]; s2 = mkThese; doesAgree = True};
those_Quant = {s =[]; s2 = mkThose; doesAgree = True};
no_Quant = {s ="tihariho"; s2 =\\_=> []; doesAgree = False};--: Quant ;