forked from GitHub/gf-rgl
@@ -48,7 +48,9 @@ concrete AdjectiveSom of Adjective = CatSom ** open ResSom, Prelude in {
|
|||||||
-- phrases, although the semantics is only clear for some adjectives.
|
-- phrases, although the semantics is only clear for some adjectives.
|
||||||
|
|
||||||
-- : AP -> SC -> AP ; -- good that she is here
|
-- : AP -> SC -> AP ; -- good that she is here
|
||||||
-- SentAP ap sc = ap ** { } ;
|
SentAP ap sc = ap ** {
|
||||||
|
s = \\af => ap.s ! af ++ sc.s -- TODO check
|
||||||
|
} ;
|
||||||
|
|
||||||
-- An adjectival phrase can be modified by an *adadjective*, such as "very".
|
-- An adjectival phrase can be modified by an *adadjective*, such as "very".
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
--# -path=.:../common:../abstract
|
--# -path=.:../common:../abstract
|
||||||
|
|
||||||
concrete ExtendSom of Extend = CatSom
|
concrete ExtendSom of Extend = CatSom
|
||||||
-- ** ExtendFunctor -- Add this back when all relevant functions are implemented
|
** ExtendFunctor - [GenModNP, FocusObj, ComplDirectVS, ComplDirectVQ]
|
||||||
-- with (Grammar=GrammarSom)
|
with (Grammar=GrammarSom)
|
||||||
** open Prelude, ResSom in {
|
** open Prelude, ResSom, NounSom in {
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
|
-- : Num -> NP -> CN -> NP ; -- this man's car(s)
|
||||||
|
GenModNP num np cn = DetCN (DetQuant IndefArt num) (genModCN cn np) ;
|
||||||
|
|
||||||
-- : NP -> SSlash -> Utt ; -- her I love -- Saeed p. 189-
|
-- : NP -> SSlash -> Utt ; -- her I love -- Saeed p. 189-
|
||||||
FocusObj np sslash = -- FIXME: preposition disappears in negative sentences
|
FocusObj np sslash = {s = sslash.s ! False ++ objpron np ! Abs} ;
|
||||||
let ss = sslash.s ! False ;
|
|
||||||
ssSub = sslash.s ! True ; -- the negative particle is the same as subordinate, but verb forms come from main clause
|
|
||||||
obj = objpron np ! Abs ;
|
|
||||||
in {s = ssSub.beforeSTM ++ "waxa" ++ ssSub.stm ++ ss.afterSTM ++ obj} ;
|
|
||||||
|
|
||||||
-- FocusAdv : Adv -> S -> Utt ; -- today I will sleep
|
-- FocusAdv : Adv -> S -> Utt ; -- today I will sleep
|
||||||
-- FocusAdV : AdV -> S -> Utt ; -- never will I sleep
|
-- FocusAdV : AdV -> S -> Utt ; -- never will I sleep
|
||||||
|
|||||||
@@ -1,27 +1,26 @@
|
|||||||
|
|
||||||
--1 Idiom: Idiomatic Expressions
|
--1 Idiom: Idiomatic Expressions
|
||||||
|
|
||||||
concrete IdiomSom of Idiom = CatSom ** open Prelude, ResSom, VerbSom in {
|
concrete IdiomSom of Idiom = CatSom ** open Prelude, ResSom, VerbSom, NounSom, StructuralSom in {
|
||||||
|
|
||||||
-- This module defines constructions that are formed in fixed ways,
|
-- This module defines constructions that are formed in fixed ways,
|
||||||
-- often different even in closely related languages.
|
-- often different even in closely related languages.
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
-- : VP -> Cl ; -- it is hot
|
-- ImpersCl : VP -> Cl ; -- it is hot
|
||||||
--ImpersCl = ;
|
-- GenericCl : VP -> Cl ; -- one sleeps
|
||||||
|
ImpersCl,
|
||||||
-- : VP -> Cl ; -- one sleeps
|
GenericCl = \vp -> predVP impersNP (passVP vp) ;
|
||||||
GenericCl vp = predVP impersNP (passVP vp) ;
|
|
||||||
|
|
||||||
{-
|
{-
|
||||||
CleftNP : NP -> RS -> Cl ; -- it is I who did it
|
CleftNP : NP -> RS -> Cl ; -- it is I who did it
|
||||||
CleftAdv : Adv -> S -> Cl ; -- it is here she slept
|
CleftAdv : Adv -> S -> Cl ; -- it is here she slept
|
||||||
-}
|
-}
|
||||||
-- : NP -> Cl ; -- there is a house
|
-- : NP -> Cl ; -- there is a house
|
||||||
-- ExistNP np =
|
ExistNP np =
|
||||||
-- let vp = UseComp (CompNP np)
|
let vp = UseComp (CompNP np)
|
||||||
-- in ;
|
in predVP impersNP vp ;
|
||||||
|
|
||||||
{- ExistIP : IP -> QCl ; -- which houses are there
|
{- ExistIP : IP -> QCl ; -- which houses are there
|
||||||
|
|
||||||
|
|||||||
@@ -21,43 +21,28 @@ oper AdvSlash : ClSlash -> Adv -> ClSlash = notYet "AdvSlash" ;
|
|||||||
oper ApposCN : CN -> NP -> CN = notYet "ApposCN" ;
|
oper ApposCN : CN -> NP -> CN = notYet "ApposCN" ;
|
||||||
oper BaseAP : AP -> AP -> ListAP = notYet "BaseAP" ;
|
oper BaseAP : AP -> AP -> ListAP = notYet "BaseAP" ;
|
||||||
oper BaseAdV : AdV -> AdV -> ListAdV = notYet "BaseAdV" ;
|
oper BaseAdV : AdV -> AdV -> ListAdV = notYet "BaseAdV" ;
|
||||||
oper BaseAdv : Adv -> Adv -> ListAdv = notYet "BaseAdv" ;
|
|
||||||
oper BaseCN : CN -> CN -> ListCN = notYet "BaseCN" ;
|
oper BaseCN : CN -> CN -> ListCN = notYet "BaseCN" ;
|
||||||
oper BaseIAdv : IAdv -> IAdv -> ListIAdv = notYet "BaseIAdv" ;
|
oper BaseIAdv : IAdv -> IAdv -> ListIAdv = notYet "BaseIAdv" ;
|
||||||
oper BaseNP : NP -> NP -> ListNP = notYet "BaseNP" ;
|
|
||||||
oper BaseRS : RS -> RS -> ListRS = notYet "BaseRS" ;
|
|
||||||
oper BaseS : S -> S -> ListS = notYet "BaseS" ;
|
oper BaseS : S -> S -> ListS = notYet "BaseS" ;
|
||||||
oper CAdvAP : CAdv -> AP -> NP -> AP = notYet "CAdvAP" ;
|
oper CAdvAP : CAdv -> AP -> NP -> AP = notYet "CAdvAP" ;
|
||||||
oper CleftAdv : Adv -> S -> Cl = notYet "CleftAdv" ;
|
oper CleftAdv : Adv -> S -> Cl = notYet "CleftAdv" ;
|
||||||
oper CleftNP : NP -> RS -> Cl = notYet "CleftNP" ;
|
oper CleftNP : NP -> RS -> Cl = notYet "CleftNP" ;
|
||||||
oper CompAdv : Adv -> Comp = notYet "CompAdv" ;
|
|
||||||
oper CompIAdv : IAdv -> IComp = notYet "CompIAdv" ;
|
|
||||||
oper CompIP : IP -> IComp = notYet "CompIP" ;
|
|
||||||
oper ComparA : A -> NP -> AP = notYet "ComparA" ;
|
|
||||||
oper ComparAdvAdj : CAdv -> A -> NP -> Adv = notYet "ComparAdvAdj" ;
|
oper ComparAdvAdj : CAdv -> A -> NP -> Adv = notYet "ComparAdvAdj" ;
|
||||||
oper ComparAdvAdjS : CAdv -> A -> S -> Adv = notYet "ComparAdvAdjS" ;
|
oper ComparAdvAdjS : CAdv -> A -> S -> Adv = notYet "ComparAdvAdjS" ;
|
||||||
oper ComplA2 : A2 -> NP -> AP = notYet "ComplA2" ;
|
oper ComplA2 : A2 -> NP -> AP = notYet "ComplA2" ;
|
||||||
oper ComplN3 : N3 -> NP -> N2 = notYet "ComplN3" ;
|
oper ComplN3 : N3 -> NP -> N2 = notYet "ComplN3" ;
|
||||||
oper ComplSlashIP : VPSlash -> IP -> QVP = notYet "ComplSlashIP" ;
|
oper ComplSlashIP : VPSlash -> IP -> QVP = notYet "ComplSlashIP" ;
|
||||||
oper ComplVA : VA -> AP -> VP = notYet "ComplVA" ;
|
|
||||||
oper ComplVQ : VQ -> QS -> VP = notYet "ComplVQ" ;
|
oper ComplVQ : VQ -> QS -> VP = notYet "ComplVQ" ;
|
||||||
oper ComplVS : VS -> S -> VP = notYet "ComplVS" ;
|
|
||||||
oper ConjAP : Conj -> ListAP -> AP = notYet "ConjAP" ;
|
oper ConjAP : Conj -> ListAP -> AP = notYet "ConjAP" ;
|
||||||
oper ConjAdV : Conj -> ListAdV -> AdV = notYet "ConjAdV" ;
|
oper ConjAdV : Conj -> ListAdV -> AdV = notYet "ConjAdV" ;
|
||||||
oper ConjAdv : Conj -> ListAdv -> Adv = notYet "ConjAdv" ;
|
|
||||||
oper ConjCN : Conj -> ListCN -> CN = notYet "ConjCN" ;
|
oper ConjCN : Conj -> ListCN -> CN = notYet "ConjCN" ;
|
||||||
oper ConjDet : Conj -> ListDAP -> Det = notYet "ConjDet" ;
|
oper ConjDet : Conj -> ListDAP -> Det = notYet "ConjDet" ;
|
||||||
oper ConjIAdv : Conj -> ListIAdv -> IAdv = notYet "ConjIAdv" ;
|
oper ConjIAdv : Conj -> ListIAdv -> IAdv = notYet "ConjIAdv" ;
|
||||||
oper ConjNP : Conj -> ListNP -> NP = notYet "ConjNP" ;
|
|
||||||
oper ConjRS : Conj -> ListRS -> RS = notYet "ConjRS" ;
|
|
||||||
oper ConjS : Conj -> ListS -> S = notYet "ConjS" ;
|
oper ConjS : Conj -> ListS -> S = notYet "ConjS" ;
|
||||||
oper ConsAP : AP -> ListAP -> ListAP = notYet "ConsAP" ;
|
oper ConsAP : AP -> ListAP -> ListAP = notYet "ConsAP" ;
|
||||||
oper ConsAdV : AdV -> ListAdV -> ListAdV = notYet "ConsAdV" ;
|
oper ConsAdV : AdV -> ListAdV -> ListAdV = notYet "ConsAdV" ;
|
||||||
oper ConsAdv : Adv -> ListAdv -> ListAdv = notYet "ConsAdv" ;
|
|
||||||
oper ConsCN : CN -> ListCN -> ListCN = notYet "ConsCN" ;
|
oper ConsCN : CN -> ListCN -> ListCN = notYet "ConsCN" ;
|
||||||
oper ConsIAdv : IAdv -> ListIAdv -> ListIAdv = notYet "ConsIAdv" ;
|
oper ConsIAdv : IAdv -> ListIAdv -> ListIAdv = notYet "ConsIAdv" ;
|
||||||
oper ConsNP : NP -> ListNP -> ListNP = notYet "ConsNP" ;
|
|
||||||
oper ConsRS : RS -> ListRS -> ListRS = notYet "ConsRS" ;
|
|
||||||
oper ConsS : S -> ListS -> ListS = notYet "ConsS" ;
|
oper ConsS : S -> ListS -> ListS = notYet "ConsS" ;
|
||||||
oper CountNP : Det -> NP -> NP = notYet "CountNP" ;
|
oper CountNP : Det -> NP -> NP = notYet "CountNP" ;
|
||||||
oper DefArt : Quant = notYet "DefArt" ;
|
oper DefArt : Quant = notYet "DefArt" ;
|
||||||
@@ -68,23 +53,16 @@ oper DetNP : Det -> NP = notYet "DetNP" ;
|
|||||||
oper DetQuant : Quant -> Num -> Det = notYet "DetQuant" ;
|
oper DetQuant : Quant -> Num -> Det = notYet "DetQuant" ;
|
||||||
oper DetQuantOrd : Quant -> Num -> Ord -> Det = notYet "DetQuantOrd" ;
|
oper DetQuantOrd : Quant -> Num -> Ord -> Det = notYet "DetQuantOrd" ;
|
||||||
oper EmbedQS : QS -> SC = notYet "EmbedQS" ;
|
oper EmbedQS : QS -> SC = notYet "EmbedQS" ;
|
||||||
oper EmbedS : S -> SC = notYet "EmbedS" ;
|
|
||||||
oper EmbedVP : VP -> SC = notYet "EmbedVP" ;
|
|
||||||
oper ExistIP : IP -> QCl = notYet "ExistIP" ;
|
oper ExistIP : IP -> QCl = notYet "ExistIP" ;
|
||||||
oper ExistIPAdv : IP -> Adv -> QCl = notYet "ExistIPAdv" ;
|
oper ExistIPAdv : IP -> Adv -> QCl = notYet "ExistIPAdv" ;
|
||||||
oper ExistNP : NP -> Cl = notYet "ExistNP" ;
|
|
||||||
oper ExistNPAdv : NP -> Adv -> Cl = notYet "ExistNPAdv" ;
|
oper ExistNPAdv : NP -> Adv -> Cl = notYet "ExistNPAdv" ;
|
||||||
oper ExtAdvS : Adv -> S -> S = notYet "ExtAdvS" ;
|
oper ExtAdvS : Adv -> S -> S = notYet "ExtAdvS" ;
|
||||||
oper ExtAdvVP : VP -> Adv -> VP = notYet "ExtAdvVP" ;
|
oper ExtAdvVP : VP -> Adv -> VP = notYet "ExtAdvVP" ;
|
||||||
oper FunRP : Prep -> NP -> RP -> RP = notYet "FunRP" ;
|
oper FunRP : Prep -> NP -> RP -> RP = notYet "FunRP" ;
|
||||||
oper GenericCl : VP -> Cl = notYet "GenericCl" ;
|
|
||||||
oper IdRP : RP = notYet "IdRP" ;
|
oper IdRP : RP = notYet "IdRP" ;
|
||||||
oper IdetIP : IDet -> IP = notYet "IdetIP" ;
|
oper IdetIP : IDet -> IP = notYet "IdetIP" ;
|
||||||
oper IdetQuant : IQuant -> Num -> IDet = notYet "IdetQuant" ;
|
|
||||||
oper ImpP3 : NP -> VP -> Utt = notYet "ImpP3" ;
|
oper ImpP3 : NP -> VP -> Utt = notYet "ImpP3" ;
|
||||||
oper ImpPl1 : VP -> Utt = notYet "ImpPl1" ;
|
oper ImpPl1 : VP -> Utt = notYet "ImpPl1" ;
|
||||||
oper ImpVP : VP -> Imp = notYet "ImpVP" ;
|
|
||||||
oper ImpersCl : VP -> Cl = notYet "ImpersCl" ;
|
|
||||||
oper NumCard : Card -> Num = notYet "NumCard" ;
|
oper NumCard : Card -> Num = notYet "NumCard" ;
|
||||||
oper NumDigits : Digits -> Card = notYet "NumDigits" ;
|
oper NumDigits : Digits -> Card = notYet "NumDigits" ;
|
||||||
oper NumNumeral : Numeral -> Card = notYet "NumNumeral" ;
|
oper NumNumeral : Numeral -> Card = notYet "NumNumeral" ;
|
||||||
@@ -102,21 +80,10 @@ oper PossPron : Pron -> Quant = notYet "PossPron" ;
|
|||||||
oper PredSCVP : SC -> VP -> Cl = notYet "PredSCVP" ;
|
oper PredSCVP : SC -> VP -> Cl = notYet "PredSCVP" ;
|
||||||
oper PredetNP : Predet -> NP -> NP = notYet "PredetNP" ;
|
oper PredetNP : Predet -> NP -> NP = notYet "PredetNP" ;
|
||||||
oper PrepIP : Prep -> IP -> IAdv = notYet "PrepIP" ;
|
oper PrepIP : Prep -> IP -> IAdv = notYet "PrepIP" ;
|
||||||
oper ProgrVP : VP -> VP = notYet "ProgrVP" ;
|
|
||||||
oper QuestCl : Cl -> QCl = notYet "QuestCl" ;
|
|
||||||
oper QuestIAdv : IAdv -> Cl -> QCl = notYet "QuestIAdv" ;
|
|
||||||
oper QuestIComp : IComp -> NP -> QCl = notYet "QuestIComp" ;
|
|
||||||
oper QuestQVP : IP -> QVP -> QCl = notYet "QuestQVP" ;
|
oper QuestQVP : IP -> QVP -> QCl = notYet "QuestQVP" ;
|
||||||
oper QuestSlash : IP -> ClSlash -> QCl = notYet "QuestSlash" ;
|
|
||||||
oper QuestVP : IP -> VP -> QCl = notYet "QuestVP" ;
|
|
||||||
oper ReflA2 : A2 -> AP = notYet "ReflA2" ;
|
oper ReflA2 : A2 -> AP = notYet "ReflA2" ;
|
||||||
oper RelCN : CN -> RS -> CN = notYet "RelCN" ;
|
|
||||||
oper RelCl : Cl -> RCl = notYet "RelCl" ;
|
oper RelCl : Cl -> RCl = notYet "RelCl" ;
|
||||||
oper RelNP : NP -> RS -> NP = notYet "RelNP" ;
|
|
||||||
oper RelS : S -> RS -> S = notYet "RelS" ;
|
oper RelS : S -> RS -> S = notYet "RelS" ;
|
||||||
oper RelSlash : RP -> ClSlash -> RCl = notYet "RelSlash" ;
|
|
||||||
oper RelVP : RP -> VP -> RCl = notYet "RelVP" ;
|
|
||||||
oper SSubjS : S -> Subj -> S -> S = notYet "SSubjS" ;
|
|
||||||
oper SelfAdVVP : VP -> VP = notYet "SelfAdVVP" ;
|
oper SelfAdVVP : VP -> VP = notYet "SelfAdVVP" ;
|
||||||
oper SelfAdvVP : VP -> VP = notYet "SelfAdvVP" ;
|
oper SelfAdvVP : VP -> VP = notYet "SelfAdvVP" ;
|
||||||
oper SelfNP : NP -> NP = notYet "SelfNP" ;
|
oper SelfNP : NP -> NP = notYet "SelfNP" ;
|
||||||
@@ -125,10 +92,8 @@ oper SentCN : CN -> SC -> CN = notYet "SentCN" ;
|
|||||||
oper SlashPrep : Cl -> Prep -> ClSlash = notYet "SlashPrep" ;
|
oper SlashPrep : Cl -> Prep -> ClSlash = notYet "SlashPrep" ;
|
||||||
oper SlashV2A : V2A -> AP -> VPSlash = notYet "SlashV2A" ;
|
oper SlashV2A : V2A -> AP -> VPSlash = notYet "SlashV2A" ;
|
||||||
oper SlashV2Q : V2Q -> QS -> VPSlash = notYet "SlashV2Q" ;
|
oper SlashV2Q : V2Q -> QS -> VPSlash = notYet "SlashV2Q" ;
|
||||||
oper SlashV2S : V2S -> S -> VPSlash = notYet "SlashV2S" ;
|
|
||||||
oper SlashV2V : V2V -> VP -> VPSlash = notYet "SlashV2V" ;
|
oper SlashV2V : V2V -> VP -> VPSlash = notYet "SlashV2V" ;
|
||||||
oper SlashV2VNP : V2V -> NP -> VPSlash -> VPSlash = notYet "SlashV2VNP" ;
|
oper SlashV2VNP : V2V -> NP -> VPSlash -> VPSlash = notYet "SlashV2VNP" ;
|
||||||
oper SlashVP : NP -> VPSlash -> ClSlash = notYet "SlashVP" ;
|
|
||||||
oper SlashVS : NP -> VS -> SSlash -> ClSlash = notYet "SlashVS" ;
|
oper SlashVS : NP -> VS -> SSlash -> ClSlash = notYet "SlashVS" ;
|
||||||
oper SlashVV : VV -> VPSlash -> VPSlash = notYet "SlashVV" ;
|
oper SlashVV : VV -> VPSlash -> VPSlash = notYet "SlashVV" ;
|
||||||
oper SubjS : Subj -> S -> Adv = notYet "SubjS" ;
|
oper SubjS : Subj -> S -> Adv = notYet "SubjS" ;
|
||||||
|
|||||||
@@ -226,21 +226,7 @@ concrete NounSom of Noun = CatSom ** open ResSom, Prelude in {
|
|||||||
UseN,UseN2 = ResSom.useN ;
|
UseN,UseN2 = ResSom.useN ;
|
||||||
|
|
||||||
-- : N2 -> NP -> CN ; -- Sahra hooyadeed
|
-- : N2 -> NP -> CN ; -- Sahra hooyadeed
|
||||||
ComplN2 n2 np = let cn = useN n2 in cn ** {s = \\nf =>
|
ComplN2 n2 np = genModCN (useN n2) np ;
|
||||||
let num = case nf of {
|
|
||||||
Def n => n ;
|
|
||||||
Indef n => n ;
|
|
||||||
_ => Sg } ;
|
|
||||||
art = gda2da cn.gda ! num ;
|
|
||||||
qnt = PossPron (pronTable ! np.a) ;
|
|
||||||
det = case cn.shortPoss of {
|
|
||||||
True => qnt.shortPoss ! art ;
|
|
||||||
_ => qnt.s ! sg n2.gda ! Abs } ;
|
|
||||||
noun = case np.isPron of {
|
|
||||||
True => (pronTable ! np.a).sp ! Abs ; -- long subject pronoun
|
|
||||||
False => np.s ! Abs }
|
|
||||||
in noun ++ cn.s ! Def num ++ BIND ++ det ;
|
|
||||||
isPoss = True} ;
|
|
||||||
|
|
||||||
{-
|
{-
|
||||||
-- : N3 -> NP -> N2 ; -- distance from this city (to Paris)
|
-- : N3 -> NP -> N2 ; -- distance from this city (to Paris)
|
||||||
@@ -346,4 +332,22 @@ oper
|
|||||||
<Definite,AMod|OtherMod> => "ee" ;
|
<Definite,AMod|OtherMod> => "ee" ;
|
||||||
_ => []
|
_ => []
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
genModCN : CN -> NP -> CN = \cn,np -> cn ** {
|
||||||
|
s = \\nf =>
|
||||||
|
let num = case nf of {
|
||||||
|
Def n => n ;
|
||||||
|
Indef n => n ;
|
||||||
|
_ => Sg } ;
|
||||||
|
art = gda2da cn.gda ! num ;
|
||||||
|
qnt = PossPron (pronTable ! np.a) ;
|
||||||
|
det = case cn.shortPoss of {
|
||||||
|
True => qnt.shortPoss ! art ;
|
||||||
|
_ => qnt.s ! sg cn.gda ! Abs } ;
|
||||||
|
noun = case np.isPron of {
|
||||||
|
True => (pronTable ! np.a).sp ! Abs ; -- long subject pronoun
|
||||||
|
False => np.s ! Abs }
|
||||||
|
in noun ++ cn.s ! Def num ++ BIND ++ det ;
|
||||||
|
isPoss = True} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,11 @@ lin
|
|||||||
-}
|
-}
|
||||||
-- : Temp -> Pol -> ClSlash -> SSlash ; -- (that) she had not seen
|
-- : Temp -> Pol -> ClSlash -> SSlash ; -- (that) she had not seen
|
||||||
UseSlash t p cls = {
|
UseSlash t p cls = {
|
||||||
s = \\isSubord => let cl = cl2sentence isSubord cls in
|
s = \\isSubord =>
|
||||||
|
let cls' : ClSlash = cls ** {
|
||||||
|
stm = modSTM "waxa" "waxa aan" cls.stm -- Saeed p. 195
|
||||||
|
} ;
|
||||||
|
cl : Clause = cl2sentence isSubord cls' in
|
||||||
t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p
|
t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -38,19 +42,17 @@ lin
|
|||||||
|
|
||||||
--2 Embedded sentences
|
--2 Embedded sentences
|
||||||
|
|
||||||
{-
|
|
||||||
-- : S -> SC ;
|
-- : S -> SC ;
|
||||||
EmbedS s = { } ;
|
EmbedS s = {s = s.s ! True} ; -- choose subordinate
|
||||||
|
|
||||||
-- : QS -> SC ;
|
-- : QS -> SC ;
|
||||||
EmbedQS qs = { } ;
|
-- EmbedQS qs = { } ;
|
||||||
|
|
||||||
-- : VP -> SC ;
|
-- : VP -> SC ;
|
||||||
EmbedVP vp = { s = linVP vp } ;
|
EmbedVP vp = {s = infVP vp} ;
|
||||||
|
|
||||||
--2 Sentences
|
--2 Sentences
|
||||||
|
|
||||||
-}
|
|
||||||
-- : Temp -> Pol -> Cl -> S ;
|
-- : Temp -> Pol -> Cl -> S ;
|
||||||
UseCl t p cls = {
|
UseCl t p cls = {
|
||||||
s = \\isSubord => let cl = cl2sentence isSubord cls in
|
s = \\isSubord => let cl = cl2sentence isSubord cls in
|
||||||
|
|||||||
Reference in New Issue
Block a user