Merge branch 'master' into ada
[jackhill/mal.git] / ada / step0_repl.adb
1 with Ada.Text_IO;
2 with Ada.IO_Exceptions;
3
4 procedure Step0_Repl is
5
6 function Read (Param : String) return String is
7 begin
8 return Param;
9 end Read;
10
11 function Eval (Param : String) return String is
12 begin
13 return Param;
14 end Eval;
15
16 function Print (Param : String) return String is
17 begin
18 return Param;
19 end Print;
20
21 function Rep (Param : String) return String is
22 Read_Str : String := Read (Param);
23 Eval_Str : String := Eval (Read_Str);
24 Print_Str : String := Print (Eval_Str);
25 begin
26 return Print_Str;
27 end Rep;
28
29 S : String (1..1024);
30 Last : Natural;
31
32 begin
33
34 loop
35 Ada.Text_IO.Put ("user> ");
36 Ada.Text_IO.Get_Line (S, Last);
37 Ada.Text_IO.Put_Line (Rep (S (1..Last)));
38 end loop;
39
40 exception
41 when Ada.IO_Exceptions.End_Error => null;
42 -- i.e. exit without textual output
43 end Step0_Repl;