aboutsummaryrefslogtreecommitdiff
path: root/eval.cpp
diff options
context:
space:
mode:
authorTeddy <ted.sybil@gmail.com>2013-08-11 09:58:22 +0800
committerTeddy <ted.sybil@gmail.com>2013-08-11 09:58:22 +0800
commit05f893bbe7e8a839c26cc951fafb166c25d0a6ee (patch)
tree26ede7d65a8baf4038fd97c297bb9cb7b5a7b7be /eval.cpp
parent2729f71c327f8ef4ddbb620dc486e7334ba40119 (diff)
`apply` and `or` support
Diffstat (limited to 'eval.cpp')
-rw-r--r--eval.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/eval.cpp b/eval.cpp
index 6e56eb4..229d321 100644
--- a/eval.cpp
+++ b/eval.cpp
@@ -22,6 +22,8 @@ void Evaluator::add_builtin_routines() {
ADD_ENTRY("quote", new SpecialOptQuote());
ADD_ENTRY("eval", new SpecialOptEval());
ADD_ENTRY("and", new SpecialOptAnd());
+ ADD_ENTRY("or", new SpecialOptOr());
+ ADD_ENTRY("apply", new SpecialOptApply());
ADD_BUILTIN_PROC("+", num_add);
ADD_BUILTIN_PROC("-", num_sub);
@@ -73,6 +75,11 @@ void Evaluator::add_builtin_routines() {
ADD_BUILTIN_PROC("display", display);
ADD_BUILTIN_PROC("string?", is_string);
ADD_BUILTIN_PROC("symbol?", is_symbol);
+ ADD_BUILTIN_PROC("string<?", string_lt);
+ ADD_BUILTIN_PROC("string<=?", string_le);
+ ADD_BUILTIN_PROC("string>?", string_gt);
+ ADD_BUILTIN_PROC("string<=?", string_ge);
+ ADD_BUILTIN_PROC("string=?", string_eq);
}
Evaluator::Evaluator() {