Files
mermaid/jison.js
Sidharth Vinod e06a7587ac Vite
2022-09-02 09:27:25 +05:30

62 lines
1.4 KiB
JavaScript

const Jison = require('jison');
const fileRegex = /\.(jison)$/;
export default function jison() {
return {
name: 'jison',
transform(src, id) {
if (fileRegex.test(id)) {
const parser = new Jison.Generator(src, {
moduleType: 'js',
// type,
});
const source = parser.generate();
const exporter = `
const parse = parser.parse.bind(parser);
parser.parser = parse;
export { parser };
export default parser;
`;
// console.log('helll');
return {
code: `${source} ${exporter}`,
map: null, // provide source map if available
};
}
},
};
}
// export default (options = {}) => ({
// name: 'jison',
// transform(grammar, id) {
// const { include = ['*.jison', '**/*.jison'], exclude, type = 'lalr' } = options;
// const filter = createFilter(include, exclude);
// if (!filter(id)) return null;
// const parser = new Jison.Generator(grammar, {
// moduleType: 'js',
// type,
// });
// const source = parser.generate();
// const exporter = `
// const parse = parser.parse.bind(parser);
// parser.parser = parse;
// export { parser };
// export default parser;
// `;
// console.log('helll');
// return {
// code: `${source} ${exporter}`,
// map: { mappings: '' },
// };
// },
// });