aboutsummaryrefslogtreecommitdiff
path: root/matlab/reader.m
diff options
context:
space:
mode:
Diffstat (limited to 'matlab/reader.m')
-rw-r--r--matlab/reader.m14
1 files changed, 13 insertions, 1 deletions
diff --git a/matlab/reader.m b/matlab/reader.m
index 7053aef..968e5a1 100644
--- a/matlab/reader.m
+++ b/matlab/reader.m
@@ -49,7 +49,19 @@ classdef reader
function ast = read_form(rdr)
%fprintf('in read_form\n');
token = rdr.peek();
- switch token(1)
+ switch token
+ case ''''
+ rdr.next();
+ ast = {types.Symbol('quote'), reader.read_form(rdr)};
+ case '`'
+ rdr.next();
+ ast = {types.Symbol('quasiquote'), reader.read_form(rdr)};
+ case '~'
+ rdr.next();
+ ast = {types.Symbol('unquote'), reader.read_form(rdr)};
+ case '~@'
+ rdr.next();
+ ast = {types.Symbol('splice-unquote'), reader.read_form(rdr)};
case ')'
error('unexpected '')''');
case '('