aboutsummaryrefslogtreecommitdiff
path: root/cs/reader.cs
diff options
context:
space:
mode:
authorJoel Martin <github@martintribe.org>2014-04-09 21:57:50 -0500
committerJoel Martin <github@martintribe.org>2014-04-09 21:57:50 -0500
commit17ae845ec1dc2c703f99d3cb9f5c01e1b5c52837 (patch)
tree878484c58d55c138e9553a1bde0d031772c8bbdb /cs/reader.cs
parentfaee4d12309cec8c90854456fabf4e5e75370518 (diff)
downloadmal-17ae845ec1dc2c703f99d3cb9f5c01e1b5c52837.tar.gz
mal-17ae845ec1dc2c703f99d3cb9f5c01e1b5c52837.zip
C#: add metadata and atoms.
Diffstat (limited to 'cs/reader.cs')
-rw-r--r--cs/reader.cs8
1 files changed, 8 insertions, 0 deletions
diff --git a/cs/reader.cs b/cs/reader.cs
index a8d09c6..8ab53da 100644
--- a/cs/reader.cs
+++ b/cs/reader.cs
@@ -125,6 +125,14 @@ namespace Mal {
rdr.next();
return new MalList(new MalSymbol("splice-unquote"),
read_form(rdr));
+ case "^": rdr.next();
+ MalVal meta = read_form(rdr);
+ return new MalList(new MalSymbol("with-meta"),
+ read_form(rdr),
+ meta);
+ case "@": rdr.next();
+ return new MalList(new MalSymbol("deref"),
+ read_form(rdr));
case "(": form = read_list(rdr, new MalList(), '(' , ')'); break;
case ")": throw new ParseError("unexpected ')'");