mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Math
synced 2024-11-29 01:44:45 +00:00
25 lines
668 B
OCaml
25 lines
668 B
OCaml
|
exception LexerException of string
|
||
|
let lexer_token_safe lexbuf =
|
||
|
try Lexer.token lexbuf
|
||
|
with Failure s -> raise (LexerException s)
|
||
|
|
||
|
let rec foo () =
|
||
|
try
|
||
|
let line = input_line stdin in
|
||
|
(try
|
||
|
let tree = Parser.tex_expr lexer_token_safe (Lexing.from_string line) in
|
||
|
(match Html.render tree with
|
||
|
Some _ -> print_string "$^\n"
|
||
|
| None -> print_string "$_\n";
|
||
|
)
|
||
|
with
|
||
|
Texutil.Illegal_tex_function s -> print_string ("$T" ^ s ^ " " ^ line ^ "\n")
|
||
|
| LexerException s -> print_string ("$L" ^ line ^ "\n")
|
||
|
| _ -> print_string ("$ " ^ line ^ "\n"));
|
||
|
flush stdout;
|
||
|
foo ();
|
||
|
with
|
||
|
End_of_file -> ()
|
||
|
;;
|
||
|
foo ();;
|