diff --git a/examples/app/App.gf b/examples/app/App.gf index 7f5c45f17..24f4bb67c 100644 --- a/examples/app/App.gf +++ b/examples/app/App.gf @@ -1,7 +1,7 @@ abstract App = Translate - [ -- Verb - SlashV2V, + SlashV2V, -- replaced by more efficient inlined versions Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A, SlashVV, SlashV2VNP, AdvVPSlash, AdVVPSlash, VPSlashPrep, @@ -28,4 +28,10 @@ fun PhrasePhr : Phrase -> Phr ; Phrase_Chunk : Phrase -> Chunk ; + 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 ; + } diff --git a/examples/app/AppBul.gf b/examples/app/AppBul.gf index eb23ce0f7..8bbfd202d 100644 --- a/examples/app/AppBul.gf +++ b/examples/app/AppBul.gf @@ -4,7 +4,7 @@ concrete AppBul of App = TranslateBul - [ -- Verb - SlashV2V, + SlashV2V, -- replaced by more efficient inlined versions Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A, SlashVV, SlashV2VNP, AdvVPSlash, AdVVPSlash, VPSlashPrep, @@ -37,4 +37,11 @@ lin 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 ; + } diff --git a/examples/app/AppChi.gf b/examples/app/AppChi.gf index 28c7abb2e..8e563c257 100644 --- a/examples/app/AppChi.gf +++ b/examples/app/AppChi.gf @@ -4,7 +4,7 @@ concrete AppChi of App = TranslateChi - [ -- Verb - SlashV2V, + SlashV2V, -- replaced by more efficient inlined versions Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A, SlashVV, SlashV2VNP, AdvVPSlash, AdVVPSlash, VPSlashPrep, @@ -38,4 +38,11 @@ lin 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 ; + } diff --git a/examples/app/AppDut.gf b/examples/app/AppDut.gf index 620b8ceb8..0b89b593f 100644 --- a/examples/app/AppDut.gf +++ b/examples/app/AppDut.gf @@ -4,7 +4,7 @@ concrete AppDut of App = TranslateDut - [ -- Verb - SlashV2V, + SlashV2V, -- replaced by more efficient inlined versions Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A, SlashVV, SlashV2VNP, AdvVPSlash, AdVVPSlash, VPSlashPrep, @@ -36,4 +36,11 @@ lin 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 ; + } diff --git a/examples/app/AppEng.gf b/examples/app/AppEng.gf index 9ac21a783..91253a6f9 100644 --- a/examples/app/AppEng.gf +++ b/examples/app/AppEng.gf @@ -4,7 +4,7 @@ concrete AppEng of App = TranslateEng - [ -- Verb - SlashV2V, + SlashV2V, -- replaced by more efficient inlined versions Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A, SlashVV, SlashV2VNP, AdvVPSlash, AdVVPSlash, VPSlashPrep, @@ -36,4 +36,17 @@ lin 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 ; + + +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 ; + } diff --git a/examples/app/AppFin.gf b/examples/app/AppFin.gf index 69fc9cac4..e669ac618 100644 --- a/examples/app/AppFin.gf +++ b/examples/app/AppFin.gf @@ -4,7 +4,7 @@ concrete AppFin of App = TranslateFin - [ -- Verb - SlashV2V, + SlashV2V, -- replaced by more efficient inlined versions Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A, SlashVV, SlashV2VNP, AdvVPSlash, AdVVPSlash, VPSlashPrep, @@ -36,4 +36,11 @@ lin 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 ; + } diff --git a/examples/app/AppFre.gf b/examples/app/AppFre.gf index 8af43c2f9..87ce3c132 100644 --- a/examples/app/AppFre.gf +++ b/examples/app/AppFre.gf @@ -4,7 +4,7 @@ concrete AppFre of App = TranslateFre - [ -- Verb - SlashV2V, + SlashV2V, -- replaced by more efficient inlined versions Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A, SlashVV, SlashV2VNP, AdvVPSlash, AdVVPSlash, VPSlashPrep, @@ -37,4 +37,11 @@ lin 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 ; + } diff --git a/examples/app/AppGer.gf b/examples/app/AppGer.gf index a754e6ddc..72dbc31f2 100644 --- a/examples/app/AppGer.gf +++ b/examples/app/AppGer.gf @@ -4,7 +4,7 @@ concrete AppGer of App = TranslateGer - [ -- Verb - SlashV2V, + SlashV2V, -- replaced by more efficient inlined versions Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A, SlashVV, SlashV2VNP, AdvVPSlash, AdVVPSlash, VPSlashPrep, @@ -36,4 +36,11 @@ lin 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 ; + } diff --git a/examples/app/AppHin.gf b/examples/app/AppHin.gf index 74ce40d34..0bddfb3bf 100644 --- a/examples/app/AppHin.gf +++ b/examples/app/AppHin.gf @@ -4,7 +4,7 @@ concrete AppHin of App = TranslateHin - [ -- Verb - SlashV2V, + SlashV2V, -- replaced by more efficient inlined versions Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A, SlashVV, SlashV2VNP, AdvVPSlash, AdVVPSlash, VPSlashPrep, @@ -36,4 +36,11 @@ lin 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 ; + } diff --git a/examples/app/AppIta.gf b/examples/app/AppIta.gf index e7d9bee13..7041d43f8 100644 --- a/examples/app/AppIta.gf +++ b/examples/app/AppIta.gf @@ -4,7 +4,7 @@ concrete AppIta of App = TranslateIta - [ -- Verb - SlashV2V, + SlashV2V, -- replaced by more efficient inlined versions Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A, SlashVV, SlashV2VNP, AdvVPSlash, AdVVPSlash, VPSlashPrep, @@ -35,4 +35,11 @@ lin 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 ; + } diff --git a/examples/app/AppSpa.gf b/examples/app/AppSpa.gf index eb915461d..6e57da478 100644 --- a/examples/app/AppSpa.gf +++ b/examples/app/AppSpa.gf @@ -5,7 +5,7 @@ concrete AppSpa of App = TranslateSpa - [ -- Verb - SlashV2V, + SlashV2V, -- replaced by more efficient inlined versions Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A, SlashVV, SlashV2VNP, AdvVPSlash, AdVVPSlash, VPSlashPrep, @@ -37,4 +37,11 @@ lin 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 ; + } diff --git a/examples/app/AppSwe.gf b/examples/app/AppSwe.gf index b1c7e73f6..093a1e91f 100644 --- a/examples/app/AppSwe.gf +++ b/examples/app/AppSwe.gf @@ -3,7 +3,7 @@ concrete AppSwe of App = TranslateSwe - [ -- Verb - SlashV2V, + SlashV2V, -- replaced by more efficient inlined versions Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A, SlashVV, SlashV2VNP, AdvVPSlash, AdVVPSlash, VPSlashPrep, @@ -35,4 +35,11 @@ lin 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 ; + } diff --git a/examples/app/MkApp.hs b/examples/app/MkApp.hs index 29caf2fd5..7704ffcb7 100644 --- a/examples/app/MkApp.hs +++ b/examples/app/MkApp.hs @@ -1,4 +1,5 @@ -- update the import list of every language +-- although possibly some extra definitions at the end -- the new files are produced in ./tmp/ -- usage: runghc MkApp.hs @@ -17,5 +18,18 @@ putImports i s = let (s1,_:s2) = span (/='[') s (_, s3) = span (/=']') s2 - in s1 ++ "[" ++ i ++ s3 + in s1 ++ "[" ++ i ++ extra s3 +extra s = unlines (init (lines s) ++ extraLines ++ ["}"]) + +extraLines = -- [] -- default: no extra + + [ + "", + "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 ;", + "" + ] \ No newline at end of file