mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-25 18:58:56 -06:00
resource fixes
This commit is contained in:
@@ -28,10 +28,11 @@ fun
|
|||||||
|
|
||||||
--3 Special forms of expression
|
--3 Special forms of expression
|
||||||
|
|
||||||
-- These expression forms are typical of mathematical texts.
|
-- This expression form is typical of mathematical texts.
|
||||||
|
-- It is realized with different constructs in different languages, typically
|
||||||
|
-- some kind of 3rd person imperative of the verb "be".
|
||||||
|
|
||||||
LetCN : String -> CN -> Imp ; -- Let x be a number.
|
LetImp : NP -> NP -> Imp ; -- let x be a number
|
||||||
LetNumCN : SymbList -> Num -> CN -> Imp ; -- Let x and y be (2) numbers.
|
|
||||||
|
|
||||||
-- This rule is slightly overgenerating: "there exists every number x".
|
-- This rule is slightly overgenerating: "there exists every number x".
|
||||||
-- The problem seems to be of semantic nature. By this we avoid having many rules.
|
-- The problem seems to be of semantic nature. By this we avoid having many rules.
|
||||||
|
|||||||
@@ -24,13 +24,7 @@ lin
|
|||||||
SymbTwo = infixSS "and" ;
|
SymbTwo = infixSS "and" ;
|
||||||
SymbMore = infixSS "," ;
|
SymbMore = infixSS "," ;
|
||||||
|
|
||||||
|
LetImp x np = {s = \\_ => "let" ++ x.s ! NomP ++ "be" ++ np.s ! NomP} ;
|
||||||
LetCN x cn = {
|
|
||||||
s = \\_ => "let" ++ x.s ++ "be" ++ (indefNounPhrase singular cn).s ! NomP
|
|
||||||
} ;
|
|
||||||
LetNumCN x nu cn = {
|
|
||||||
s = \\_ => "let" ++ x.s ++ "be" ++ (indefNounPhraseNum plural nu cn).s ! NomP
|
|
||||||
} ;
|
|
||||||
ExistNP np = predVerbClause
|
ExistNP np = predVerbClause
|
||||||
(nameNounPhraseN (fromAgr np.a).n (nameReg "there" Neutr))
|
(nameNounPhraseN (fromAgr np.a).n (nameReg "there" Neutr))
|
||||||
(regV "exist")
|
(regV "exist")
|
||||||
|
|||||||
@@ -1195,7 +1195,7 @@ oper
|
|||||||
questClause : Clause -> Question = \cl ->
|
questClause : Clause -> Question = \cl ->
|
||||||
{s = \\b,c => table {
|
{s = \\b,c => table {
|
||||||
DirQ => cl.s ! Inv ! b ! c ;
|
DirQ => cl.s ! Inv ! b ! c ;
|
||||||
IndirQ => cl.s ! Dir ! b ! c
|
IndirQ => "if" ++ cl.s ! Dir ! b ! c
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
{- --vg
|
{- --vg
|
||||||
|
|||||||
@@ -148,16 +148,18 @@ concrete ClauseFin of Clause = CategoriesFin **
|
|||||||
) ;
|
) ;
|
||||||
|
|
||||||
-- QPredProgVP
|
-- QPredProgVP
|
||||||
|
-}
|
||||||
QPredAP subj adj =
|
QPredAP subj adj =
|
||||||
sats2quest (mkSatsCopula (intNounPhrase subj) (adj.s ! AF subj.g subj.n)) ;
|
sats2quest (mkSatsCopula (intNounPhrase subj) (complAdjPhrase subj.n adj)) ;
|
||||||
QPredCN subj cn =
|
QPredCN subj cn =
|
||||||
sats2quest (mkSatsCopula (intNounPhrase subj) (indefNoun subj.n cn)) ;
|
sats2quest (mkSatsCopula (intNounPhrase subj) (complCommNoun subj.n cn)) ;
|
||||||
QPredNP subj np =
|
QPredNP subj np =
|
||||||
sats2quest (mkSatsCopula (intNounPhrase subj) (np.s ! stressed nominative)) ;
|
sats2quest (mkSatsCopula (intNounPhrase subj) (np.s ! NPCase Nom)) ;
|
||||||
QPredAdv subj adv =
|
QPredAdv subj adv =
|
||||||
sats2quest (mkSatsCopula (intNounPhrase subj) adv.s) ;
|
sats2quest (mkSatsCopula (intNounPhrase subj) adv.s) ;
|
||||||
|
|
||||||
|
{-
|
||||||
|
|
||||||
QPredProgVP np vp = sats2quest (progressiveSats (intNounPhrase np) vp) ;
|
QPredProgVP np vp = sats2quest (progressiveSats (intNounPhrase np) vp) ;
|
||||||
-}
|
-}
|
||||||
|
|
||||||
@@ -176,9 +178,20 @@ concrete ClauseFin of Clause = CategoriesFin **
|
|||||||
RPredAdv subj adv =
|
RPredAdv subj adv =
|
||||||
sats2rel (mkSatsCopulaRel subj adv.s) ;
|
sats2rel (mkSatsCopulaRel subj adv.s) ;
|
||||||
|
|
||||||
|
IPredV v =
|
||||||
|
mkClauseInf v ;
|
||||||
|
IPredV2 verb y =
|
||||||
|
insertObjectInf (mkClauseInf verb) verb.c verb.s3 verb.p y ;
|
||||||
|
IPredV3 verb y z =
|
||||||
|
insertObjectInf
|
||||||
|
(insertObjectInf (mkClauseInf verb) verb.c verb.s3 verb.p y)
|
||||||
|
verb.c2 verb.s5 verb.p2 z ;
|
||||||
|
IPredVS verb sent =
|
||||||
|
insertComplementInf (mkClauseInf verb) sent.s ;
|
||||||
|
IPredVQ verb quest =
|
||||||
|
insertComplementInf (mkClauseInf verb) quest.s ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
IPredV a v =
|
|
||||||
sats2verbPhrase a (mkSats pronImpers v) ;
|
|
||||||
IPredV2 a v y =
|
IPredV2 a v y =
|
||||||
sats2verbPhrase a (mkSatsObject pronImpers v y) ;
|
sats2verbPhrase a (mkSatsObject pronImpers v y) ;
|
||||||
IPredAP a adj =
|
IPredAP a adj =
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
concrete MathFin of Math = CategoriesFin ** open Prelude, SyntaxFin, ParadigmsFin in {
|
concrete MathFin of Math = CategoriesFin ** open Prelude, SyntaxFin, ParadigmsFin in {
|
||||||
|
|
||||||
lin
|
lin
|
||||||
SymbPN i = {s = \\c => i.s} ; --- case endings often needed
|
SymbPN i = symbProperName i.s ; --- case ending not always correct
|
||||||
IntPN i = {s = \\c => i.s} ;
|
IntPN i = symbProperName i.s ; --- case ending not always correct
|
||||||
IntNP cn i = nameNounPhrase {
|
IntNP cn i = nameNounPhrase { -- here the CN gets the (correct) ending
|
||||||
s = \\c => cn.s ! False ! Sg ! c ++ i.s
|
s = \\c => cn.s ! False ! Sg ! c ++ i.s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -23,14 +23,9 @@ lin
|
|||||||
SymbTwo = infixSS "ja" ;
|
SymbTwo = infixSS "ja" ;
|
||||||
SymbMore = infixSS "," ;
|
SymbMore = infixSS "," ;
|
||||||
|
|
||||||
|
LetImp x np = {
|
||||||
LetCN x cn = {
|
s = \\_ =>
|
||||||
s = \\_ => "olkoon" ++ x.s ++ (indefNounPhrase singular cn).s !
|
verbOlla.s ! ImperP3 x.n ++ x.s ! NPCase Nom ++ np.s ! NPCase Nom
|
||||||
NPCase Nom
|
|
||||||
} ;
|
|
||||||
LetNumCN x nu cn = {
|
|
||||||
s = \\_ => "olkoot" ++ x.s ++ (nounPhraseNum False nu cn).s
|
|
||||||
! NPCase Part
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ExistNP np =
|
ExistNP np =
|
||||||
|
|||||||
@@ -699,6 +699,33 @@ vowelHarmony : Str -> Str = \liitin ->
|
|||||||
mkProperName : CommonNoun -> ProperName = \jussi ->
|
mkProperName : CommonNoun -> ProperName = \jussi ->
|
||||||
{s = \\c => jussi.s ! NCase Sg c} ;
|
{s = \\c => jussi.s ! NCase Sg c} ;
|
||||||
|
|
||||||
|
-- An ending given to a symbol cannot really be decided
|
||||||
|
-- independently. The string $a$ gives the vowel harmony.
|
||||||
|
-- Only some South-West dialects have the generally valid
|
||||||
|
-- Illative form.
|
||||||
|
|
||||||
|
caseEnding : Str -> Case -> Str = \a,c -> case c of {
|
||||||
|
Nom => [] ;
|
||||||
|
Gen => "n" ;
|
||||||
|
Part => a ; ---
|
||||||
|
Transl => "ksi" ;
|
||||||
|
Ess => "n" + a ;
|
||||||
|
Iness => "ss" + a ;
|
||||||
|
Elat => "st" + a ;
|
||||||
|
Illat => "sse" ; ---
|
||||||
|
Adess => "ll" + a ;
|
||||||
|
Ablat => "lt" + a ;
|
||||||
|
Allat => "lle" ;
|
||||||
|
Abess => "tt" + a
|
||||||
|
} ;
|
||||||
|
|
||||||
|
symbProperName : Str -> ProperName = \x ->
|
||||||
|
{s = table {
|
||||||
|
Nom => x ;
|
||||||
|
c => glue x (":" + caseEnding "a" c)
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
--2 Pronouns
|
--2 Pronouns
|
||||||
--
|
--
|
||||||
-- Here we define personal and relative pronouns.
|
-- Here we define personal and relative pronouns.
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ lin
|
|||||||
ImperOne = imperUtterance singular ;
|
ImperOne = imperUtterance singular ;
|
||||||
ImperMany = imperUtterance plural ;
|
ImperMany = imperUtterance plural ;
|
||||||
|
|
||||||
---- AdvCl = advClause ;
|
AdvCl cl adv = insertComplement cl adv.s ;
|
||||||
---- AdvVPI = advVerbPhrase ;
|
---- AdvVPI = advVerbPhrase ;
|
||||||
|
|
||||||
AdCPhr = advSentence ;
|
AdCPhr = advSentence ;
|
||||||
|
|||||||
@@ -532,77 +532,8 @@ oper
|
|||||||
Sats : Type = Clause ;
|
Sats : Type = Clause ;
|
||||||
sats2clause : Sats -> Clause = \sats -> sats ;
|
sats2clause : Sats -> Clause = \sats -> sats ;
|
||||||
|
|
||||||
----
|
|
||||||
{-
|
|
||||||
Clause : Type = {s,s2 : Bool => SForm => Str ; s1 : Str} ;
|
|
||||||
|
|
||||||
Sats : Type = {v : Bool => SForm => Str => {fin,inf : Str} ; s1 : Str} ;
|
|
||||||
sats2clause : Sats -> Clause = \sats -> {
|
|
||||||
s = \\b,sf => (sats.v ! b ! sf).fin ;
|
|
||||||
s2 = \\b,sf => (sats.v ! b ! sf).inf ;
|
|
||||||
s1 = sats.s1
|
|
||||||
}
|
|
||||||
-}
|
|
||||||
----
|
|
||||||
{-
|
|
||||||
Sats : Type = {
|
|
||||||
subj : Str ;
|
|
||||||
pred : Bool => SForm => {
|
|
||||||
fin : Str ;
|
|
||||||
inf : Str
|
|
||||||
} ;
|
|
||||||
obj : Bool => SVIForm => Str ;
|
|
||||||
comp : Str
|
|
||||||
} ;
|
|
||||||
|
|
||||||
sats2clause : Sats -> Clause = \sats ->
|
|
||||||
let
|
|
||||||
subj = sats.subj ;
|
|
||||||
pred = sats.pred ;
|
|
||||||
in
|
|
||||||
{s = subj ;
|
|
||||||
s1 = \\b,sf => (pred ! b ! sf).fin ;
|
|
||||||
s2 = \\b,sf => (pred ! b ! sf).inf ++ sats.obj ! b ! (SCl sf) ;
|
|
||||||
s3 = sats.comp
|
|
||||||
} ;
|
|
||||||
|
|
||||||
sats2verbClause : {s : Str ; a : Anteriority} -> Sats -> VerbPhraseInf = \a,sats ->
|
|
||||||
{s = \\b,vi =>
|
|
||||||
let
|
|
||||||
inf = sats.vpi.s ! b ! vi ;
|
|
||||||
obj = sats.obj ! b ! (SVI vi) ;
|
|
||||||
comp = sats.comp
|
|
||||||
in
|
|
||||||
a.s ++ inf ++ obj ++ comp ;
|
|
||||||
sc = sats.vpi.sc
|
|
||||||
} ;
|
|
||||||
-}
|
|
||||||
|
|
||||||
questPart : Str -> Str = \s -> glueParticle s "ko" ; --- "kö"
|
questPart : Str -> Str = \s -> glueParticle s "ko" ; --- "kö"
|
||||||
|
|
||||||
{-
|
|
||||||
mkSats : NounPhrase -> Verb1 -> Sats = \subj,verb -> {s =
|
|
||||||
\\st,b,sf =>
|
|
||||||
let
|
|
||||||
sc = verb.sc ;
|
|
||||||
np = case sc of {
|
|
||||||
Nom => <subj.n, np2Person subj.p> ;
|
|
||||||
_ => <Sg, P3>
|
|
||||||
} ;
|
|
||||||
su = subj.s ! NPCase sc ;
|
|
||||||
|
|
||||||
vi = inflectVerb verb np.p1 np.p2 b sf ;
|
|
||||||
inf = vi.inf ;
|
|
||||||
fin = vi.fin ;
|
|
||||||
|
|
||||||
in case st of {
|
|
||||||
SQuest => questPart fin ++ su ++ inf ;
|
|
||||||
_ => su ++ fin ++ inf
|
|
||||||
}
|
|
||||||
} ;
|
|
||||||
-}
|
|
||||||
----
|
|
||||||
|
|
||||||
|
|
||||||
-- This is for questions with $IP$, thus with normal word order and no "ko".
|
-- This is for questions with $IP$, thus with normal word order and no "ko".
|
||||||
|
|
||||||
@@ -664,41 +595,6 @@ oper
|
|||||||
fininf ! nsu ! psu
|
fininf ! nsu ! psu
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
{- ----
|
|
||||||
mkSats : NounPhrase -> Verb1 -> Sats = \subj,verb ->
|
|
||||||
let
|
|
||||||
sc = verb.sc ;
|
|
||||||
np = case sc of {
|
|
||||||
Nom => <subj.n, np2Person subj.p> ;
|
|
||||||
_ => <Sg, P3>
|
|
||||||
} ;
|
|
||||||
vi = inflectVerb verb np.p1 np.p2
|
|
||||||
in
|
|
||||||
{subj = subj.s ! NPCase sc ; -- "minusta tulee poliisi"
|
|
||||||
pred = \\b,sf => vi b (SCl sf) ;
|
|
||||||
obj = \\_,_ => [] ;
|
|
||||||
comp = []
|
|
||||||
} ;
|
|
||||||
|
|
||||||
progressiveSats : NounPhrase -> VerbPhraseInf -> Sats = \subj,vp ->
|
|
||||||
let
|
|
||||||
np = case vp.sc of {
|
|
||||||
Nom => <subj.n, np2Person subj.p> ;
|
|
||||||
_ => <Sg, P3>
|
|
||||||
} ;
|
|
||||||
vi = inflectVerb verbOlla np.p1 np.p2
|
|
||||||
in
|
|
||||||
{subj = subj.s ! NPCase vp.sc ; -- "minusta on tulossa poliisi"
|
|
||||||
pred = \\b,sf => vi b (SCl sf) ;
|
|
||||||
obj = \\_,_ => [] ;
|
|
||||||
comp = vp.s ! True ! VIInf3Iness ;
|
|
||||||
vpi = \\b => {
|
|
||||||
s = \\f => let vv = vi b (SVI f) in vv.fin ++ vv.inf ;
|
|
||||||
sc = Nom
|
|
||||||
}
|
|
||||||
} ;
|
|
||||||
-}
|
|
||||||
mkSatsObject : NounPhrase -> TransVerb -> NounPhrase -> Sats = \subj,verb,obj ->
|
mkSatsObject : NounPhrase -> TransVerb -> NounPhrase -> Sats = \subj,verb,obj ->
|
||||||
insertObject (mkSats subj verb) verb.c verb.s3 verb.p obj ;
|
insertObject (mkSats subj verb) verb.c verb.s3 verb.p obj ;
|
||||||
mkSatsObjectRel : RelPron -> TransVerb -> NounPhrase -> Number -> Sats =
|
mkSatsObjectRel : RelPron -> TransVerb -> NounPhrase -> Number -> Sats =
|
||||||
@@ -724,27 +620,53 @@ oper
|
|||||||
comp
|
comp
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
{-
|
|
||||||
insertObject : Sats -> ComplCase -> Str -> Bool -> NounPhrase -> Sats =
|
|
||||||
\sats, c, prep, pos, obj ->
|
|
||||||
{subj = sats.subj ;
|
|
||||||
pred = \\b,sf =>
|
|
||||||
let spred = sats.pred ! b ! sf in
|
|
||||||
{fin = spred.fin ;
|
|
||||||
inf = spred.inf
|
|
||||||
} ;
|
|
||||||
obj = \\b,f => sats.obj ! b ! f ++ pPosit prep pos (obj.s ! complCase b c f) ;
|
|
||||||
comp = sats.comp
|
|
||||||
} ;
|
|
||||||
|
|
||||||
insertComplement : Sats -> Str -> Sats =
|
-- This is for infinitive clauses, $VCl$.
|
||||||
\sats, comp ->
|
|
||||||
{subj = sats.subj ;
|
mkClauseInf : Verb1 -> VerbClauseInf = \verb -> {
|
||||||
pred = sats.pred ;
|
s = \\b,ant,i,n =>
|
||||||
obj = sats.obj ;
|
let
|
||||||
comp = sats.comp ++ comp
|
part = verb.s ! PastPartAct (AN (NCase n Nom)) ;
|
||||||
|
vi = case i of {
|
||||||
|
VIInfinit => Inf ;
|
||||||
|
VIImperat => Imper n ;
|
||||||
|
VIInf3Iness => Inf3Iness ;
|
||||||
|
VIInf3Elat => Inf3Elat ;
|
||||||
|
VIInf3Illat => Inf3Illat ;
|
||||||
|
VIInf3Adess => Inf3Adess ;
|
||||||
|
VIInf3Abess => Inf3Abess
|
||||||
|
}
|
||||||
|
in
|
||||||
|
case <b,ant,i,n> of {
|
||||||
|
<False,Simul,VIImperat,Sg> => "älä" ++ verb.s ! Imper Sg ;
|
||||||
|
<False,Simul,VIImperat,Pl> => "älkää" ++ verb.s ! ImpNegPl ;
|
||||||
|
<True, Simul,_,_> => verb.s ! vi ;
|
||||||
|
<False,Simul,_,_> => verbOlla.s ! vi ++ verb.s ! Inf3Abess ;
|
||||||
|
|
||||||
|
<False,Anter,VIImperat,Sg> => "älä" ++ "ole" ++ part ;
|
||||||
|
<False,Anter,VIImperat,Pl> => "älkää" ++ "olko" ++ part ;
|
||||||
|
<True, Anter,_,_> => verbOlla.s ! vi ++ part ;
|
||||||
|
<False,Anter,_,_> => verbOlla.s ! vi ++ "olematta" ++ part
|
||||||
} ;
|
} ;
|
||||||
-}
|
sc = verb.sc
|
||||||
|
} ;
|
||||||
|
|
||||||
|
insertObjectInf :
|
||||||
|
VerbClauseInf -> ComplCase -> Str -> Bool -> NounPhrase -> VerbClauseInf =
|
||||||
|
\sats, c, prep, pos, obj -> {s =
|
||||||
|
\\b,a,i,n =>
|
||||||
|
sats.s ! b ! a ! i ! n ++
|
||||||
|
pPosit prep pos (obj.s ! complCase b c (SVI i)) ;
|
||||||
|
sc = sats.sc
|
||||||
|
} ;
|
||||||
|
|
||||||
|
insertComplementInf : VerbClauseInf -> Str -> VerbClauseInf =
|
||||||
|
\sats, comp -> {s =
|
||||||
|
\\b,a,i,n =>
|
||||||
|
sats.s ! b ! a ! i ! n ++
|
||||||
|
comp ;
|
||||||
|
sc = sats.sc
|
||||||
|
} ;
|
||||||
|
|
||||||
complCase : Bool -> ComplCase -> SVIForm -> NPForm = \b,c,v -> case c of {
|
complCase : Bool -> ComplCase -> SVIForm -> NPForm = \b,c,v -> case c of {
|
||||||
CCase k => case <k,b> of {
|
CCase k => case <k,b> of {
|
||||||
@@ -760,104 +682,6 @@ oper
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
{-
|
|
||||||
inflectVerb : Verb -> Number -> Person -> Bool -> SForm -> {fin, inf : Str} =
|
|
||||||
\verb,n,p,b,sf ->
|
|
||||||
let
|
|
||||||
vs : VAuxForm => Str = \\f => verb.s ! verbAuxForm f ;
|
|
||||||
olla = verbAuxOlla ;
|
|
||||||
|
|
||||||
fei = verbAuxNegEi ! APres n p ;
|
|
||||||
|
|
||||||
at : Tense -> VAuxForm = \t -> case t of {
|
|
||||||
Past => AImpf n p ;
|
|
||||||
Conditional => ACond n p ;
|
|
||||||
_ => ANF (APres n p) ---- inc. Present, Future
|
|
||||||
} ;
|
|
||||||
|
|
||||||
nat : Tense -> VAuxForm = \t -> case t of {
|
|
||||||
Past => APastPart n ;
|
|
||||||
Conditional => ACond Sg P3 ;
|
|
||||||
_ => ANF (AImper Sg)
|
|
||||||
} ;
|
|
||||||
|
|
||||||
pverb = vs ! APastPart n ;
|
|
||||||
|
|
||||||
in
|
|
||||||
case <b,sf> of {
|
|
||||||
|
|
||||||
<True, VFinite t Simul> => {fin = vs ! (at t) ; inf = []} ;
|
|
||||||
<False, VFinite t Simul> => {fin = fei ; inf = vs ! (nat t)} ;
|
|
||||||
<True, VFinite t Anter> => {fin = olla ! (at t) ; inf = pverb} ;
|
|
||||||
<False, VFinite t Anter> => {fin = fei ; inf = olla ! (nat t) ++ pverb}
|
|
||||||
|
|
||||||
} ;
|
|
||||||
----
|
|
||||||
inflectVerb : Verb -> Number -> Person -> Bool -> SVIForm -> {fin, inf : Str} =
|
|
||||||
\verb,n,p,b,sf ->
|
|
||||||
let
|
|
||||||
vs : VAuxForm => Str = \\f => verb.s ! verbAuxForm f ;
|
|
||||||
olla = verbAuxOlla ;
|
|
||||||
tulla = table {ANF f => verbAuxNegTulla ! f ; _ => []} ;
|
|
||||||
eis = table {ANF f => verbAuxNegEi ! f ; _ => []} ;
|
|
||||||
part = APastPart n ;
|
|
||||||
abess = vs ! AInf3Abess ;
|
|
||||||
illat = vs ! AInf3Illat ;
|
|
||||||
ei : Anteriority -> VAuxForm -> VAuxForm -> {fin,inf : Str} =
|
|
||||||
\a,vf,neg -> case <b,a> of {
|
|
||||||
<True, Simul> => {fin = vs ! vf ; inf = []} ;
|
|
||||||
<True, Anter> => {fin = olla ! vf ; inf = vs ! part} ;
|
|
||||||
<False,Simul> => {fin = eis ! vf ; inf = vs ! neg} ;
|
|
||||||
<False,Anter> => {fin = eis ! vf ; inf = olla ! neg ++ vs ! part}
|
|
||||||
} ;
|
|
||||||
fut : Anteriority -> VAuxForm -> VAuxForm -> {fin,inf : Str} =
|
|
||||||
\a,vf,neg -> case <b,a> of {
|
|
||||||
<True, Simul> => {fin = tulla ! vf ; inf = illat} ;
|
|
||||||
<True, Anter> => {fin = olla ! vf ; inf = tulla ! part ++ illat} ;
|
|
||||||
<False,Simul> => {fin = eis ! vf ; inf = tulla ! neg ++ illat} ;
|
|
||||||
<False,Anter> => {fin = eis ! vf ;
|
|
||||||
inf = olla ! neg ++ tulla ! part ++ illat}
|
|
||||||
} ;
|
|
||||||
inf : VIForm -> Anteriority -> {fin,inf : Str} =
|
|
||||||
\if,a ->
|
|
||||||
let i = AInf ---- is this ever needed?
|
|
||||||
{ -
|
|
||||||
case if of {
|
|
||||||
VIInf3Iness => Inf3Iness ;
|
|
||||||
VIInf3Elat => Inf3Elat ;
|
|
||||||
VIInf3Illat => Inf3Illat ;
|
|
||||||
VIInf3Adess => Inf3Adess ;
|
|
||||||
VIInf3Abess => Inf3Abess ;
|
|
||||||
_ => Inf --- not used for imperative
|
|
||||||
}
|
|
||||||
- }
|
|
||||||
in
|
|
||||||
case <b,a> of {
|
|
||||||
<True, Simul> => {fin = vs ! i ; inf = []} ;
|
|
||||||
<True, Anter> => {fin = olla ! i ; inf = vs ! part} ;
|
|
||||||
<False,Simul> => {fin = olla ! i ; inf = abess} ;
|
|
||||||
<False,Anter> => {fin = olla ! i ; inf = olla ! part ++ abess}
|
|
||||||
} ;
|
|
||||||
älä : Number -> {fin,inf : Str} =
|
|
||||||
\nu -> case b of {
|
|
||||||
True => {fin = vs ! ANF (AImper nu) ; inf = []} ;
|
|
||||||
False => {fin = eis ! ANF (AImper nu) ;
|
|
||||||
inf = vs ! case nu of {
|
|
||||||
Sg => ANF (AImper n) ;
|
|
||||||
Pl => AImpNegPl}
|
|
||||||
}
|
|
||||||
} ;
|
|
||||||
in case sf of {
|
|
||||||
SCl (VFinite Present a) => ei a (ANF (APres n p)) (ANF (AImper Sg)) ;
|
|
||||||
SCl (VFinite Past a) => ei a (AImpf n p) (part) ;
|
|
||||||
SCl (VFinite Conditional a) => ei a (ACond n p) (ACond Sg P3) ;
|
|
||||||
SCl (VFinite Future a) => fut a (ANF (APres n p)) (ANF (AImper Sg)) ;
|
|
||||||
SVI (VIImperat ) => älä n ;
|
|
||||||
SVI i => inf i Simul ---- Anter
|
|
||||||
} ;
|
|
||||||
-}
|
|
||||||
|
|
||||||
--- these are the only forms needed in auxiliary positions.
|
--- these are the only forms needed in auxiliary positions.
|
||||||
|
|
||||||
param
|
param
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ concrete LangFre of Lang =
|
|||||||
StructuralFre,
|
StructuralFre,
|
||||||
BasicFre,
|
BasicFre,
|
||||||
TimeFre,
|
TimeFre,
|
||||||
CountryFre
|
CountryFre,
|
||||||
|
MathFre
|
||||||
|
|
||||||
** open Prelude, ParadigmsFre in {
|
** open Prelude, ParadigmsFre in {
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ concrete LangIta of Lang =
|
|||||||
StructuralIta,
|
StructuralIta,
|
||||||
BasicIta,
|
BasicIta,
|
||||||
TimeIta,
|
TimeIta,
|
||||||
CountryIta
|
CountryIta,
|
||||||
|
MathIta
|
||||||
|
|
||||||
** open Prelude, ParadigmsIta in {
|
** open Prelude, ParadigmsIta in {
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ concrete LangNor of Lang =
|
|||||||
StructuralNor,
|
StructuralNor,
|
||||||
BasicNor,
|
BasicNor,
|
||||||
TimeNor,
|
TimeNor,
|
||||||
CountryNor
|
CountryNor,
|
||||||
|
MathNor
|
||||||
|
|
||||||
** open Prelude, ParadigmsNor in {
|
** open Prelude, ParadigmsNor in {
|
||||||
|
|
||||||
|
|||||||
@@ -26,13 +26,9 @@ lin
|
|||||||
SymbMore = infixSS "," ;
|
SymbMore = infixSS "," ;
|
||||||
|
|
||||||
|
|
||||||
LetCN x cn = {
|
LetImp x cn = {
|
||||||
s = \\_,_ => copula.s ! VFin (VPres Con) Sg P3 ++ x.s ++ (indefNounPhrase singular cn).s !
|
s = \\_,_ => copula.s ! VFin (VPres Con) x.n P3 ++
|
||||||
unstressed nominative
|
x.s ! unstressed nominative ++ cn.s ! unstressed nominative
|
||||||
} ;
|
|
||||||
LetNumCN x nu cn = {
|
|
||||||
s = \\_,_ => copula.s ! VFin (VPres Con) Pl P3 ++ x.s ++ (indefNounPhraseNum nu cn).s
|
|
||||||
! unstressed nominative
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
--- to be replaced by "il existe", "esiste", etc.
|
--- to be replaced by "il existe", "esiste", etc.
|
||||||
|
|||||||
@@ -26,14 +26,8 @@ lin
|
|||||||
SymbMore = infixSS "," ;
|
SymbMore = infixSS "," ;
|
||||||
|
|
||||||
|
|
||||||
LetCN x cn = {
|
LetImp x np = {
|
||||||
s = \\_ => letImp ++ x.s ++ verbVara.s ! VI (Inf Act) ++ (indefNounPhrase singular cn).s !
|
s = \\_ => letImp ++ x.s ! PNom ++ verbVara.s ! VI (Inf Act) ++ np.s ! PNom
|
||||||
PNom
|
|
||||||
} ;
|
|
||||||
LetNumCN x nu cn = {
|
|
||||||
s = \\_ => letImp ++ x.s ++ verbVara.s ! VI (Inf Act) ++
|
|
||||||
(indefNounPhraseNum plural nu cn).s
|
|
||||||
! PNom
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
--- to be replaced by "det existerar", etc.
|
--- to be replaced by "det existerar", etc.
|
||||||
|
|||||||
@@ -9,14 +9,6 @@ lin
|
|||||||
UseN = noun2CommNounPhrase ;
|
UseN = noun2CommNounPhrase ;
|
||||||
UsePN = nameNounPhrase ;
|
UsePN = nameNounPhrase ;
|
||||||
|
|
||||||
SymbPN i = {s = \\_ => i.s ; g = NNeutr} ;
|
|
||||||
|
|
||||||
SymbCN cn s =
|
|
||||||
{s = \\n => cn.s ! n ++ s.s ;
|
|
||||||
g = cn.g} ;
|
|
||||||
IntCN cn i =
|
|
||||||
{s = \\n => cn.s ! n ++ i.s ;
|
|
||||||
g = cn.g} ;
|
|
||||||
|
|
||||||
IndefOneNP = indefNounPhrase singular ;
|
IndefOneNP = indefNounPhrase singular ;
|
||||||
IndefNumNP = indefNounPhraseNum plural ;
|
IndefNumNP = indefNounPhraseNum plural ;
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ concrete LangSpa of Lang =
|
|||||||
StructuralSpa,
|
StructuralSpa,
|
||||||
BasicSpa,
|
BasicSpa,
|
||||||
TimeSpa,
|
TimeSpa,
|
||||||
CountrySpa
|
CountrySpa,
|
||||||
|
MathSpa
|
||||||
|
|
||||||
** open Prelude, ParadigmsSpa in {
|
** open Prelude, ParadigmsSpa in {
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ concrete LangSwe of Lang =
|
|||||||
StructuralSwe,
|
StructuralSwe,
|
||||||
BasicSwe,
|
BasicSwe,
|
||||||
TimeSwe,
|
TimeSwe,
|
||||||
CountrySwe
|
CountrySwe,
|
||||||
|
MathSwe
|
||||||
|
|
||||||
** open Prelude, ResourceSwe, ParadigmsSwe in {
|
** open Prelude, ResourceSwe, ParadigmsSwe in {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user