mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-01-28 07:03:17 +08:00
32 lines
746 B
JavaScript
32 lines
746 B
JavaScript
import { Jison } from 'jison';
|
|
import { createFilter } from 'rollup-pluginutils';
|
|
|
|
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: '' },
|
|
};
|
|
},
|
|
});
|