9c82a5d248
* feat(trino): intergrate prestoGrammar to dt-sql-parser * feat(trino): add trinoSQl test framework * feat(trino): intergrate test files for trinoSQL * test(trino): support alterStatement test * test(trino): support alter table set authorization statement * feat(trino): complete trinosql alter unit tests * test(trino): complete dropStatement unit cases for trinosql * test(trino): complete create statement unit cases for trinoSQL * test(trino): complete insertStatement unit cases for trinoSQl * test(trino): dropStatement test files changed to short line split * test(trino): complete selectStatement unit cases and grammar check * test(trino): complete commentStatement unit case for trinoSQL * test(trino): complete analyze commit and call clause unit case * test(trino): complete delete deny and describe statement unit case * test(trino): complete explain execute and grant statement unit case * feat(trino): improve GRANT Role grammar * test(trino): complete show statement unit case * test(trino): complete truncateTable startTransaction update and values statement unit case * test(trino): improve update statement test cases * test(trino): complete revoke revoke roles and rollback statement unit case * test(trino): add set statement test case * feat: generator new trino parser and lexer file * feat(trino): improve alter statement grammar * test(trino): complete alter statement unit cases * feat(trino): support case-insensitive lexers * fix(trino): rm unless gen files * test(trino): complete merge and reset session statement unit cases * test(trino): complete merge anduse statement unit cases * test(trino): complete prepare and refresh materialized view statement unit cases * test(trino): improve statement unit cases * test(trino): complete match recognize statement unit cases * test(trino): complete window with row pattern recognition statement unit cases
53 lines
1.4 KiB
JavaScript
53 lines
1.4 KiB
JavaScript
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.12.0-complete.jar');
|
|
const grammars = path.resolve(__dirname, '../src/grammar');
|
|
const output = path.resolve(__dirname, '../src/lib');
|
|
|
|
const entry = [
|
|
'generic',
|
|
'hive',
|
|
'pgsql',
|
|
'plsql',
|
|
'spark',
|
|
'flinksql',
|
|
'trinosql',
|
|
];
|
|
|
|
function compile(language) {
|
|
const cmd = `
|
|
java -jar ${antlr4}
|
|
-Dlanguage=TypeScript
|
|
-visitor
|
|
-listener
|
|
-o ${output}/${language}
|
|
${grammars}/${language}/*.g4
|
|
`.replace(/\n/g, '');
|
|
console.info('Executing:', cmd);
|
|
exec(cmd, (err) => {
|
|
if (err) {
|
|
console.error('Antlr4 build error: ' + language, err);
|
|
} else {
|
|
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('Invalid language: ' + argv.lang + ', supported languages:\n' + entry.join(', '));
|
|
}
|
|
} else {
|
|
console.error('Please to specify the language, just like: yarn antlr4 --lang flinksql');
|
|
}
|
|
|