made App into a functor to make its body easier to modify; unfortunately, the import list must be copied however

This commit is contained in:
aarne
2016-06-04 17:07:35 +00:00
parent 887f795308
commit 4f6c5cbacf
19 changed files with 64 additions and 462 deletions

View File

@@ -34,15 +34,14 @@ fun
--P Phrase_Chunk : Phrase -> Chunk ;
ComplV2 : V2 -> NP -> VP ;
PassV2 : V2 -> VP ;
ComplV2V : V2V -> NP -> VP -> VP ;
-- ComplV2A : V2A -> NP -> AP -> VP ;
-- ComplV2Q : V2Q -> NP -> QS -> VP ;
-- ComplV2S : V2S -> NP -> S -> VP ;
ComplV3 : V3 -> NP -> NP -> VP ;
PassV2 : V2 -> VP ;
RelV2 : RP -> NP -> V2 -> RCl ;
QuestV2 : IP -> NP -> V2 -> QCl ;

View File

@@ -24,32 +24,5 @@ concrete AppBul of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookBul - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A]
** AppFunctor with (Syntax = SyntaxBul) ;
** open ParadigmsBul, SyntaxBul, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}

View File

@@ -1,6 +1,5 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppCat of App =
TranslateCat - [
@@ -25,31 +24,4 @@ concrete AppCat of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookCat - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, cheap_A,expensive_A, open_A, closed_A]
** open ParadigmsCat, SyntaxCat, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}
** AppFunctor with (Syntax = SyntaxCat) ;

View File

@@ -24,33 +24,4 @@ concrete AppChi of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookChi - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A, at_Prep, by_Prep]
** open ParadigmsChi, SyntaxChi, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}
** AppFunctor with (Syntax = SyntaxChi) ;

View File

@@ -24,31 +24,4 @@ concrete AppDut of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookDut - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A]
** open ParadigmsDut, SyntaxDut, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}
** AppFunctor with (Syntax = SyntaxDut) ;

View File

@@ -24,33 +24,5 @@ concrete AppEng of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookEng - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv]
** AppFunctor with (Syntax = SyntaxEng) ;
** open MorphoEng, ResEng, ParadigmsEng, SyntaxEng, (G = GrammarEng), (E = ExtraEng), Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
--P PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
--P PGreetingMale, PGreetingFemale = \s -> lin Text s ;
--P GObjectPlease o = lin Text (mkUtt o) ;
--P PhrasePhr p = {s = "+" ++ p.s} | p ;
--P Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
-- ComplV2A v np vp = mkVP v np vp ;
-- ComplV2Q v np vp = mkVP v np vp ;
-- ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
RelV2 rp np v2 = mkRCl rp (mkClSlash np (mkVPSlash v2)) ;
QuestV2 ip np v2 = mkQCl ip (mkClSlash np (mkVPSlash v2)) ;
}

View File

@@ -24,31 +24,4 @@ concrete AppEst of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookEst - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_A, open_Adv]
** open ParadigmsEst, SyntaxEst, Prelude in {
flags
literal=Symb ;
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}
** AppFunctor with (Syntax = SyntaxEst) ;

View File

@@ -24,31 +24,4 @@ concrete AppFin of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookFin - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_A, open_Adv]
** open ParadigmsFin, SyntaxFin, Prelude in {
flags
literal=Symb ;
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}
** AppFunctor with (Syntax = SyntaxFin) ;

View File

@@ -22,33 +22,5 @@ concrete AppFre of App =
-- Extensions
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookFre - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_A, closed_A]
** open ParadigmsFre, SyntaxFre, Prelude in {
flags
literal=Symb ;
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2 v np = mkVP v np ;
ComplV2V v np vp = mkVP v np vp ;
--ComplV2A v np vp = mkVP v np vp ;
--ComplV2Q v np vp = mkVP v np vp ;
--ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}
** AppFunctor with (Syntax = SyntaxFre) ;

View File

@@ -0,0 +1,45 @@
incomplete concrete AppFunctor of App =
Translate - [
-- Verb
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3,
-- Construction
-- Extensions
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
** open Syntax in {
flags
literal=Symb ;
lin
ComplV2 v np = mkVP v np ;
ComplV2V v np vp = mkVP v np vp ;
-- ComplV2A v np vp = mkVP v np vp ;
-- ComplV2Q v np vp = mkVP v np vp ;
-- ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
PassV2 v2 = passiveVP v2 ;
RelV2 rp np v2 = mkRCl rp (mkClSlash np (mkVPSlash v2)) ;
QuestV2 ip np v2 = mkQCl ip (mkClSlash np (mkVPSlash v2)) ;
}

View File

@@ -24,31 +24,4 @@ concrete AppGer of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookGer - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A]
** open ParadigmsGer, SyntaxGer, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}
** AppFunctor with (Syntax = SyntaxGer) ;

View File

@@ -23,32 +23,5 @@ concrete AppHin of App =
-- Extensions
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookHin - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A]
** open ParadigmsHin, SyntaxHin, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}
** AppFunctor with (Syntax = SyntaxHin) ;

View File

@@ -24,30 +24,4 @@ concrete AppIta of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookIta - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_A, closed_A]
** open ParadigmsIta, SyntaxIta, Prelude in {
flags
literal=Symb ;
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}
** AppFunctor with (Syntax = SyntaxIta) ;

View File

@@ -24,33 +24,4 @@ concrete AppJpn of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookJpn ---- - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A, at_Prep, by_Prep]
** open ParadigmsJpn, SyntaxJpn, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
---- PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
---- PGreetingMale, PGreetingFemale = \s -> lin Text s ;
---- GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}
** AppFunctor with (Syntax = SyntaxJpn) ;

View File

@@ -24,32 +24,4 @@ concrete AppRus of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookRus - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A, cost_V]
** open ParadigmsRus, SyntaxRus, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}
** AppFunctor with (Syntax = SyntaxRus) ;

View File

@@ -25,31 +25,4 @@ concrete AppSpa of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookSpa - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, cheap_A,expensive_A, open_A, closed_A]
** open ParadigmsSpa, SyntaxSpa, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}
** AppFunctor with (Syntax = SyntaxSpa) ;

View File

@@ -23,34 +23,4 @@ concrete AppSwe of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookSwe - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A]
** open MorphoSwe, ResSwe, ParadigmsSwe, SyntaxSwe, CommonScand, (E = ExtraSwe), Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = SyntaxSwe.passiveVP v2 ;
RelV2 rp np v2 = mkRCl rp (mkClSlash np (mkVPSlash v2)) ;
QuestV2 ip np v2 = mkQCl ip (mkClSlash np (mkVPSlash v2)) ;
}
** AppFunctor with (Syntax = SyntaxSwe) ;

View File

@@ -24,33 +24,5 @@ concrete AppTha of App =
PassVPSlash, PassAgentVPSlash -- not reachable anyway
]
--P ,PhrasebookTha - [at_Prep, closed_A, open_A] --- - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A, at_Prep, by_Prep]
** AppFunctor with (Syntax = SyntaxTha) ;
** open ParadigmsTha, SyntaxTha, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
---- PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
---- PGreetingMale, PGreetingFemale = \s -> lin Text s ;
---- GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
PassV2 v2 = passiveVP v2 ;
PassV2 v2 = passiveVP v2 ;
}

View File

@@ -1,4 +1,4 @@
all: App15.pgf
all: App16.pgf
PROBSFILE=./app.probs
GFODIR=./gfos
@@ -57,6 +57,7 @@ AppHin.pgf:: ; $(GFMKT) -name=AppHin AppHin.gf
AppFre.pgf:: ; $(GFMKT) -name=AppFre AppFre.gf +RTS -K64M
AppIta.pgf:: ; $(GFMKT) -name=AppIta AppIta.gf +RTS -K64M
AppJpn.pgf:: ; $(GFMKT) -name=AppJpn AppJpn.gf +RTS -K64M
AppRus.pgf:: ; $(GFMKT) -name=AppRus AppRus.gf +RTS -K64M
AppSpa.pgf:: ; $(GFMKT) -name=AppSpa AppSpa.gf +RTS -K64M
AppSwe.pgf:: ; $(GFMKT) -name=AppSwe AppSwe.gf
AppTha.pgf:: ; $(GFMKT) -name=AppTha AppTha.gf