aboutsummaryrefslogtreecommitdiff
path: root/archive/C_str.maple
diff options
context:
space:
mode:
Diffstat (limited to 'archive/C_str.maple')
-rw-r--r--archive/C_str.maple42
1 files changed, 0 insertions, 42 deletions
diff --git a/archive/C_str.maple b/archive/C_str.maple
deleted file mode 100644
index e0335a6..0000000
--- a/archive/C_str.maple
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# This function is a wrapper around codegen[C]() which returns the
-# genenerated code explictly as a Maple string.
-#
-# Arguments:
-# expr = (in) The expression for which code is to be generated.
-# ... = (in) Any further arguments are taken as options to be passed
-# to codegen[C]()
-#
-# Results:
-# The function returns a maple string of C code.
-#
-C_str :=
-proc(expr::algebraic)
-local tempname, str, temp;
-
-# name of temp file
-# FIXME: should use process number to ensure uniqueness
-tempname := "/tmp/C_str.tmp.c";
-
-# truncate temp file to zero length
-fopen(tempname, WRITE);
-fclose(tempname);
-
-# generate the code
-codegen[C](args, filename=tempname);
-
-# read the code back in
-str := "";
- while true
- do
- temp := readline(tempname);
- if (temp = 0)
- then break;
- end if;
- str := cat(str, temp);
- end do;
-fclose(tempname);
-
-# strip off the leading " t0 = "
-return op(2,sscanf(str, "%s = %[^;];"));
-end proc;