aboutsummaryrefslogtreecommitdiff
path: root/perl/reader.pm
diff options
context:
space:
mode:
authorJoel Martin <github@martintribe.org>2014-12-18 20:33:49 -0600
committerJoel Martin <github@martintribe.org>2015-01-09 16:16:50 -0600
commitb8ee29b22fbaa7a01f2754b4d6dd9af52e02017c (patch)
treef4d977ed220e9a3f665cfbf4f68770a81e4c2095 /perl/reader.pm
parentaaba249304b184e12e2445ab22d66df1f39a51a5 (diff)
downloadmal-b8ee29b22fbaa7a01f2754b4d6dd9af52e02017c.tar.gz
mal-b8ee29b22fbaa7a01f2754b4d6dd9af52e02017c.zip
All: add keywords.
Also, fix nth and count to match cloure.
Diffstat (limited to 'perl/reader.pm')
-rw-r--r--perl/reader.pm3
1 files changed, 2 insertions, 1 deletions
diff --git a/perl/reader.pm b/perl/reader.pm
index cd4c565..501f992 100644
--- a/perl/reader.pm
+++ b/perl/reader.pm
@@ -6,7 +6,7 @@ no if $] >= 5.018, warnings => "experimental::smartmatch";
use Exporter 'import';
our @EXPORT_OK = qw( read_str );
-use types qw($nil $true $false _hash_map);
+use types qw($nil $true $false _keyword _hash_map);
use Data::Dumper;
@@ -37,6 +37,7 @@ sub read_atom {
$str =~ s/\\n/\n/g;
return String->new($str)
}
+ when(/^:/) { return _keyword(substr($token,1)) }
when(/^nil$/) { return $nil }
when(/^true$/) { return $true }
when(/^false$/) { return $false }