This commit is contained in:
Sidharth Vinod
2022-09-02 09:27:25 +05:30
parent 904eccc4fa
commit e06a7587ac
3 changed files with 60 additions and 30 deletions

View File

@@ -15,9 +15,9 @@
</head> </head>
<body> <body>
<div class="mermaid"> <!-- <div class="mermaid">
info info
</div> </div> -->
<hr /> <hr />

View File

@@ -1,31 +1,61 @@
import { Jison } from 'jison'; const Jison = require('jison');
import { createFilter } from 'rollup-pluginutils'; const fileRegex = /\.(jison)$/;
export default (options = {}) => ({ export default function jison() {
name: 'jison', return {
transform(grammar, id) { name: 'jison',
const { include = ['*.jison', '**/*.jison'], exclude, type = 'lalr' } = options;
const filter = createFilter(include, exclude);
if (!filter(id)) return null;
const parser = new Jison.Generator(grammar, { transform(src, id) {
moduleType: 'js', if (fileRegex.test(id)) {
type, const parser = new Jison.Generator(src, {
}); moduleType: 'js',
// type,
});
const source = parser.generate();
const exporter = `
const parse = parser.parse.bind(parser);
parser.parser = parse;
const source = parser.generate(); export { parser };
const exporter = ` export default parser;
const parse = parser.parse.bind(parser); `;
parser.parser = parse;
export { parser }; // console.log('helll');
export default parser;
`;
console.log('helll'); return {
return { code: `${source} ${exporter}`,
code: `${source} ${exporter}`, map: null, // provide source map if available
map: { mappings: '' }, };
}; }
}, },
}); };
}
// 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: '' },
// };
// },
// });

View File

@@ -2,6 +2,7 @@ import { resolve } from 'path';
import { defineConfig } from 'vite'; import { defineConfig } from 'vite';
import jison from './jison'; import jison from './jison';
export default defineConfig({ export default defineConfig({
plugins: [jison()],
resolve: { resolve: {
extensions: ['.ts', '.js', '.json', '.jison'], extensions: ['.ts', '.js', '.json', '.jison'],
}, },
@@ -13,7 +14,6 @@ export default defineConfig({
fileName: 'mermaid', fileName: 'mermaid',
}, },
rollupOptions: { rollupOptions: {
plugins: [jison()],
// make sure to externalize deps that shouldn't be bundled // make sure to externalize deps that shouldn't be bundled
// into your library // into your library
output: { output: {