(Som) Minor cleanup + better comments

This commit is contained in:
Inari Listenmaa
2019-09-13 19:13:20 +02:00
parent d061595a2a
commit a23881f2dc
2 changed files with 26 additions and 42 deletions

View File

@@ -10,27 +10,22 @@ concrete QuestionSom of Question = CatSom ** open
-- : IP -> VP -> QCl ;
QuestVP ip vp = -- TODO: if we want to contract baa + subj. pronoun, change ResSom.predVP
let clRaw : ClSlash = predVP ip vp ;
cl : ClSlash = clRaw ** {
stm = \\clt,p => case <clt,p> of {
<_,Pos> => "baa" ;
_ => clRaw.stm ! clt ! p }
}
let cls : ClSlash = predVP ip vp ;
cl : ClSlash = cls ** {
stm = modSTM "baa" cls.stm
} ;
in cl2qcl (notB ip.contractSTM) cl ;
-- : IP -> ClSlash -> QCl ; -- whom does John love
QuestSlash ip cls =
let clsIPFocus = cls ** {
subj = cls.subj ** { -- place IP first in the sentence,
noun = ip.s ! Nom -- keep old subject pronoun.
subj = cls.subj ** { -- keep old subject pronoun,
noun = ip.s ! Nom -- and place IP first.
} ;
obj2 = cls.obj2 ** { -- move old subject noun before object.
s = cls.subj.noun ++ cls.obj2.s
s = cls.subj.noun ++ cls.obj2.s
} ;
stm : ClType=>Polarity=>Str =
\\clt,p => case <clt,p> of {
<_,Pos> => "baa" ;
_ => cls.stm ! clt ! p }
stm = modSTM "baa" cls.stm
} ;
in cl2qclslash (notB ip.contractSTM) clsIPFocus ;

View File

@@ -877,15 +877,7 @@ oper
_ => predRaw -- Any other verb
} ;
stm = \\cltyp,pol =>
case <cltyp,pol> of {
<Statement,Pos> => showSTM vp.stm ;
<Statement,Neg> => "ma" ;
<Question,Pos> => "ma" ;
<Question,Neg> => "sow" ;
<Subord,Pos> => [] ;
<Subord,Neg> => "aan"
} ;
stm = mkStm vp.stm ;
comp = vp.comp ! subj.a ;
vComp = vp.vComp ** {
subcl = vp.vComp.subcl ! subj.a
@@ -1062,28 +1054,25 @@ oper
infVP : VerbPhrase -> Str = linVP VInf Statement ;
waaContr : Agreement => Polarity => Str = \\a,b =>
let stm = if_then_Pol b "w" "m"
in stm + subjpron ! a ;
STMarker : Type = ClType => Polarity => Str ;
waaNoContr : Agreement => Polarity => {p1,p2 : Str} = \\a,p =>
case p of {
Pos => {p1 = "waa" ; p2 = subjpron ! a} ;
Neg => {p1 = "ma" ; p2 = []} } ;
waxaNoContr : Agreement => Polarity => {p1,p2 : Str} = \\a,p =>
case p of {
Pos => {p1 = "waxa" ; p2 = subjpron ! a} ;
Neg => {p1 = "ma" ; p2 = []} } ; -- TODO: find out how to properly negate waxa clauses!
subjpron : Agreement => Str = table {
Sg1|Pl1 Excl => "aan" ;
Pl1 Incl => "aynu" ;
Sg2|Pl2 => "aad" ;
Sg3 Masc => "uu" ;
Impers => [] ;
_ => "ay" } ;
mkStm : STM -> STMarker = \stm ->
\\cltyp,pol =>
case <cltyp,pol> of {
<Statement,Pos> => showSTM stm ;
<Statement,Neg> => "ma" ;
<Question,Pos> => "ma" ;
<Question,Neg> => "sow" ;
<Subord,Pos> => [] ;
<Subord,Neg> => "aan"
} ;
modSTM : Str -> STMarker -> STMarker = \str,stm ->
\\cltyp,pol =>
case <cltyp,pol> of {
<_,Pos> => str ;
_ => stm ! cltyp ! pol
} ;
--------------------------------------------------------------------------------
-- linrefs