mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 03:32:51 -06:00
a refactoring in the Susanne converter which for some reason was not pushed before
This commit is contained in:
@@ -90,17 +90,17 @@ pS =
|
|||||||
advs <- many pAdS
|
advs <- many pAdS
|
||||||
np <- pSubject
|
np <- pSubject
|
||||||
(t,p,vp) <- pVP
|
(t,p,vp) <- pVP
|
||||||
return (foldr ($) (App cidUseCl [t,p,App cidPredVP [np, vp]]) advs)
|
return (foldr ($) (cidUseCl (cidTTAnt t p) (cidPredVP np vp)) advs)
|
||||||
`mplus`
|
`mplus`
|
||||||
do mplus pConj (return ())
|
do mplus pConj (return ())
|
||||||
(t,p,vp) <- pVP
|
(t,p,vp) <- pVP
|
||||||
return (App cidImpVP [vp])
|
return (cidImpVP vp)
|
||||||
`mplus`
|
`mplus`
|
||||||
do mplus pConj (return ())
|
do mplus pConj (return ())
|
||||||
advs <- many pAdS
|
advs <- many pAdS
|
||||||
t1 <- match "EX"
|
t1 <- match "EX"
|
||||||
(t,p,vp) <- pVP
|
(t,p,vp) <- pVP
|
||||||
return (foldr ($) (App cidUseCl [t,p,App cidExistNP [t1,vp]]) advs)
|
return (foldr ($) (cidUseCl (cidTTAnt t p) (cidExistNP t1 vp)) advs)
|
||||||
|
|
||||||
pSubject =
|
pSubject =
|
||||||
do insideOpt "N:s" pNP
|
do insideOpt "N:s" pNP
|
||||||
@@ -125,10 +125,10 @@ pConj =
|
|||||||
pAdS =
|
pAdS =
|
||||||
do adv <- pAdv
|
do adv <- pAdv
|
||||||
match "YC"
|
match "YC"
|
||||||
return (\t -> App cidExtAdvS [adv,t])
|
return (\t -> cidExtAdvS adv t)
|
||||||
`mplus`
|
`mplus`
|
||||||
do adv <- pAdv
|
do adv <- pAdv
|
||||||
return (\t -> App cidAdvS [adv,t])
|
return (\t -> cidAdvS adv t)
|
||||||
|
|
||||||
pVP =
|
pVP =
|
||||||
do adVs <- many pAdV
|
do adVs <- many pAdV
|
||||||
@@ -136,9 +136,9 @@ pVP =
|
|||||||
advs <- many pAdv
|
advs <- many pAdv
|
||||||
s <- insideOpt "F:o"
|
s <- insideOpt "F:o"
|
||||||
(opt (match "CST") >> pS)
|
(opt (match "CST") >> pS)
|
||||||
return (t,p,foldr (\adv t -> App cidAdVVP [adv,t])
|
return (t,p,foldr (\adv t -> cidAdVVP adv t)
|
||||||
(foldl (\t adv -> App cidAdvVP [t, adv])
|
(foldl (\t adv -> cidAdvVP t adv)
|
||||||
(App cidComplVS [vs, s])
|
(cidComplVS vs s)
|
||||||
advs)
|
advs)
|
||||||
adVs)
|
adVs)
|
||||||
`mplus`
|
`mplus`
|
||||||
@@ -146,9 +146,9 @@ pVP =
|
|||||||
(t,p,vv) <- pV "VV"
|
(t,p,vv) <- pV "VV"
|
||||||
advs <- many pAdv
|
advs <- many pAdv
|
||||||
vp <- match "Ti"
|
vp <- match "Ti"
|
||||||
return (t,p,foldr (\adv t -> App cidAdVVP [adv,t])
|
return (t,p,foldr (\adv t -> cidAdVVP adv t)
|
||||||
(foldl (\t adv -> App cidAdvVP [t, adv])
|
(foldl (\t adv -> cidAdvVP t adv)
|
||||||
(App cidComplVV [vv, vp])
|
(cidComplVV vv vp)
|
||||||
advs)
|
advs)
|
||||||
adVs)
|
adVs)
|
||||||
`mplus`
|
`mplus`
|
||||||
@@ -157,36 +157,36 @@ pVP =
|
|||||||
o <- pObject
|
o <- pObject
|
||||||
opt (match "YC") -- what is this?
|
opt (match "YC") -- what is this?
|
||||||
advs <- many pAdv
|
advs <- many pAdv
|
||||||
return (t,p,foldr (\adv t -> App cidAdVVP [adv,t])
|
return (t,p,foldr (\adv t -> cidAdVVP adv t)
|
||||||
(foldl (\t adv -> App cidAdvVP [t, adv])
|
(foldl (\t adv -> cidAdvVP t adv)
|
||||||
(App cidComplSlash [App cidSlashV2a [v2],o])
|
(cidComplSlash (cidSlashV2a v2) o)
|
||||||
advs)
|
advs)
|
||||||
adVs)
|
adVs)
|
||||||
`mplus`
|
`mplus`
|
||||||
do adVs <- many pAdV
|
do adVs <- many pAdV
|
||||||
(t,p,v) <- pV "V"
|
(t,p,v) <- pV "V"
|
||||||
advs <- many pAdv
|
advs <- many pAdv
|
||||||
return (t,p,foldr (\adv t -> App cidAdVVP [adv,t])
|
return (t,p,foldr (\adv t -> cidAdVVP adv t)
|
||||||
(foldl (\t adv -> App cidAdvVP [t, adv])
|
(foldl (\t adv -> cidAdvVP t adv)
|
||||||
(App cidUseV [v])
|
(cidUseV v)
|
||||||
advs)
|
advs)
|
||||||
adVs)
|
adVs)
|
||||||
|
|
||||||
pV cat =
|
pV cat =
|
||||||
do inside "V" $
|
do inside "V" $
|
||||||
do v <- lemma "VVDv" (mkCId cat) "s VPast"
|
do v <- lemma "VVDv" (mkCId cat) "s VPast"
|
||||||
return (App cidTTAnt [App cidTPast [],App cidASimul []],App cidPPos [],v)
|
return (cidTTAnt cidTPast cidASimul,cidPPos,v)
|
||||||
`mplus`
|
`mplus`
|
||||||
do v <- lemma "VVDt" (mkCId cat) "s VPast"
|
do v <- lemma "VVDt" (mkCId cat) "s VPast"
|
||||||
return (App cidTTAnt [App cidTPast [],App cidASimul []],App cidPPos [],v)
|
return (cidTTAnt cidTPast cidASimul,cidPPos,v)
|
||||||
`mplus`
|
`mplus`
|
||||||
do v <- lemma "VVZv" (mkCId cat) "s VPres"
|
do v <- lemma "VVZv" (mkCId cat) "s VPres"
|
||||||
return (App cidTTAnt [App cidTPres [],App cidASimul []],App cidPPos [],v)
|
return (cidTTAnt cidTPres cidASimul,cidPPos,v)
|
||||||
`mplus`
|
`mplus`
|
||||||
do match "VHD"
|
do match "VHD"
|
||||||
match "VHD"
|
match "VHD"
|
||||||
v <- lemma "VVNv" (mkCId cat) "s VPPart"
|
v <- lemma "VVNv" (mkCId cat) "s VPPart"
|
||||||
return (App cidTTAnt [App cidTPres [],App cidAAnter []],App cidPPos [],v)
|
return (cidTTAnt cidTPres cidAAnter,cidPPos,v)
|
||||||
`mplus`
|
`mplus`
|
||||||
do v <- match "V"
|
do v <- match "V"
|
||||||
return (App (mkCId "XXX") [],App (mkCId "XXX") [],v)
|
return (App (mkCId "XXX") [],App (mkCId "XXX") [],v)
|
||||||
@@ -266,13 +266,13 @@ pAdv =
|
|||||||
pNP = do
|
pNP = do
|
||||||
q <- pQuant
|
q <- pQuant
|
||||||
(n,cn) <- pCN
|
(n,cn) <- pCN
|
||||||
return (App cidDetCN [App cidDetQuant [q,n],cn])
|
return (cidDetCN (cidDetQuant q n) cn)
|
||||||
|
|
||||||
pQuant =
|
pQuant =
|
||||||
do lemma "AT" (mkCId "Quant") "s False Sg"
|
do lemma "AT" (mkCId "Quant") "s False Sg"
|
||||||
`mplus`
|
`mplus`
|
||||||
do match "AT1"
|
do match "AT1"
|
||||||
return (App cidIndefArt [])
|
return cidIndefArt
|
||||||
|
|
||||||
pCN =
|
pCN =
|
||||||
do np <- insideOpt "N" pNP
|
do np <- insideOpt "N" pNP
|
||||||
@@ -281,24 +281,24 @@ pCN =
|
|||||||
`mplus`
|
`mplus`
|
||||||
do a <- lemma "JJ" (mkCId "A") "s (AAdj Posit Nom)"
|
do a <- lemma "JJ" (mkCId "A") "s (AAdj Posit Nom)"
|
||||||
(n,cn) <- pCN
|
(n,cn) <- pCN
|
||||||
return (n,App cidAdjCN [App cidPositA [a],cn])
|
return (n,cidAdjCN (cidPositA a) cn)
|
||||||
`mplus`
|
`mplus`
|
||||||
do (num,n) <- pN
|
do (num,n) <- pN
|
||||||
advs <- many pPo
|
advs <- many pPo
|
||||||
return (num,
|
return (num,
|
||||||
foldl (\t adv -> App cidAdvCN [t, adv])
|
foldl (\t adv -> cidAdvCN t adv)
|
||||||
(App cidUseN [n])
|
(cidUseN n)
|
||||||
advs)
|
advs)
|
||||||
|
|
||||||
pN =
|
pN =
|
||||||
do n <- lemma "NN1c" (mkCId "N") "s Sg Nom"
|
do n <- lemma "NN1c" (mkCId "N") "s Sg Nom"
|
||||||
return (App cidNumSg [], n)
|
return (cidNumSg, n)
|
||||||
`mplus`
|
`mplus`
|
||||||
do n <- lemma "NN1n" (mkCId "N") "s Sg Nom"
|
do n <- lemma "NN1n" (mkCId "N") "s Sg Nom"
|
||||||
return (App cidNumSg [], n)
|
return (cidNumSg, n)
|
||||||
|
|
||||||
pPo =
|
pPo =
|
||||||
insideOpt "Po" $ do
|
insideOpt "Po" $ do
|
||||||
p <- match "IO"
|
p <- match "IO"
|
||||||
np <- insideOpt "N" pNP
|
np <- insideOpt "N" pNP
|
||||||
return (App cidPrepNP [p,np])
|
return (cidPrepNP p np)
|
||||||
|
|||||||
Reference in New Issue
Block a user