js-of-ocaml 中的漂亮打印
Pretty-print in js-of-ocaml
我有以下 OCaml 程序
打开 Js
let lex s = Compiler.Parse_js.lexer_from_file s
let parse s = lex s |> Compiler.Parse_js.parse
let buffer_pp program =
let buf = Buffer.create 10 in
let pp = Compiler.Pretty_print.to_buffer buf in
Compiler.Js_output.program pp program;
Buffer.contents buf |> print_endline
let () =
parse "test.js" |> buffer_pp
和以下 JavaScript 程序
function person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
person.prototype.name = function() {
return this.firstName + " " + this.lastName;
};
当运行编译后的ocaml代码,打印出来
function person(first,last,age,eyecolor)
{this.firstName=first;this.lastName=last;this.age=age;this.eyeColor=eyecolor}
person.prototype.name=function(){return this.firstName+" "+this.lastName};
有没有更好显示格式的漂亮打印方法?
您可以使用
禁用紧凑模式
Compiler.Pretty_print.set_compact pp false;
但是,据我所知,默认情况下它是打开的。
还有很多外部工具可以美化 javascript,如果您对结果仍然不满意,可以使用它们。
我有以下 OCaml 程序 打开 Js
let lex s = Compiler.Parse_js.lexer_from_file s
let parse s = lex s |> Compiler.Parse_js.parse
let buffer_pp program =
let buf = Buffer.create 10 in
let pp = Compiler.Pretty_print.to_buffer buf in
Compiler.Js_output.program pp program;
Buffer.contents buf |> print_endline
let () =
parse "test.js" |> buffer_pp
和以下 JavaScript 程序
function person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
person.prototype.name = function() {
return this.firstName + " " + this.lastName;
};
当运行编译后的ocaml代码,打印出来
function person(first,last,age,eyecolor)
{this.firstName=first;this.lastName=last;this.age=age;this.eyeColor=eyecolor}
person.prototype.name=function(){return this.firstName+" "+this.lastName};
有没有更好显示格式的漂亮打印方法?
您可以使用
禁用紧凑模式 Compiler.Pretty_print.set_compact pp false;
但是,据我所知,默认情况下它是打开的。
还有很多外部工具可以美化 javascript,如果您对结果仍然不满意,可以使用它们。