feat: upgrade antlr4 to 4.12.0 (#88)
This commit is contained in:
BIN
build/antlr-4.12.0-complete.jar
Normal file
BIN
build/antlr-4.12.0-complete.jar
Normal file
Binary file not shown.
Binary file not shown.
@ -1,7 +1,8 @@
|
||||
const path = require('path');
|
||||
const exec = require('child_process').exec;
|
||||
const argv = require('yargs-parser')(process.argv.slice(2))
|
||||
|
||||
const antlr4 = path.resolve(__dirname, 'antlr-4.8-complete.jar');
|
||||
const antlr4 = path.resolve(__dirname, './antlr-4.12.0-complete.jar');
|
||||
const grammars = path.resolve(__dirname, '../src/grammar');
|
||||
const output = path.resolve(__dirname, '../src/lib');
|
||||
|
||||
@ -14,16 +15,16 @@ const entry = [
|
||||
'flinksql',
|
||||
];
|
||||
|
||||
entry.forEach((language) => {
|
||||
function compile(language) {
|
||||
const cmd = `
|
||||
java -jar ${antlr4}
|
||||
-Dlanguage=JavaScript
|
||||
-Dlanguage=TypeScript
|
||||
-visitor
|
||||
-listener
|
||||
-o ${output}/${language}
|
||||
${grammars}/${language}/*.g4
|
||||
`.replace(/\n/g, '');
|
||||
console.log('cmd:', cmd);
|
||||
console.info('Executing:', cmd);
|
||||
exec(cmd, (err) => {
|
||||
if (err) {
|
||||
console.error('Antlr4 build error: ' + language, err);
|
||||
@ -31,5 +32,20 @@ entry.forEach((language) => {
|
||||
console.log(`Build ${language} success.`);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (argv.all) { // build all: yarn antlr4 --all
|
||||
entry.forEach((language) => {
|
||||
compile(language);
|
||||
});
|
||||
} else if (argv.lang) {// build single: yarn antlr4 --lang=generic
|
||||
const supportedLanguage = entry.find((language) => language === argv.lang);
|
||||
if (supportedLanguage) {
|
||||
compile(argv.lang);
|
||||
} else {
|
||||
console.error('Unsupported language: ' + argv.lang);
|
||||
}
|
||||
} else {
|
||||
console.error('Please to specify the language, just like: yarn antlr4 --lang flinksql');
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user