summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/callable.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/callable.cc')
-rw-r--r--Build/source/utils/asymptote/callable.cc23
1 files changed, 23 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/callable.cc b/Build/source/utils/asymptote/callable.cc
index ba3fe33152c..581c3af2c1c 100644
--- a/Build/source/utils/asymptote/callable.cc
+++ b/Build/source/utils/asymptote/callable.cc
@@ -18,6 +18,10 @@ void func::call(stack *s)
s->run(this);
}
+void nullfunc::print(ostream& out) {
+ out << "nullfunc";
+}
+
bool func::compare(callable* F)
{
if (func* f=dynamic_cast<func*>(F))
@@ -25,6 +29,13 @@ bool func::compare(callable* F)
else return false;
}
+void func::print(ostream& out) {
+ out << "func with lambda";
+#ifdef DEBUG_FRAME
+ out << " " << body->name;
+#endif
+}
+
bool bfunc::compare(callable* F)
{
if (bfunc* f=dynamic_cast<bfunc*>(F))
@@ -32,12 +43,24 @@ bool bfunc::compare(callable* F)
else return false;
}
+void bfunc::print(ostream& out) {
+ out << "bltin";
+#ifdef DEBUG_BLTIN
+ out << " " << lookupBltin(func);
+#endif
+}
+
void thunk::call(stack *s)
{
s->push(arg);
func->call(s);
}
+void thunk::print(ostream& out) {
+ out << "thunk on " << arg << " with ";
+ func->print(out);
+}
+
nullfunc nullfunc::func;
void nullfunc::call(stack *)
{