首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有可能在没有grako的情况下使用with grako生成的解析器?

有没有可能在没有grako的情况下使用with grako生成的解析器?
EN

Stack Overflow用户
提问于 2016-03-18 19:17:52
回答 1查看 173关注 0票数 2

看标题。对于我正在编写的一个小工具,我想介绍一种简单的布尔过滤器语言,并决定“正确地”这样做,并使用解析器生成器。在玩了一些grako之后,我发现我喜欢它,并且很快地完成了过滤器语言(这也很好:)

现在的问题是,如果我想在其他计算机上使用这个工具,或者把它给其他人,我首先必须让grako在那里可用,这有点麻烦,因为其他东西都是标准的python3东西。

我想合作打包必要的grako类是可能的,但这似乎有点混乱(许可在任何方面都会提到)。也许我忽略了一些内置的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-19 15:39:36

简短的回答是No

Grako生成的解析器确实需要grako库。

例如:

代码语言:javascript
复制
with self._group():
    with self._choice():
        with self._option():
            self._token('nameguard')
        with self._option():
            self._token('ignorecase')
        with self._option():
            self._token('left_recursion')
        self._error('expecting one of: ignorecase left_recursion nameguard')

所有的self._xyz()都来自grako.contexts.ParseContextgrako.parsing.Parser。回溯、缓存和所需的簿记都隐藏在上下文管理器和修饰器后面。

生成依赖于grako的解析器是一种设计选择,目的是使解析器更小、更容易理解,这是该项目的主要目标之一(因为有许多其他方面都很好的解析器生成器,它们产生模糊的代码)。

另一种选择是将生成的解析器可以依赖于每个解析器的代码复制到每个解析器上,但这似乎有点非unpythonic的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36092623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档