blob: f86852f9f1802317683ab02af3896118f9ee9d76 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
module T = Translator
let process (optional_line : string option) =
match optional_line with
| None -> ()
| Some line ->
let res = Result.map
(fun t-> Sounds.repr (module Repr.Default) t)
(T.Reader.process line) in
match res with
| Ok response -> print_endline response
| Error err -> print_endline err
let rec repeat channel =
(* Attempt to read one line. *)
let optional_line, continue = T.Lexer.line channel in
process optional_line;
if continue then
repeat channel
let () =
repeat (Lexing.from_channel stdin)
|