aboutsummaryrefslogtreecommitdiff
path: root/builtin.h
diff options
context:
space:
mode:
authorTeddy <ted.sybil@gmail.com>2013-08-07 22:32:07 +0800
committerTeddy <ted.sybil@gmail.com>2013-08-07 22:32:07 +0800
commit5e6dee2f0935d7cbc21ce6990b805077c7928f5f (patch)
treed5e83342161a21f18d177ab65d1fd205ab0be48b /builtin.h
parentb6a279fafe43f502ab5647a705b8880f8961b404 (diff)
added support for `eval`
Diffstat (limited to 'builtin.h')
-rw-r--r--builtin.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/builtin.h b/builtin.h
index b6585f3..be40b90 100644
--- a/builtin.h
+++ b/builtin.h
@@ -216,6 +216,21 @@ class SpecialOptQuote: public SpecialOptObj {
string ext_repr();
};
+/** @class SpecialOptEval
+ * The implementation of `eval` operator
+ */
+class SpecialOptEval: public SpecialOptObj {
+ private:
+ unsigned char state; /**< 0 for prepared, 1 for pre_called */
+ public:
+ SpecialOptEval();
+ void prepare(Cons *pc);
+ Cons *call(ArgList *args, Environment * &envt,
+ Continuation * &cont, FrameObj ** &top_ptr);
+
+ string ext_repr();
+};
+
#define BUILTIN_PROC_DEF(func)\
EvalObj *(func)(ArgList *args, const string &name)