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

ANTLR未生成ParserBase模块,Python3解析CPP14代码报错求助

解决ANTLR生成Python代码后ModuleNotFoundError: No module named 'CPP14ParserBase'的问题

问题根源

你使用的CPP14语法定义中,CPP14Parser.g4依赖了CPP14ParserBase.g4这个基础语法文件,但你只生成了Lexer和Parser的代码,没有处理这个依赖文件,导致运行时找不到对应的模块。

解决步骤

  • 生成基础模块代码:在你下载的cpp语法目录中找到CPP14ParserBase.g4文件,执行以下命令生成对应的Python代码:
    antlr4 -Dlanguage=Python3 CPP14ParserBase.g4
    
    执行后会生成CPP14ParserBase.py、CPP14ParserBaseListener.py等依赖文件。
  • 统一文件目录:将所有生成的文件(CPP14Lexer.py、CPP14Parser.py、CPP14ParserBase.py及相关Listener/Visitor文件)放在驱动代码所在的同一目录,或者将这些文件的路径添加到Python的sys.path中,确保解释器能找到它们。
  • 检查导入语句:确认驱动代码中的导入逻辑正确,示例如下:
    from CPP14Lexer import CPP14Lexer
    from CPP14Parser import CPP14Parser
    from CPP14ParserBase import CPP14ParserBase
    
    如果用到了Listener或Visitor,也要对应导入生成的相关文件。
  • 重新运行驱动代码:完成上述操作后,再次运行你的解析驱动代码即可解决模块找不到的问题。

内容的提问来源于stack exchange,提问作者Vedanta Mohapatra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 20:39:51