X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=math%2Ftexvc.ml;h=33a14b7be714ae38721fa863c337440b1e4d7115;hb=8180764a47332303ef384e75a7860da1a55bc844;hp=38a7e93b7e370308e97ee47de2e049ff68b9c7b6;hpb=251527d2c1f916268323d57d572f1599a026c54c;p=lhc%2Fweb%2Fwiklou.git diff --git a/math/texvc.ml b/math/texvc.ml index 38a7e93b7e..33a14b7be7 100644 --- a/math/texvc.ml +++ b/math/texvc.ml @@ -1,8 +1,12 @@ +(* vim: set sw=8 ts=8 et: *) exception LexerException of string + +(* *) let lexer_token_safe lexbuf = try Lexer.token lexbuf with Failure s -> raise (LexerException s) +(* *) let render tmppath finalpath tree backcolor = let outtex = Util.mapjoin Texutil.render_tex tree in let md5 = Digest.to_hex (Digest.string outtex) in @@ -21,9 +25,29 @@ let render tmppath finalpath tree backcolor = ); Render.render tmppath finalpath outtex md5 backcolor end + +(* TODO: document + * Arguments: + * 1st : + * 2nd : + * 3rd : + * 4th : encoding (Default: UTF-8) + * 5th : color (Default: rgb 1.0 1.0 1.0) + * + * Output one character: + * S : Parsing error + * E : Lexer exception raised + * F : TeX function not recognized + * - : Generic/Default failure code. Might be an invalid argument, + * output file already exist, a problem with an external + * command ... + * *) let _ = Texutil.set_encoding (try Sys.argv.(4) with _ -> "UTF-8"); - try render Sys.argv.(1) Sys.argv.(2) (Parser.tex_expr lexer_token_safe (Lexing.from_string Sys.argv.(3))) (try Sys.argv.(5) with _ -> "rgb 1.0 1.0 1.0") + try render Sys.argv.(1) Sys.argv.(2) ( + Parser.tex_expr lexer_token_safe ( + Lexing.from_string Sys.argv.(3)) + ) (try Sys.argv.(5) with _ -> "rgb 1.0 1.0 1.0") with Parsing.Parse_error -> print_string "S" | LexerException _ -> print_string "E" | Texutil.Illegal_tex_function s -> print_string ("F" ^ s)