aboutsummaryrefslogtreecommitdiff
path: root/ruby/reader.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby/reader.rb')
-rw-r--r--ruby/reader.rb4
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, "[", "]")