51c2c1fe |
1 | defmodule Mix.Tasks.Step0Repl do |
2 | def run(_), do: main |
3 | |
4 | def main do |
5 | IO.write(:stdio, "user> ") |
6 | IO.read(:stdio, :line) |
7 | |> handle_line |
8 | |
9 | main |
10 | end |
11 | |
2b9d9010 |
12 | defp handle_line(:eof), do: exit(:normal) |
51c2c1fe |
13 | defp handle_line(line) do |
14 | IO.write(:stdio, read_eval_print(line)) |
15 | end |
16 | |
17 | def read(input) do |
18 | input |
19 | end |
20 | |
21 | def eval(input) do |
22 | input |
23 | end |
24 | |
25 | def print(input) do |
26 | input |
27 | end |
28 | |
29 | def read_eval_print(line) do |
30 | read(line) |
31 | |> eval |
32 | |> print |
33 | end |
34 | end |