feat: migrate to antlr4ng (#267)
* feat: replace antlr4ts with antlr4ng * feat: switch caseInsensitive option on * feat: recompile all g4 file * feat: update parser to fit antlr4ng * test: update test to fit antlr4ng
This commit is contained in:
@ -19,9 +19,9 @@ describe('MySQL ErrorStrategy test', () => {
|
||||
const statementCount = splitListener.statementsContext.length;
|
||||
splitListener.statementsContext.map((item, index) => {
|
||||
if (index !== statementCount - 1 && index !== statementCount - 2) {
|
||||
expect(item.exception).not.toBe(undefined);
|
||||
expect(item.exception).not.toBe(null);
|
||||
} else {
|
||||
expect(item.exception).toBe(undefined);
|
||||
expect(item.exception).toBe(null);
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -36,9 +36,9 @@ describe('MySQL ErrorStrategy test', () => {
|
||||
const statementCount = splitListener.statementsContext.length;
|
||||
splitListener.statementsContext.map((item, index) => {
|
||||
if (index !== statementCount - 1 && index !== 0) {
|
||||
expect(item.exception).not.toBe(undefined);
|
||||
expect(item.exception).not.toBe(null);
|
||||
} else {
|
||||
expect(item.exception).toBe(undefined);
|
||||
expect(item.exception).toBe(null);
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -52,9 +52,9 @@ describe('MySQL ErrorStrategy test', () => {
|
||||
|
||||
splitListener.statementsContext.map((item, index) => {
|
||||
if (index !== 0 && index !== 1) {
|
||||
expect(item.exception).not.toBe(undefined);
|
||||
expect(item.exception).not.toBe(null);
|
||||
} else {
|
||||
expect(item.exception).toBe(undefined);
|
||||
expect(item.exception).toBe(null);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -1,6 +1,6 @@
|
||||
import MySQL from 'src/parser/mysql';
|
||||
import { MySqlParserListener } from 'src/lib/mysql/MySqlParserListener';
|
||||
import { ParseTreeListener } from 'antlr4ts/tree/ParseTreeListener';
|
||||
import { ParseTreeListener } from 'antlr4ng';
|
||||
|
||||
describe('MySQL Listener Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
@ -13,8 +13,12 @@ describe('MySQL Listener Tests', () => {
|
||||
let result = '';
|
||||
class MyListener implements MySqlParserListener {
|
||||
enterTableName = (ctx): void => {
|
||||
result = ctx.text.toLowerCase();
|
||||
result = ctx.getText().toLowerCase();
|
||||
};
|
||||
visitTerminal() {}
|
||||
visitErrorNode() {}
|
||||
enterEveryRule() {}
|
||||
exitEveryRule() {}
|
||||
}
|
||||
const listenTableName: any = new MyListener();
|
||||
|
||||
|
@ -42,7 +42,7 @@ describe('MySQL Database Administration Syntax Tests', () => {
|
||||
it(sql, () => {
|
||||
const result = parser.validate(sql);
|
||||
if (result.length) {
|
||||
console.log(result, `\nPlease check sql: ${sql}`);
|
||||
console.error(result, `\nPlease check sql: ${sql}`);
|
||||
}
|
||||
expect(result.length).toBe(0);
|
||||
});
|
||||
|
@ -49,7 +49,7 @@ describe('MySQL DDL Syntax Tests', () => {
|
||||
it(sql, () => {
|
||||
const result = parser.validate(sql);
|
||||
if (result.length) {
|
||||
console.log(result, `\nPlease check sql: ${sql}`);
|
||||
console.error(result, `\nPlease check sql: ${sql}`);
|
||||
}
|
||||
expect(result.length).toBe(0);
|
||||
});
|
||||
|
@ -33,7 +33,7 @@ describe('MySQL DML Syntax Tests', () => {
|
||||
it(sql, () => {
|
||||
const result = parser.validate(sql);
|
||||
if (result.length) {
|
||||
console.log(result, `\nPlease check sql: ${sql}`);
|
||||
console.error(result, `\nPlease check sql: ${sql}`);
|
||||
}
|
||||
expect(result.length).toBe(0);
|
||||
});
|
||||
|
@ -27,7 +27,7 @@ describe('MySQL Transactional and Locking, Replication, Prepared Compound and Ut
|
||||
it(sql, () => {
|
||||
const result = parser.validate(sql);
|
||||
if (result.length) {
|
||||
console.log(result, `\nPlease check sql: ${sql}`);
|
||||
console.error(result, `\nPlease check sql: ${sql}`);
|
||||
}
|
||||
expect(result.length).toBe(0);
|
||||
});
|
||||
|
@ -1,6 +1,6 @@
|
||||
import MySQL from 'src/parser/mysql';
|
||||
import { MySqlParserVisitor } from 'src/lib/mysql/MySqlParserVisitor';
|
||||
import { AbstractParseTreeVisitor } from 'antlr4ts/tree/AbstractParseTreeVisitor';
|
||||
import { AbstractParseTreeVisitor } from 'antlr4ng';
|
||||
|
||||
describe('MySQL Visitor Tests', () => {
|
||||
const expectTableName = 'user1';
|
||||
@ -8,7 +8,7 @@ describe('MySQL Visitor Tests', () => {
|
||||
const parser = new MySQL();
|
||||
|
||||
const parseTree = parser.parse(sql, (error) => {
|
||||
console.log('Parse error:', error);
|
||||
console.error('Parse error:', error);
|
||||
});
|
||||
|
||||
test('Visitor visitTableName', () => {
|
||||
@ -19,7 +19,7 @@ describe('MySQL Visitor Tests', () => {
|
||||
}
|
||||
|
||||
visitTableName = (ctx): void => {
|
||||
result = ctx.text.toLowerCase();
|
||||
result = ctx.getText().toLowerCase();
|
||||
};
|
||||
}
|
||||
const visitor = new MyVisitor();
|
||||
|
Reference in New Issue
Block a user