diff options
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 '(' |
