You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Antlr4生成PLSQL语法后遭遇Python运行时错误求助

解决Antlr4 PLSQL Python代码生成与运行的常见问题

问题背景

使用Antlr4官方PLSQL语法文件生成Python3代码后,运行runPLSQL.py先后遇到两个问题:

  • 报错false未定义
  • 修改布尔值大小写后,出现无法从PlSqlParserBase导入PlSqlParserBase,且本地PlSqlParserBase.py开头是异常JSON结构

解决步骤

1. 修复布尔值大小写错误

Antlr生成的Python代码会使用Java风格的小写布尔值false/true,但Python要求大写False/True:

  • 批量替换所有生成的.py文件(如PlSqlLexer.py、PlSqlParser.py)中的:
    • false → False
    • true → True
  • 也可以用命令行批量替换(Linux/macOS):
    sed -i 's/false/False/g' *.py
    sed -i 's/true/True/g' *.py
    

2. 修复PlSqlParserBase.py的异常结构与导入问题

用wget直接下载GitHub目录下的文件时,会连带页面的JSON元数据一起保存,导致文件开头出现异常结构:

  • 直接从语法仓库的原始代码页面复制PlSqlParserBase.py和PlSqlLexerBase.py的纯代码,保存到本地代码目录
  • 确保这两个基础类文件和Antlr生成的代码文件在同一目录下
  • 检查生成的PlSqlParser.py中的导入语句,确认是from PlSqlParserBase import PlSqlParserBase,路径无错误

3. 规范的文件获取与代码生成流程(避免踩坑)

不要单独下载单个文件,直接克隆整个语法仓库:

git clone https://github.com/antlr/grammars-v4.git
cd grammars-v4/sql/plsql

然后生成Python代码:

java -jar antlr-4.9.3-complete.jar -Dlanguage=Python3 PlSqlLexer.g4 PlSqlParser.g4

最后将仓库内的PlSqlLexerBase.py、PlSqlParserBase.py复制到生成代码的目录即可。

内容的提问来源于stack exchange,提问作者Pro West

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 05:24:55