summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/vm.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/vm.h')
-rw-r--r--Build/source/utils/asymptote/vm.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/vm.h b/Build/source/utils/asymptote/vm.h
new file mode 100644
index 00000000000..2c7d7f63a66
--- /dev/null
+++ b/Build/source/utils/asymptote/vm.h
@@ -0,0 +1,39 @@
+/*****
+ * vm.h
+ * Tom Prince 2005/06/17
+ *
+ * Interface to the virtual machine.
+ *****/
+
+#ifndef VM_H
+#define VM_H
+
+#include "errormsg.h"
+
+namespace vm {
+
+struct lambda; class stack;
+typedef void (*bltin)(stack *s);
+
+#ifdef DEBUG_BLTIN
+// This associates names to bltin functions, so that the output of 'asy -s'
+// can print the names of the bltin functions that appear in the bytecode.
+void registerBltin(bltin b, string s);
+string lookupBltin(bltin b);
+
+#define REGISTER_BLTIN(b, s) \
+ registerBltin((b), (s))
+#else
+#define REGISTER_BLTIN(b, s)
+#endif
+
+void run(lambda *l);
+position getPos();
+
+void errornothrow(const char* message);
+void error(const char* message);
+void error(const ostringstream& message);
+
+} // namespace vm
+
+#endif // VM_H