gpt4 book ai didi

parsing - 我可以使用 Instaparse 或任何其他 clojure 库解析基于缩进的语言吗?

转载 作者:行者123 更新时间:2023-12-02 09:31:09 25 4
gpt4 key购买 nike

可以使用 Instaparse 或其他 Clojure 库来解析基于缩进的语言吗?我见过使用 Instaparse 解析 EBNF/ABNF 表达的语法的示例。有没有好的方法可以用它来解析像Python这样的缩进感知语言?

最佳答案

显然,您不是第一个在 Instaparse 中遇到此问题的人。

对于大多数解析器生成器,您可以使用自定义词法分析器来解决此问题,并使用 @andrewcooke 提出的方案的一些变体。然而,Instaparse 的设计目的是避免对词法分析器的需求,因此不提供使用词法分析器的接口(interface)。

这种缺乏在issue 9中特别提出。 ,被 issue 10 取代;对于后者,Instaparse 作者提出了一种解决方法:

In the meantime, there's a workaround you could potentially employ. You could map tokens like INDENT and DEDENT to unused characters and then rebuild it as a string, then run instaparse on that. I believe ASCII characters 0-8 and 11-31 are unused and could serve as tokens.

这当然是有可能的,尽管这取决于审美判断是否“做了一些非常古怪的事情”。尽管如此,您仍然可以编写这样的 hack,希望在问题 10 解决后可以将其删除。您可能想加入该问题的讨论。

关于parsing - 我可以使用 Instaparse 或任何其他 clojure 库解析基于缩进的语言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16779676/

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