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')
简单的回答是不。在
Grako生成的解析器确实需要
grako
库。在例如:
所有的}。所需的回溯、缓存和簿记都隐藏在上下文管理器和装饰器后面。在
self._xyz()
来自grako.contexts.ParseContext
或{生成依赖于
grako
的解析器是一种设计选择,旨在使解析器更小、更易于理解,这是该项目的主要目标之一(因为有许多其他优秀的解析器生成器可以生成模糊代码)。在另一个选择是将生成的解析器可以依赖的代码复制到每个解析器上,但这似乎有点不和谐。在
相关问题 更多 >
编程相关推荐