Beautifier for S-expression, mainly for WAT
npm install s-exify
The s-exify
module exports the following members.
TypeScript:
import { SExp, parse, beautify } from "s-exify";
JavaScript:
const { parse, beautify } = require("s-exify");
// for mjs
import { parse, beautify } from "s-exify/module";
TypeScript only. A type for parsed S-expression, which is basically nested array of strings.
const sExp: SExp = [
"module",
["global", "$g", ["import", `"js"`, `"global"`], ["mut", "i32"]]
];
A parse function to literally parse a string into SExp
.
parse("(i32.const 1234)") // => ["i32.const", "1234"]
A code beautifier function to format S-expression.
beautify("(i32.const\n1234\n)") // => (i32.const 1234)
beautify("(module ... very long expr ...)") // => (module↵ ...
The npm package provides a CLI script, s-exify
.
cat out.wat | s-exify # with pipe
s-exify out.wat # with a file
It will output the formatted S-expression as stdout.