summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2014-09-15 16:10:18 +0000
committeraarne <aarne@chalmers.se>2014-09-15 16:10:18 +0000
commit8d18828008f6543dbdee3dfc8341cb8896ff0ae6 (patch)
treef799068cd29d1c743a25ab2c2a0b6b2cf64b1e51
parent2d91097f4992f5f99acd3b35ec8ad59a30b08118 (diff)
enabled VP-valued rules for V2V, V3, etc in App. Improve quality with less loss of speed than VPSlash-valued original rules.
-rw-r--r--examples/app/App.gf8
-rw-r--r--examples/app/AppBul.gf9
-rw-r--r--examples/app/AppChi.gf9
-rw-r--r--examples/app/AppDut.gf9
-rw-r--r--examples/app/AppEng.gf15
-rw-r--r--examples/app/AppFin.gf9
-rw-r--r--examples/app/AppFre.gf9
-rw-r--r--examples/app/AppGer.gf9
-rw-r--r--examples/app/AppHin.gf9
-rw-r--r--examples/app/AppIta.gf9
-rw-r--r--examples/app/AppSpa.gf9
-rw-r--r--examples/app/AppSwe.gf9
-rw-r--r--examples/app/MkApp.hs16
13 files changed, 116 insertions, 13 deletions
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