mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-08-15 06:19:24 +02:00
62 lines
1.4 KiB
JavaScript
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: '' },
|
|
// };
|
|
// },
|
|
// });
|