HCoop
/
jackhill
/
mal.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
blame
|
history
|
raw
|
HEAD
Merge remote-tracking branch 'kanaka/master' into fsharp
[jackhill/mal.git]
/
crystal
/
step1_read_print.cr
1
#! /usr/bin/env crystal run
2
3
require "./readline"
4
require "./reader"
5
require "./printer"
6
7
# Note:
8
# Employed downcase names because Crystal prohibits uppercase names for methods
9
10
module Mal
11
extend self
12
13
def read(str)
14
read_str str
15
end
16
17
def eval(x)
18
x
19
end
20
21
def print(result)
22
pr_str(result, true)
23
end
24
25
def rep(str)
26
print(eval(read(str)))
27
end
28
end
29
30
while line = my_readline("user> ")
31
begin
32
puts Mal.rep(line)
33
rescue e
34
STDERR.puts e
35
end
36
end