From 80bb477cc4ea5226ae760726730b3e09d21559de Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 5 Nov 2003 15:34:12 +0000 Subject: * Default function arguments. --- src/fix-ng/eval.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/fix-ng/eval.cc') diff --git a/src/fix-ng/eval.cc b/src/fix-ng/eval.cc index 90b7ff29f261..770802f321fb 100644 --- a/src/fix-ng/eval.cc +++ b/src/fix-ng/eval.cc @@ -27,10 +27,13 @@ static Expr substArgs(Expr body, ATermList formals, Expr arg) /* Get the formal arguments. */ while (!ATisEmpty(formals)) { ATerm t = ATgetFirst(formals); - char * s; - if (!ATmatch(t, "", &s)) - abort(); /* can't happen */ - subs.set(t, undefined); + Expr name, def; + debug(printTerm(t)); + if (ATmatch(t, "NoDefFormal()", &name)) + subs.set(name, undefined); + else if (ATmatch(t, "DefFormal(, )", &name, &def)) + subs.set(name, def); + else abort(); /* can't happen */ formals = ATgetNext(formals); } @@ -44,7 +47,7 @@ static Expr substArgs(Expr body, ATermList formals, Expr arg) Expr key = ATgetFirst(keys); Expr cur = subs.get(key); if (!cur) - throw badTerm(format("argument `%1%' not declared") + throw badTerm(format("function has no formal argument `%1%'") % aterm2String(key), arg); subs.set(key, args.get(key)); } -- cgit 1.4.1