Mic*_*ael 7 python parsing ply
我在命令行应用程序中使用PLY,我将其打包为要安装的Python egg pip.每次我从命令行运行我的脚本时,都会看到以下消息:
"Generating LALR tables"
Run Code Online (Sandbox Code Playgroud)
此外,parser.out和parsetab.py文件将写入调用脚本的目录.有没有办法用应用程序发送这些文件,以便它不会每次都重新生成表?
我最终做的就是关闭优化。我正在浏览 PLY 3.4 源代码,并在词法分析器代码中发现了这个小金块:
# If in optimize mode, we write the lextab
if lextab and optimize:
lexobj.writetab(lextab,outputdir)
return lexobj
Run Code Online (Sandbox Code Playgroud)
通过将构建词法分析器和解析器的代码更改为:
self.lexer = lex.lex(module=self, optimize=False, debug=False, **kwargs)
和
self.lexer = lex.lex(module=self, optimize=False, debug=False, **kwargs)
我避免了所有文件写出。调试器将.out文件写入目录,Python 文件是标志的结果optimize。
虽然这暂时有效,但我不能说我对这种方法完全满意。据推测,采用某种方法来保持优化,同时保持工作目录干净将是一个卓越的解决方案,将带来更好的性能。如果其他人有更好的方法,我非常乐意接受。
| 归档时间: |
|
| 查看次数: |
3630 次 |
| 最近记录: |