about summary refs log tree commit diff
path: root/src/fix.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2003-07-16T20·00+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2003-07-16T20·00+0000
commit9d56ca219fb7af1c209458f81a8ce35a1b6afd28 (patch)
treef30d9c4f8ed84edaf1d16298ac8dcb2d2b9e2ecc /src/fix.cc
parentb9ecadee6e32eddac07d09a228f0dda2b340c7ac (diff)
* Substitute fixes.
Diffstat (limited to 'src/fix.cc')
-rw-r--r--src/fix.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/fix.cc b/src/fix.cc
index d954abfe4be2..f55074907fbb 100644
--- a/src/fix.cc
+++ b/src/fix.cc
@@ -111,6 +111,14 @@ static Expr evalExpr(Expr e)
         ATmatch(e, "FSId(<str>)", &s1))
         return e;
 
+    if (ATgetType(e) == AT_APPL && 
+        ((string) ATgetName(ATgetAFun(e)) == "Slice" ||
+         (string) ATgetName(ATgetAFun(e)) == "Derive"))
+    {
+        return ATmake("FSId(<str>)", 
+            ((string) writeTerm(e, "", 0)).c_str());
+    }
+
     /* Application. */
     if (ATmatch(e, "App(<term>, [<list>])", &e1, &e2)) {
         e1 = evalExpr(e1);