summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraarne <unknown>2005-05-09 14:44:59 +0000
committeraarne <unknown>2005-05-09 14:44:59 +0000
commit6a79b6fe2d3b55f1ea32aab961ecb10da4dc302d (patch)
tree348e051bd09ba3bcd0cae7eeea35fc5c3e75f3e6
parent3ce7d2ca18d9a00e150b1e03b32b59a1249ad6ba (diff)
empty in pre
-rw-r--r--examples/numerals/irula.gf7
-rw-r--r--examples/numerals/kodagu.gf3
-rw-r--r--examples/numerals/korean.gf8
-rw-r--r--src/GF/Grammar/Compute.hs15
-rw-r--r--src/GF/Grammar/Macros.hs5
5 files changed, 24 insertions, 14 deletions
diff --git a/examples/numerals/irula.gf b/examples/numerals/irula.gf
index 22b299193..9d060519a 100644
--- a/examples/numerals/irula.gf
+++ b/examples/numerals/irula.gf
@@ -11,7 +11,8 @@ oper
oper uru : Str = "u:" + pre {"r_u" ; "tti" / cons ; "tt"/ vowel} ;
laks : Str = "lacca" + T ;
ayira : Str = "a:yira" + T ;
- cavira : Str = variants {ayira ; "ca:vira" + T} ;
+---- cavira : Str = variants {ayira ; "ca:vira" + T} ; ----BUG in Compute (AR 9/5/2005)
+ cavira : Str = variants {"a:yira" + T ; "ca:vira" + T} ;
T : Str = pre {[] ; "tt" / vowel ; "tti" / cons} ;
U : Str = pre {"u" ; [] / vowel } ;-- ; "ï" / cons} ;
@@ -49,7 +50,9 @@ lin n9 = {s = table {unit => "ombadu" ; teen => "pattombad"+U ;
oper ss : Str -> LinS100 = \s1 -> {s = table {p => s1 ; lak => bind s1 cavira }} ;
lin pot01 =
- {s = table {unit => pre {[] ; "önr_u" / strs {[]}} ;
+ {s = table {unit => "önr_u" ; ---- pre {[] ; "önr_u" / strs {[]}} ;
+ ---- equivalent by the sem. of pre. AR
+
thou => cavira ;
thou2 => "or" + ayira ;
hund => "n" + uru ;
diff --git a/examples/numerals/kodagu.gf b/examples/numerals/kodagu.gf
index 33d80ae35..48703d0fd 100644
--- a/examples/numerals/kodagu.gf
+++ b/examples/numerals/kodagu.gf
@@ -47,7 +47,8 @@ lin n9 = mkN "oymbadï" ("pattoymbad"+I) "tomb" "oymbayn" "oymbad" ;
oper ss : Str -> LinS100 = \s1 -> {s = table {p => s1 ; lak => bind s1 ayra }} ;
lin pot01 =
- {s = table {unit => pre {[] ; "ondï" / strs {[]}} ;
+ {s = table {unit => "ondï" ; ---- pre {[] ; "ondï" / strs {[]}} ;
+ ---- equivalent by the sem. of pre. AR
thou => variants {ayra ; "o:r" + ayra} ;
hund => "n" + uri ;
_ => "dummy"} };
diff --git a/examples/numerals/korean.gf b/examples/numerals/korean.gf
index b73e9978b..f00b89695 100644
--- a/examples/numerals/korean.gf
+++ b/examples/numerals/korean.gf
@@ -15,8 +15,6 @@ lincat Sub10 = LinDigit ;
lincat Sub100 = {s : Str ; s2 : S100 => Str; size : Size} ;
lincat Sub1000 = {s : Str ; s2 : Str ; size : Size } ;
lincat Sub1000000 = {s : Str} ;
-lin num x0 =
- {s = "/L" ++ x0.s ++ "L/" } ; -- just makes colons into length bar ontop of char
oper mkNumq : Str -> Str -> Str -> Str -> LinDigit =
\twul -> \yelqtwul -> \sumul -> \i ->
@@ -34,7 +32,11 @@ oper mkNum9 : Str -> Str -> Str -> Str -> LinDigit =
\twul -> \yelqtwul -> \sumul -> \i ->
{s = table {unit => twul ; teen => yelqtwul ; ten => sumul ; tenq => sumul + "q" ; chi => i ; chiten => i ++ "sip"} ; size = nine} ;
--- lin n1 = mkNum variants{"hana" ; "han } ; variants {"yelhana" ; "yelhan" }
+lin num x0 =
+ {s = "/L" ++ x0.s ++ "L/" } ; -- just makes colons into length bar ontop of char
+
+-- lin n1 = mkNum variants{"hana" ; "han"} ; variants {"yelhana" ;"yelhan"}
+
lin n2 = mkNumq (variants {"twu:l" ; "twu" })
(variants {"yelqtwul" ; "yelqtwu" })
(variants {"sumul" ; "sumu" })
diff --git a/src/GF/Grammar/Compute.hs b/src/GF/Grammar/Compute.hs
index 3cc3c7dff..0401c2417 100644
--- a/src/GF/Grammar/Compute.hs
+++ b/src/GF/Grammar/Compute.hs
@@ -5,9 +5,9 @@
-- Stability : (stable)
-- Portability : (portable)
--
--- > CVS $Date: 2005/05/09 09:45:23 $
+-- > CVS $Date: 2005/05/09 15:44:59 $
-- > CVS $Author: aarne $
--- > CVS $Revision: 1.16 $
+-- > CVS $Revision: 1.17 $
--
-- Computation of source terms. Used in compilation and in @cc@ command.
-----------------------------------------------------------------------------
@@ -167,14 +167,17 @@ computeTerm gr = comp where
(_,Empty) -> return x
(Empty,_) -> return y
(K a, K b) -> return $ K (a ++ b)
- (K a, Alts (d,vs)) -> do
----- (_, Alts (d,vs)) -> do
+ (_, Alts (d,vs)) -> do
+---- (K a, Alts (d,vs)) -> do
let glx = Glue x
comp g $ Alts (glx d, [(glx v,c) | (v,c) <- vs])
- (Alts _, K a) -> checks [do
+ (Alts _, ka) -> checks [do
+ y' <- strsFromTerm ka
+---- (Alts _, K a) -> checks [do
x' <- strsFromTerm x -- this may fail when compiling opers
return $ variants [
- foldr1 C (map K (str2strings (glueStr v (str a)))) | v <- x']
+ foldr1 C (map K (str2strings (glueStr v u))) | v <- x', u <- y']
+---- foldr1 C (map K (str2strings (glueStr v (str a)))) | v <- x']
,return $ Glue x y
]
(FV ks,_) -> do
diff --git a/src/GF/Grammar/Macros.hs b/src/GF/Grammar/Macros.hs
index db05f95a0..89866c6bd 100644
--- a/src/GF/Grammar/Macros.hs
+++ b/src/GF/Grammar/Macros.hs
@@ -5,9 +5,9 @@
-- Stability : (stable)
-- Portability : (portable)
--
--- > CVS $Date: 2005/04/28 16:42:49 $
+-- > CVS $Date: 2005/05/09 15:45:00 $
-- > CVS $Author: aarne $
--- > CVS $Revision: 1.20 $
+-- > CVS $Revision: 1.21 $
--
-- Macros for constructing and analysing source code terms.
--
@@ -565,6 +565,7 @@ markLinFields f t = case t of
strsFromTerm :: Term -> Err [Str]
strsFromTerm t = case unComputed t of
K s -> return [str s]
+ Empty -> return [str []]
C s t -> do
s' <- strsFromTerm s
t' <- strsFromTerm t