build: add antlr4 compile script
This commit is contained in:
parent
d86a6e7638
commit
68800312d3
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@ package-lock.json
|
||||
.vscode
|
||||
.history
|
||||
lib/
|
||||
src/**/.antlr
|
BIN
build/antlr-4.8-complete.jar
Normal file
BIN
build/antlr-4.8-complete.jar
Normal file
Binary file not shown.
@ -1,31 +1,35 @@
|
||||
const path = require('path');
|
||||
const exec = require('child_process').exec;
|
||||
|
||||
const antlr4 = path.resolve(__dirname, 'antlr-4.8-complete.jar');
|
||||
const grammars = path.resolve(__dirname, '../src/grammar');
|
||||
const output = path.resolve(__dirname, '../src/parser');
|
||||
|
||||
const languages = [
|
||||
const entry = [
|
||||
'generic',
|
||||
'mysql',
|
||||
// 'oracle',
|
||||
// 'flink',
|
||||
// 'hive',
|
||||
// 'impala',
|
||||
// 'libra',
|
||||
// 'spark',
|
||||
// 'tidb'
|
||||
'hive',
|
||||
'plsql',
|
||||
'spark',
|
||||
'tsql',
|
||||
];
|
||||
|
||||
languages.forEach(language => {
|
||||
|
||||
exec(`npx antlr4-tool -l ts -o ${grammars}/${language}/parser ${grammars}/${language}/*.g4`, (error) => {
|
||||
console.log('error:', error)
|
||||
})
|
||||
|
||||
// const compiledResults = antlr4Tool.compile({
|
||||
// language: 'ts', // Only support for JavaScript & TypeScript
|
||||
// grammarFiles: [`${grammars}/${language}/*.g4`],
|
||||
// outputDirectory: `${grammars}/${language}/parser`
|
||||
// });
|
||||
|
||||
})
|
||||
entry.forEach((language) => {
|
||||
const cmd = `
|
||||
java -jar ${antlr4}
|
||||
-Dlanguage=JavaScript
|
||||
-visitor
|
||||
-listener
|
||||
-o ${output}/${language}
|
||||
${grammars}/${language}/*.g4
|
||||
`.replace(/\n/g, '');
|
||||
console.log('cmd:', cmd);
|
||||
exec(cmd, (err) => {
|
||||
if (err) {
|
||||
console.error('Antlr4 build error: ' + language, err);
|
||||
} else {
|
||||
console.log(`Build ${language} success.`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
],
|
||||
"main": "lib/index.js",
|
||||
"scripts": {
|
||||
"build:parser": "node build/antlr4.js",
|
||||
"antlr": "node build/antlr4.js",
|
||||
"build": "npm test && rm -rf lib && tsc",
|
||||
"eslint": "eslint ./src/**/*.ts",
|
||||
"check-types": "tsc --skipLibCheck",
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
126333
src/parser/TSqlParser.js
126333
src/parser/TSqlParser.js
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user