1 exception LexerException
of string
2 let lexer_token_safe lexbuf
=
4 with Failure s
-> raise
(LexerException s
)
6 let render tmppath finalpath tree
=
7 let outtex = Util.mapjoin
Texutil.render_tex tree
in
8 let md5 = Digest.to_hex
(Digest.string outtex) in
10 let mathml = Mathml.render tree
11 and html
= Html.render tree
12 in print_string
(match (html
,!Html.conservativeness
,mathml) with
13 None
,_
,None
-> "+" ^
md5
14 | Some h
,Html.CONSERVATIVE
,None
-> "c" ^
md5 ^ h
15 | Some h
,Html.MODERATE
,None
-> "m" ^
md5 ^ h
16 | Some h
,Html.LIBERAL
,None
-> "l" ^
md5 ^ h
17 | Some h
,Html.CONSERVATIVE
,Some m
-> "C" ^
md5 ^ h ^
"\000" ^ m
18 | Some h
,Html.MODERATE
,Some m
-> "M" ^
md5 ^ h ^
"\000" ^ m
19 | Some h
,Html.LIBERAL
,Some m
-> "L" ^
md5 ^ h ^
"\000" ^ m
20 | None
,_
,Some m
-> "X" ^
md5 ^ m
22 Render.render tmppath finalpath
outtex md5
25 Texutil.set_encoding
(try Sys.argv
.(4) with _ -> "UTF-8");
26 try render Sys.argv
.(1) Sys.argv
.(2) (Parser.tex_expr
lexer_token_safe (Lexing.from_string
Sys.argv
.(3)))
27 with Parsing.Parse_error
-> print_string
"S"
28 | LexerException
_ -> print_string
"E"
29 | Texutil.Illegal_tex_function s
-> print_string
("F" ^ s
)
30 | Util.FileAlreadyExists
-> print_string
"-"
31 | Invalid_argument
_ -> print_string
"-"
32 | Failure
_ -> print_string
"-"
33 | Render.ExternalCommandFailure s
-> ()
34 | _ -> print_string
"-"