mysql - 在 ANTLR 中编写 SQL 解析器有哪些挑战?

标签 mysql sql parsing antlr yacc

我正在尝试定义时间表并估计实现 MySQL 方言的 ANTLR 解析器所需的工作量。基本上,它归结为将 YACC 解析器语法从 MySQL 版本 (sql_yacc.yy) 转换为 ANTRL 语法。

它只是看起来那么直截了当吗?我发现语言语法的某些区域可能需要更多的开发和测试:

  • ANTLR 不接受左递归
  • 数字文字将需要自定义 Java 代码以根据值转换类型
  • ...

您知道、遇到或期望的任何其他挑战?

最佳答案

在做这件事之前,你应该知道这是一项不是几天或几周就能完成的工作,而是几个月才能完成的工作。这是一个 sql 解析器库,您可以在创建自己的解析器时引用。

http://www.sqlparser.com/

关于mysql - 在 ANTLR 中编写 SQL 解析器有哪些挑战?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372437/

相关文章:

sql - 在 Oracle 中使用 LISTAGG 进行字符串格式化。转义单引号 ` ' `

python - 如何正确传递文本文件来搜索那里的数据?

mysql - 在 2 个表之间进行连接的选择期间 where 子句中的分配顺序

php - 使用 HTML2PDF 和 MySQL 创建 PDF

mysql - 如何左连接或内连接表本身

ios - JSON 图片解析 IOS Swift 3.0

c# - 在 C# 中比较 2 个价格作为数据类型字符串

javascript - Laravel 和 JQuery : Display mysql row data if ID is set

php - 使用 ORDER BY 时是否应该使用 LIMIT?

java - 连接 JAVA 与 SQLEXPRESS