|
|
|
@ -1227,6 +1227,23 @@ function generateJS(ast, options) {
|
|
|
|
|
].join("\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function generateParserExports() {
|
|
|
|
|
return options.trace
|
|
|
|
|
? [
|
|
|
|
|
"{",
|
|
|
|
|
" peg$SyntaxError as SyntaxError,",
|
|
|
|
|
" peg$DefaultTracer as DefaultTracer,",
|
|
|
|
|
" peg$parse as parse",
|
|
|
|
|
"}"
|
|
|
|
|
].join("\n")
|
|
|
|
|
: [
|
|
|
|
|
"{",
|
|
|
|
|
" peg$SyntaxError as SyntaxError,",
|
|
|
|
|
" peg$parse as parse",
|
|
|
|
|
"}"
|
|
|
|
|
].join("\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let generators = {
|
|
|
|
|
bare() {
|
|
|
|
|
return [
|
|
|
|
@ -1273,6 +1290,36 @@ function generateJS(ast, options) {
|
|
|
|
|
return parts.join("\n");
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
esm() {
|
|
|
|
|
let parts = [];
|
|
|
|
|
let dependencyVars = Object.keys(options.dependencies);
|
|
|
|
|
|
|
|
|
|
parts.push(
|
|
|
|
|
generateGeneratedByComment(),
|
|
|
|
|
""
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (dependencyVars.length > 0) {
|
|
|
|
|
dependencyVars.forEach(variable => {
|
|
|
|
|
parts.push("import " + variable
|
|
|
|
|
+ " from \""
|
|
|
|
|
+ js.stringEscape(options.dependencies[variable])
|
|
|
|
|
+ "\";"
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
parts.push("");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
parts.push(
|
|
|
|
|
toplevelCode,
|
|
|
|
|
"",
|
|
|
|
|
"export " + generateParserExports() + ";",
|
|
|
|
|
""
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return parts.join("\n");
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
amd() {
|
|
|
|
|
let dependencyVars = Object.keys(options.dependencies);
|
|
|
|
|
let dependencyIds = dependencyVars.map(v => options.dependencies[v]);
|
|
|
|
|