diff options
| author | Joel Martin <github@martintribe.org> | 2015-02-08 19:23:49 -0600 |
|---|---|---|
| committer | Joel Martin <github@martintribe.org> | 2015-02-08 23:51:45 -0600 |
| commit | c3023f2642064bb416bc6b817ab5ea80fec29fce (patch) | |
| tree | dfaf85ae10920e89f5cd2c6f8e6ea758f76fff30 /matlab/reader.m | |
| parent | 9831bce71071b1db9391ef77d450199c6bc76990 (diff) | |
| download | mal-c3023f2642064bb416bc6b817ab5ea80fec29fce.tar.gz mal-c3023f2642064bb416bc6b817ab5ea80fec29fce.zip | |
matlab: step7, fix reader bug.
Diffstat (limited to 'matlab/reader.m')
| -rw-r--r-- | matlab/reader.m | 14 |
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 '(' |
