From 2ee936c7e23bd690b05b8362179911a2d176f150 Mon Sep 17 00:00:00 2001 From: aarne Date: Thu, 9 Oct 2003 15:23:32 +0000 Subject: Added treatment of transfer modules. Aggregation is an example. --- src/GF/Grammar/AppPredefined.hs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/GF/Grammar/AppPredefined.hs') diff --git a/src/GF/Grammar/AppPredefined.hs b/src/GF/Grammar/AppPredefined.hs index f59c910b0..14f35a1d4 100644 --- a/src/GF/Grammar/AppPredefined.hs +++ b/src/GF/Grammar/AppPredefined.hs @@ -26,6 +26,7 @@ appPredefined t = case t of ("tk", EInt i, K s) -> K (take (max 0 (length s - i)) s) ("dp", EInt i, K s) -> K (drop (max 0 (length s - i)) s) ("eqStr",K s, K t) -> if s == t then predefTrue else predefFalse + ("occur",K s, K t) -> if substring s t then predefTrue else predefFalse ("eqInt",EInt i, EInt j) -> if i==j then predefTrue else predefFalse ("plus", EInt i, EInt j) -> EInt $ i+j ("show", _, t) -> K $ prt t @@ -49,3 +50,10 @@ str2tag s = case s of predefTrue = Q (IC "Predef") (IC "PTrue") predefFalse = Q (IC "Predef") (IC "PFalse") + +substring :: String -> String -> Bool +substring s t = case (s,t) of + (c:cs, d:ds) -> (c == d && substring cs ds) || substring s ds + ([],_) -> True + _ -> False + -- cgit v1.2.3