1
0
forked from GitHub/gf-core

BronzeageAra compiles again, via minimal Syntax

This commit is contained in:
aarne
2009-03-28 20:22:07 +00:00
parent 71bb4eda8a
commit a94143ee92
9 changed files with 99 additions and 31 deletions

View File

@@ -0,0 +1,8 @@
--# -path=.:minimal:present
concrete BronzeageAra of Bronzeage = SwadeshAra **
BronzeageI
with
(Syntax = SyntaxAra) ** open ResAra,ParamX in {
}

View File

@@ -1,5 +1,5 @@
--# -path=.:present:prelude
concrete SwadeshAra of Swadesh = CatAra ** SwadeshI with
(Lang = LangAra) ;
--# -path=.:present
concrete SwadeshAra of Swadesh = SwadeshI with
(Lexicon = LexiconAra),
(Syntax = SyntaxAra) ;

View File

@@ -1657,7 +1657,7 @@ incomplete resource Constructors = open Grammar in {
DetPl : Quant -> Num -> Ord -> Det = DetQuantOrd ; --# notminimal
ComplV2 : V2 -> NP -> VP = \v,np -> ComplSlash (SlashV2a v) np ;
ComplV2A : V2A -> NP -> AP -> VP = \v,np,ap -> ComplSlash (SlashV2A v ap) np ;
ComplV2A : V2A -> NP -> AP -> VP = \v,np,ap -> ComplSlash (SlashV2A v ap) np ; --# notminimal
ComplV3 : V3 -> NP -> NP -> VP = \v,o,d -> ComplSlash (Slash3V3 v o) d ;
that_NP : NP = DetNP (DetQuant that_Quant sgNum) ; --# notminimal

View File

@@ -12,9 +12,10 @@ concrete AdjectiveAra of Adjective = CatAra ** open ResAra, Prelude in {
}
}
};
-- ComparA a np = {
-- s = \\_ => a.s ! AAdj Compar ++ "مِنْ" ++ np.s ! Gen ;
-- } ;
---- guessed by AR
ComparA a np = {
s = \\sp,g,n,st,c => a.s ! AComp st c ++ "مِنْ" ++ np.s ! Gen ;
} ;
--
-- $SuperlA$ belongs to determiner syntax in $Noun$.
--
@@ -33,10 +34,9 @@ concrete AdjectiveAra of Adjective = CatAra ** open ResAra, Prelude in {
-- isPre = False
-- } ;
--
-- AdAP ada ap = {
-- s = \\a => ada.s ++ ap.s ! a ;
-- isPre = ap.isPre
-- } ;
AdAP ada ap = {
s = \\sp,g,n,st,c => ada.s ++ ap.s ! sp ! g ! n ! st ! c
} ;
--
-- UseA2 a = a ;
--

View File

@@ -25,7 +25,7 @@ concrete CatAra of Cat = CommonX - [Utt] ** open ResAra, Prelude, ParamX in {
QCl = {s : ResAra.Tense => Polarity => QForm => Str} ;
IP = {s : Str ; n : ResAra.Number} ;
-- IAdv = {s : Str} ;
-- IDet = {s : Str ; n : ResAra.Number} ;
IDet = {s : Case => Str ; n : ResAra.Number} ; ---- AR add Case
--
---- Relative
--

View File

@@ -128,7 +128,9 @@ lin
s = numeral.s ! NCard ;
n = numeral.n
};
NumCard n = n ;
AdNum adn num = {
s = \\g,d,c => adn.s ++ num.s ! g ! d ! c ;
n = num.n } ;
@@ -164,6 +166,9 @@ lin
isNum,isPron = False
} ;
MassNP cn = ---- AR
{s = cn.s ! Sg ! Indef ; a = {pgn = Per3 cn.g Sg ; isPron = False}} ;
-- MassDet = {s = \\_,_,_,_ => [] ; d = Indef;
-- isNum = False; isPron = False} ;

View File

@@ -6,16 +6,19 @@ concrete PhraseAra of Phrase = CatAra ** open
lin
PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ! Masc ++ voc.s} ;--FIXME
-- UttS s = s ;
-- UttQS qs = {s = qs.s ! QDir} ;
UttS s = {s = \\g => s.s} ; ---- OK? AR
UttIAdv s = {s = \\g => s.s} ; ---- OK? AR
UttQS qs = {s = \\g => qs.s ! QDir} ;
UttImpSg pol imp = {s = \\g => imp.s ! pol.p ! g ! ResAra.Sg} ;
-- UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! Pl} ;
--
-- UttIP ip = {s = ip.s ! Nom} ; --- Acc also
UttIP ip = {s = \\_ => ip.s} ; ---- AR
-- UttIAdv iadv = iadv ;
-- UttNP np = {s = np.s ! Acc} ;
UttNP np = {s = \\_ => np.s ! Nom} ;
-- UttVP vp = {s = infVP False vp (agrP3 Sg)} ;
-- UttAdv adv = adv ;
UttAdv adv = {s = \\_ => adv.s} ;
--
NoPConj = {s = []} ;
-- PConjConj conj = conj ;

View File

@@ -1,4 +1,4 @@
concrete QuestionAra of Question = CatAra ** open ResAra, ParamX in {
concrete QuestionAra of Question = CatAra ** open ResAra, ParamX, Prelude in {
flags optimize=all_subs ;
@@ -13,11 +13,53 @@ concrete QuestionAra of Question = CatAra ** open ResAra, ParamX in {
};
--
-- QuestVP qp vp =
-- let cl = mkClause (qp.s ! Nom) {n = qp.n ; p = P3} vp
-- in {s = \\t,a,b,_ => cl.s ! t ! a ! b ! ODir} ;
--
-- AR copied from PredVP
QuestVP qp vp =
{ s =\\t,p,_ =>
let {
---- o = Verbal ; ---- AR
np = {s = table Case {_ => qp.s} ; a ={pgn = Per3 Masc qp.n ; isPron = False}} ;
pgn = np.a.pgn ;
gn = pgn2gn pgn;
kataba = vp.s ! pgn ! VPPerf ;
yaktubu = vp.s ! pgn ! VPImpf Ind ;
yaktuba = vp.s ! pgn ! VPImpf Cnj ;
yaktub = vp.s ! pgn ! VPImpf Jus ;
vStr : ResAra.Tense -> Polarity -> Str =
\tn,pl -> case<vp.isPred,tn,pl> of {
<False, ResAra.Pres, Pos> => yaktubu ;
<False, ResAra.Pres, Neg> => "لَا" ++ yaktubu ;
<True, ResAra.Pres, Pos> => "" ; --no verb "to be" in present
<True, ResAra.Pres, Neg> => "لَيسَ" ;--same here, just add negation particle
<_, ResAra.Past, Pos> => kataba ;
<_, ResAra.Past, Neg> => "لَمْ" ++ yaktub ;
<_, ResAra.Fut, Pos> => "سَ" ++ yaktubu ;
<_, ResAra.Fut, Neg> => "لَنْ" ++ yaktuba
};
pred : ResAra.Tense -> Polarity -> Str =
\tn,pl -> case <vp.isPred,tn,pl> of {
<True, ResAra.Pres, Pos> => vp.pred.s ! gn ! Nom; --xabar marfooc
_ => vp.pred.s ! gn ! Acc --xabar kaana wa laysa manSoob
} ;
} in
--- case o of {
---- _ =>
case <False, np.a.isPron> of {
---- AR workaround 18/12/2008 case <vp.obj.a.isPron, np.a.isPron> of {
-- ya2kuluhu
<False,True> => (vStr t p) ++ vp.obj.s ++ vp.s2 ++ (pred t p);
-- ya2kuluhu al-waladu, yakuluhu al-2awlaadu
<False,False> => (vStr t p) ++ np.s ! Nom ++ vp.obj.s ++ vp.s2 ++ (pred t p);
<True,False> => (vStr t p) ++ vp.obj.s ++ np.s ! Nom ++ vp.s2 ++ (pred t p);
<True,True> => (vStr t p) ++ vp.obj.s ++ vp.s2 ++ (pred t p)
};
---- Nominal =>
---- np.s ! Nom ++ (vStr t p) ++ vp.obj.s ++ vp.s2 ++ (pred t p)
}
; ---- };
-- QuestSlash ip slash = {
-- s = \\t,a,p =>
-- let
@@ -29,7 +71,10 @@ concrete QuestionAra of Question = CatAra ** open ResAra, ParamX in {
-- }
-- } ;
--
-- QuestIAdv iadv cl = {
---- AR guessed
QuestIAdv iadv cl = {s = \\t,p,_ => iadv.s ++ cl.s ! t ! p ! Verbal} ;
-- s = \\t,a,p =>
-- let
-- cls = cl.s ! t ! a ! p ;
@@ -47,9 +92,15 @@ concrete QuestionAra of Question = CatAra ** open ResAra, ParamX in {
-- n = ip.n
-- } ;
--
-- IDetCN idet num ord cn = {
-- s = \\c => idet.s ++ num.s ++ ord.s ++ cn.s ! idet.n ! c ;
-- n = idet.n
-- } ;
---- AR guesses
IdetCN idet cn = {
s = idet.s ! Nom ++ cn.s ! idet.n ! Indef ! Nom ;
n = idet.n
} ;
IdetQuant idet num = {
s = \\c => idet.s ++ num.s ! Masc ! Indef ! c;
n = ResAra.Sg ---- size of Num
} ;
--
}

View File

@@ -6,6 +6,7 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra in {
UseV = predV ;
SlashV2a v = predV v ** {c2 = v.c2};
Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2};
ComplSlash vp np = insertObj np vp ;
@@ -38,7 +39,7 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra in {
--
CompAP ap = {s = \\agr,c => ap.s ! Hum ! agr.g ! agr.n ! Indef ! c} ; --FIXME
CompNP np = {s = \\_,c => np.s ! c};
-- CompAdv a = {s = \\_ => a.s} ;
CompAdv a = {s = \\_,_ => a.s} ;
--
--
}