gpt4 book ai didi

antlr4 解析器重用和预热

转载 作者:行者123 更新时间:2023-12-04 06:41:10 26 4
gpt4 key购买 nike

在我的用例中,我必须使用生成的解析树上的访问者将数千个小的独立表达式解析为树表示。
当前为每个解析操作创建新的流、词法分析器和解析器实例。

我认为这可能不是最佳选择。在这样的设置中可以重用哪些对象实例以利用 ANTLR4 的预热属性?线程安全如何 - 这些实例中的哪些应该是线程本地的?重用词法分析器或解析器实例是否需要某种重置?

最佳答案

在 ANTLR 4 的早期(在最初发布之前的几个月),自适应 DFA 缓存是基于每个实例创建的,因此使用 Lexer.setInputStreamParser.setInputStream是取得良好业绩的必要条件。

这已不再是这种情况。后台缓存现在在所有解析器实例之间共享并且是线程安全的。 Lexer的方法和 Parser类不是线程安全的,因此如果要在多个线程上解析,则需要创建词法分析器和解析器的多个实例。

关于antlr4 解析器重用和预热,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15236694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com