aboutsummaryrefslogtreecommitdiff
path: root/matlab/reader.m
diff options
context:
space:
mode:
authorJoel Martin <github@martintribe.org>2015-02-08 19:23:49 -0600
committerJoel Martin <github@martintribe.org>2015-02-08 23:51:45 -0600
commitc3023f2642064bb416bc6b817ab5ea80fec29fce (patch)
treedfaf85ae10920e89f5cd2c6f8e6ea758f76fff30 /matlab/reader.m
parent9831bce71071b1db9391ef77d450199c6bc76990 (diff)
downloadmal-c3023f2642064bb416bc6b817ab5ea80fec29fce.tar.gz
mal-c3023f2642064bb416bc6b817ab5ea80fec29fce.zip
matlab: step7, fix reader bug.
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 '('