UNPKG

@dbml/core

Version:
86 lines (84 loc) 4.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parse = parse; var _antlr = _interopRequireDefault(require("antlr4")); var _PostgreSQLLexer = _interopRequireDefault(require("../parsers/postgresql/PostgreSQLLexer")); var _PostgreSQLParser = _interopRequireDefault(require("../parsers/postgresql/PostgreSQLParser")); var _PostgresASTGen = _interopRequireDefault(require("./postgres/PostgresASTGen")); var _MySqlLexer = _interopRequireDefault(require("../parsers/mysql/MySqlLexer")); var _MySqlParser = _interopRequireDefault(require("../parsers/mysql/MySqlParser")); var _MySQLASTGen = _interopRequireDefault(require("./mysql/MySQLASTGen")); var _SnowflakeLexer = _interopRequireDefault(require("../parsers/snowflake/SnowflakeLexer")); var _SnowflakeParser = _interopRequireDefault(require("../parsers/snowflake/SnowflakeParser")); var _SnowflakeASTGen = _interopRequireDefault(require("./snowflake/SnowflakeASTGen")); var _ParserErrorListener = _interopRequireDefault(require("./ParserErrorListener")); var _TSqlLexer = _interopRequireDefault(require("../parsers/mssql/TSqlLexer")); var _TSqlParser = _interopRequireDefault(require("../parsers/mssql/TSqlParser")); var _MssqlASTGen = _interopRequireDefault(require("./mssql/MssqlASTGen")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /* eslint-disable import/no-named-as-default-member */ /* eslint-disable import/no-named-as-default */ function parse(input, format) { var chars = new _antlr["default"].InputStream(input); var database = null; var errorListener = new _ParserErrorListener["default"](); switch (format) { case 'postgres': { var lexer = new _PostgreSQLLexer["default"](chars); var tokens = new _antlr["default"].CommonTokenStream(lexer); var parser = new _PostgreSQLParser["default"](tokens); parser.buildParseTrees = true; parser.removeErrorListeners(); parser.addErrorListener(errorListener); var parseTree = parser.root(); database = parseTree.accept(new _PostgresASTGen["default"]()); if (errorListener.errors.length) throw errorListener.errors; break; } case 'mysql': { var _lexer = new _MySqlLexer["default"](chars); var _tokens = new _antlr["default"].CommonTokenStream(_lexer); var _parser = new _MySqlParser["default"](_tokens); _parser.buildParseTrees = true; _parser.removeErrorListeners(); _parser.addErrorListener(errorListener); var _parseTree = _parser.root(); database = _parseTree.accept(new _MySQLASTGen["default"]()); if (errorListener.errors.length) throw errorListener.errors; break; } case 'mssql': { var _lexer2 = new _TSqlLexer["default"](chars); var _tokens2 = new _antlr["default"].CommonTokenStream(_lexer2); var _parser2 = new _TSqlParser["default"](_tokens2); _parser2.buildParseTrees = true; _parser2.removeErrorListeners(); _parser2.addErrorListener(errorListener); var _parseTree2 = _parser2.tsql_file(); database = _parseTree2.accept(new _MssqlASTGen["default"]()); if (errorListener.errors.length) throw errorListener.errors; break; } case 'snowflake': { var _lexer3 = new _SnowflakeLexer["default"](chars); var _tokens3 = new _antlr["default"].CommonTokenStream(_lexer3); var _parser3 = new _SnowflakeParser["default"](_tokens3); _parser3.buildParseTrees = true; _parser3.removeErrorListeners(); _parser3.addErrorListener(errorListener); var _parseTree3 = _parser3.snowflake_file(); database = _parseTree3.accept(new _SnowflakeASTGen["default"]()); if (errorListener.errors.length) throw errorListener.errors; break; } default: throw new Error("Format not supported: ".concat(format)); } return database; }