summaryrefslogtreecommitdiff
path: root/src/bin/transcriptor.ml
blob: 2378c5d319c3be8a45347400bd8a2ff84bf537a3 (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
module P = T.Parser

module Parser = P.Make(T.Sounds)
module I =   Parser.MenhirInterpreter

let process (optional_line : string option) =
  match optional_line with
  | None -> ()
  | Some line ->
    match T.Reader.process line 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)