diff options
Diffstat (limited to 'archive/C_str.maple')
-rw-r--r-- | archive/C_str.maple | 42 |
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; |