aboutsummaryrefslogtreecommitdiffstats
path: root/src/lift.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-12-28 07:14:59 +0000
committerDavid Robillard <d@drobilla.net>2010-12-28 07:14:59 +0000
commit25e58056dc218afe0768081ef1c52974593773c0 (patch)
treef43ea899bcdf8602c0b95e80a81e9cb98e9a7b90 /src/lift.cpp
parent867601738b4fc9a8536a34112f43f33e1541e7fd (diff)
downloadresp-25e58056dc218afe0768081ef1c52974593773c0.tar.gz
resp-25e58056dc218afe0768081ef1c52974593773c0.tar.bz2
resp-25e58056dc218afe0768081ef1c52974593773c0.zip
Add quote form, to allow expressions literal symbols and lists (lists not yet implemented).
Quoting is a thin lexical concept - a quote of a symbol/list compiles to a symbol/list, rather than interpreted as code (i.e. a variable/call, respectively). A quote of anything else is equivalent to its quotee, e.g. a quote of a String is simply that string (the quote is removed at an early stage by the compiler). There is no Quote data type, or explicit unquoting, or anything like that. git-svn-id: http://svn.drobilla.net/resp/resp@365 ad02d1e2-f140-0410-9f75-f8b11f17cedd
Diffstat (limited to 'src/lift.cpp')
-rw-r--r--src/lift.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lift.cpp b/src/lift.cpp
index 201d40f..1991eb5 100644
--- a/src/lift.cpp
+++ b/src/lift.cpp
@@ -271,6 +271,8 @@ resp_lift(CEnv& cenv, Code& code, const AST* ast) throw()
return lift_fn(cenv, code, call);
else if (form == "if")
return lift_args(cenv, code, call);
+ else if (form == "quote")
+ return call;
else
return lift_call(cenv, code, call);
}