Correction of all compilation mistatkes

This commit is contained in:
David Bamutura
2019-05-03 16:43:17 +02:00
parent 023930e37a
commit b18ffa9d0b
6 changed files with 80 additions and 26 deletions

View File

@@ -14,13 +14,12 @@ lincat
--Temp = {s : Str ; isPres : Bool} ; --Temp = {s : Str ; isPres : Bool} ;
--cat --cat
Imp = {s : Bool => Str} ; Imp = {s : Bool => Str} ;
QS = {s : Str} ; QS = {s : Str} ;
-- Note: SS is a shorthand for {s:Str}, defined in Prelude.gf -- Note: SS is a shorthand for {s:Str}, defined in Prelude.gf
-- You must change some of the lincats (e.g., for NP, Det and Pron) so that everything works -- You must change some of the lincats (e.g., for NP, Det and Pron) so that everything works
S = SS ; -- declarative sentence e.g. "she lived here" S = SS ; -- declarative sentence e.g. "she lived here"
Cl = Res.Clause ; -- declarative clause, with all tenses e.g. "she looks at this" Cl, QCl = Res.Clause ; -- declarative clause, with all tenses e.g. "she looks at this"
V = Res.Verb ; --change to {verb : Str ; comp = []} -- one-place verb e.g. "sleep" V = Res.Verb ; --change to {verb : Str ; comp = []} -- one-place verb e.g. "sleep"
VP = Res.VerbPhrase ; -- verb phrase e.g. "is very warm" VP = Res.VerbPhrase ; -- verb phrase e.g. "is very warm"

View File

@@ -73,11 +73,11 @@ lin
}; };
--AdvNP : NP -> Adv -> NP ; -- Paris today --AdvNP : NP -> Adv -> NP ; -- Paris today
AdvNP np adv = {s= table{ Nom => np.s!Nom ++ adv.s; Acc => np.s !Acc ++ adv.s}; agr = np.agr }; 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
{-What the hell does this mean?-} {-What the hell does this mean?-}
--ExtAdvNP: NP -> Adv -> NP ; -- boys, such as .. ExtAdvNP np adv = {s= \\c => np.s ! c ++ embedInCommas adv.s; agr = np.agr}; -- how do I do the adverbial clause?
-- Determiner: Type = {s:Str; ntype:NounType; num:Number; pos:Position}; -- type for Determier necessary for catCgg.gf -- Determiner: Type = {s:Str; ntype:NounType; num:Number; pos:Position}; -- type for Determier necessary for catCgg.gf
{- {-
Need sample quatitifiers in Runynakore. Immediate, Far, Distant. so DetQuant is commented out Need sample quatitifiers in Runynakore. Immediate, Far, Distant. so DetQuant is commented out

View File

@@ -15,9 +15,9 @@ lin
UttNP np = {s= np.s!Acc}; --: NP -> Utt ; UttNP np = {s= np.s!Acc}; --: NP -> Utt ;
UttAdv adv = {s = adv.s}; --: Adv -> Utt ; -- in the house UttAdv adv = {s = adv.s}; --: Adv -> Utt ; -- in the house
UttImpSg pol imp = {s = UttImpSg pol imp = {s =
case pol.isTrue of { case pol.p of {
True => imp.s!True; Pos => imp.s!True;
False => (mkSubjClitic (AgMUBAP2 Sg)) ++ imp.s!False Neg => (mkSubjClitic (AgMUBAP2 Sg)) ++ imp.s!False
} }
};--: Pol -> Imp -> Utt ; -- (do not) walk ----s };--: Pol -> Imp -> Utt ; -- (do not) walk ----s
{- {-

View File

@@ -442,6 +442,40 @@ oper
}; };
-- TThis is for demonstrative pronouns which can also be use as Quantifiers
-- How can it be done without code repeation?
mkThisTheseQuantorDem :Agreement -> Str = \a -> case a of {
AgMUBAP1 n => mkClitics "ogu" "aba" n;
--AgMUBAP1 Pl => "aba" ;
AgMUBAP2 n => mkClitics "ogu" "aba" n; --probably an error check your grammar book
--AgMUBAP2 Pl => "aba" ;
AgP3 n MU_BA => mkClitics "ogu" "aba" n;
--AgP3 Pl MU_BA => "aba" ;
AgP3 Pl ZERO_BU => mkClitic "obu" ;
AgP3 Sg BU_MA => mkClitic "bwo" ;
AgP3 Pl (KA_BU | RU_BU) => mkClitic "bwo" ;
AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "byo" ;
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "go";
AgP3 (Sg | Pl) HA => mkClitic "ho" ; -- of place HA
AgP3 (Sg | Pl) MU => mkClitic "mwo" ; -- of place MU
AgP3 (Sg | Pl) KU => mkClitic "yo" ; -- of place KU
AgP3 Sg (I_ZERO | I_MA | RI_MA) =>mkClitic "ryo" ;
AgP3 Sg (KA_ZERO | KA_BU) =>mkClitic "ko" ;
AgP3 Sg KI_BI => mkClitic "kyo" ;
AgP3 Sg (KU_ZERO | KU_MA) => mkClitic "kwo" ;
AgP3 Sg (MU_MI | MU_ZERO) => mkClitic "gwo" ;
AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => mkClitic "rwo" ;
AgP3 Pl (ZERO_TU | KA_TU) =>mkClitic "two" ;
AgP3 Sg (ZERO_ZERO | N_N) =>mkClitic "yo" ;
AgP3 Pl ZERO_MI =>mkClitic "yo" ;
AgP3 Pl MU_MI => mkClitic "yo";
AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) =>mkClitic "zo" ;
AgP3 Sg GU_GA => mkClitic "gwo" ;
AgP3 Pl GU_GA => mkClitic "go" ;
_ => mkClitic "XXXThis_That" -- error checking for any case not catered for
};
-- Adjectival Prefixes without initial vowel with the semantics for adjectives used in Imperative negative form -- Adjectival Prefixes without initial vowel with the semantics for adjectives used in Imperative negative form
mkAdjPronNoIVClitic : Agreement -> Str = \a -> case a of { mkAdjPronNoIVClitic : Agreement -> Str = \a -> case a of {
AgMUBAP1 n => mkClitics "mu" "ba" n; AgMUBAP1 n => mkClitics "mu" "ba" n;
@@ -768,8 +802,25 @@ oper
VPSlash : Type = {s:Str; morphs: VMorphs; comp: Str}; VPSlash : Type = {s:Str; morphs: VMorphs; comp: Str};
Clause : Type = { {-
s : Tense => Anteriority => Polarity => Str -- Clause is a combination of a Subject, Verb and Object(s)
-- i.e. Subj, verb with polarity and temp features and verb complement
-- which is the Objects, NPs PPs APs etc.
-}
Clause : Type = { -- word order is fixed in S and QS
subj : Str ;
subjAgr : Agreement;
root : Str;
morphs : VFormMini => VerbMorphPos =>Str;
{-
inf : Str;
pres : Str;
past : Str;
presPart : Str;
pastPart : Str; -- subject
--root : Str ; -- dep. on Pol,Temp, e.g. "does","sleep"
-}
compl : Str -- after verb: complement, adverbs
} ; } ;
Comp : Type = {s:Str}; Comp : Type = {s:Str};

View File

@@ -13,23 +13,23 @@ lin
UseCl temp pol cl = let UseCl temp pol cl = let
subj = cl.subj; subj = cl.subj;
clitic = mkSubjClitic cl.subjAgr; clitic = mkSubjClitic cl.subjAgr;
simul = cl.morphs ! Pres; --this is not delivering the string simul = cl.morphs ! VFPres; --this is not delivering the string
ant = cl.morphs ! PastPart; --this is not delivering the string ant = cl.morphs ! VFPastPart; --this is not delivering the string
root = cl.root; root = cl.root;
presRestOfVerb = cl.morphs ! Pres ! RestOfVerb; presRestOfVerb = cl.morphs ! VFPres ! RestOfVerb;
pastRestOfVerb = cl.morphs ! PastPart ! RestOfVerb; pastRestOfVerb = cl.morphs ! VFPastPart ! RestOfVerb;
compl = cl.compl compl = cl.compl
in in
case <temp.isPres, pol.isTrue> of { case <temp.a, pol.p> of {
<True, True> => {s = subj ++ clitic ++ --Predef.BIND ++ <Simul, Pos> => {s = subj ++ clitic ++ --Predef.BIND ++
root ++ Predef.BIND ++ presRestOfVerb ++ compl}; root ++ Predef.BIND ++ presRestOfVerb ++ compl};
{-Note: when I use pol.s instead of ti, the word alignment instead becomes worse-} {-Note: when I use pol.s instead of ti, the word alignment instead becomes worse-}
<True, False> => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ --Predef.BIND ++ <Simul, Neg> => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ --Predef.BIND ++
root ++ presRestOfVerb ++ compl}; root ++ presRestOfVerb ++ compl};
<False, True> => {s = subj ++ clitic ++ --Predef.BIND ++ <Anter, Pos> => {s = subj ++ clitic ++ --Predef.BIND ++
ant!TAMarker ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}; ant!TAMarker ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
<False, False> =>{s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ --Predef.BIND ++ <Anter, Neg> =>{s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ --Predef.BIND ++
ant!TAMarker ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl} ant!TAMarker ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
}; --: Temp -> Pol -> QCl -> QS ; -- has John walked }; --: Temp -> Pol -> QCl -> QS ; -- has John walked
@@ -74,12 +74,12 @@ PredVP np vp = case vp.isCompApStem of{
-} -}
ImpVP vp = { ImpVP vp = {
s =table{ s =table{
True=> vp.s ++ Predef.BIND ++ vp.morphs!Inf!RestOfVerb ++ vp.comp; True=> vp.s ++ Predef.BIND ++ vp.morphs!VFInf!RestOfVerb ++ vp.comp;
False => case vp.isCompApStem of { -- How do I make the number dynamic use case? False => case vp.isCompApStem of { -- How do I make the number dynamic use case?
True =>vp.morphs!Pres!SecNegM ++ Predef.BIND ++ vp.s ++ Predef.BIND ++ True =>vp.morphs!VFPres!SecNegM ++ Predef.BIND ++ vp.s ++ Predef.BIND ++
vp.morphs!Inf!RestOfVerb ++ (mkAdjPronNoIVClitic (AgMUBAP2 Sg)) ++ vp.comp; vp.morphs!VFInf!RestOfVerb ++ (mkAdjPronNoIVClitic (AgMUBAP2 Sg)) ++ vp.comp;
False => vp.morphs!Pres!SecNegM ++ Predef.BIND ++ vp.s ++ Predef.BIND ++ False => vp.morphs!VFPres!SecNegM ++ Predef.BIND ++ vp.s ++ Predef.BIND ++
vp.morphs!Inf!RestOfVerb ++ vp.comp vp.morphs!VFInf!RestOfVerb ++ vp.comp
} }
} }
}; --: VP -> Imp ; -- walk / do not walk }; --: VP -> Imp ; -- walk / do not walk

View File

@@ -118,6 +118,10 @@ everywhere_Adv = {s = "hóòna"; agr = AgrNo}; -- adverb of place.
here_Adv = {s = "hanu"; agr = AgrNo}; here_Adv = {s = "hanu"; agr = AgrNo};
{-End of Adverbs Adverbs-} {-End of Adverbs Adverbs-}
{-Begining of Quantifiers-}
{-End of Quantifiers-}
{-variants {-variants
NOTE: Please add them to the abstract syntax, ask aarne NOTE: Please add them to the abstract syntax, ask aarne
or creat you own abstract Lexicon which inherits from the or creat you own abstract Lexicon which inherits from the