aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Hinder <ian.hinder@aei.mpg.de>2012-01-27 18:06:27 -0600
committerIan Hinder <ian.hinder@aei.mpg.de>2012-01-27 18:06:27 -0600
commit0c73c04b26837465dea4db102e2585f40ca71b7d (patch)
tree328845f559c4ea96a5121627b0a0062694b06442
parent23daf394e23c7a745aaa5b6263b6cdae075f9d92 (diff)
KrancScript.m: Handle multi-argument functions
We still don't check the number of arguments
-rw-r--r--Tools/CodeGen/KrancScript.m6
1 files changed, 3 insertions, 3 deletions
diff --git a/Tools/CodeGen/KrancScript.m b/Tools/CodeGen/KrancScript.m
index 7998e00..9d4bc67 100644
--- a/Tools/CodeGen/KrancScript.m
+++ b/Tools/CodeGen/KrancScript.m
@@ -138,11 +138,11 @@ process["indices"[inds_]] :=
_, ThrowError["Tensor indices must start with ^ or _"]];
is];
-process["func"["name"[name_],expr_]] :=
+process["func"["name"[name_],exprs__]] :=
Module[
{fns},
- fns = {"sin" -> Sin, "cos" -> Cos};
- If[MemberQ[First/@fns,name], (name/.fns)[process[expr]],
+ fns = {"sin" -> Sin, "cos" -> Cos, "if" -> IfThen};
+ If[MemberQ[First/@fns,name], (name/.fns)@@Map[process,{exprs}],
ThrowError["Unrecognised function: ", name]]];
process["expr"[mul_]] := process[mul];