21 lines
545 B
JavaScript
21 lines
545 B
JavaScript
|
"use strict";
|
||
|
|
||
|
function stringify (document) {
|
||
|
let stringify;
|
||
|
if (document instanceof require("./document")) {
|
||
|
stringify = docStringify;
|
||
|
} else {
|
||
|
stringify = document.source.syntax.stringify;
|
||
|
}
|
||
|
return stringify.apply(this, arguments);
|
||
|
}
|
||
|
|
||
|
function docStringify (document, builder) {
|
||
|
document.nodes.forEach((root, i) => {
|
||
|
builder(root.raws.beforeStart, root, "beforeStart");
|
||
|
root.source.syntax && root.source.syntax.stringify(root, builder);
|
||
|
});
|
||
|
builder(document.raws.afterEnd, document, "afterEnd");
|
||
|
}
|
||
|
module.exports = stringify;
|