diff options
Diffstat (limited to 'ruby/reader.rb')
| -rw-r--r-- | ruby/reader.rb | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ruby/reader.rb b/ruby/reader.rb index eddb319..d6d9b8d 100644 --- a/ruby/reader.rb +++ b/ruby/reader.rb @@ -59,6 +59,10 @@ def read_form(rdr) token = rdr.peek return case rdr.peek when ";" then nil + when "'" then rdr.next; List.new [:quote, read_form(rdr)] + when "`" then rdr.next; List.new [:quasiquote, read_form(rdr)] + when "~" then rdr.next; List.new [:unquote, read_form(rdr)] + when "~@" then rdr.next; List.new [:"splice-unquote", read_form(rdr)] when "(" then read_list(rdr, List, "(", ")") when ")" then raise "unexpected ')'" when "[" then read_list(rdr, Vector, "[", "]") |
