- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试解析我正在编写的一些伪代码,但在获取符号值时遇到了一些问题。它解析成功,但不会返回与“常规”字符相同的值。这是一个例子:
>>> from lark import Lark
>>> parser = Lark('operator: "<" | ">" | "=" | ">=" | "<=" | "!="', start="operator")
>>> parsed = parser.parse(">")
>>> parsed
Tree(operator, [])
>>> parsed.data
'operator'
>>> parsed.value
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Tree' object has no attribute 'value'
为什么没有值?是否有另一种方法来获取所使用的确切运算符?
最佳答案
这里是 Lark 的作者。 Mike 的回答是准确的,但获得相同结果的更好方法是使用“!”规则前缀:
>>> from lark import Lark
>>> parser = Lark('!operator: "<" | ">" | "=" | ">=" | "<=" | "!="', start="operator")
>>> parser.parse(">")
Tree(operator, [Token(__MORETHAN, '>')])
关于python - 使用 Lark 解析获取符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46008954/
我一直在试验 lark ,但遇到了一个小问题。假设我有以下语法。 parser = Lark(''' ?start: value | start "or" value
我正在尝试编写一个 SMTP 解析器,并从 rfc 中获取一些引用字符串的信息。 .所以我有以下语法(取出所有有效的部分,关注无效的部分): quoted_string : /[\x22]/ qco
我的语法有一个优先级问题,我没有更多的想法来解决它。 我正在使用 Lark 事情是这样的(我已经尽可能地简化了问题): from lark import Lark parser = Lark(r"""
我正在尝试解析我正在编写的一些伪代码,但在获取符号值时遇到了一些问题。它解析成功,但不会返回与“常规”字符相同的值。这是一个例子: >>> from lark import Lark >>> pars
我正在为 rules_scala 实现类似 Strict Java Deps 的功能。 如果使用 warn 或 error,我真的很想能够在运行时进行配置。 我似乎记得 skylark 规则无法创建和
让我们首先考虑使用 lark 的简单 json 解析器: import sys from lark import Lark, Transformer, v_args json_grammar = r"
假设我有以下内容: items : (item separator)+ 这适用于: i1, i2, i3, 但不适用于: i1, i2, i3 如何做到不需要结尾分隔符? 最佳答案 这看起来更像是您需
我正在使用 lark,一个优秀的 python parsing library . 它提供了 Earley 和 LALR(1) 解析器,并通过 custom EBNF format 定义。 . (EB
如何实现可以导入文件并仍然使用 LARK 解析它的语法? 例如: @import file.txt ..... 最佳答案 我找到了一个看起来相关的 GitHub,这就是您要找的吗? https://g
考虑 Python Lark parser 的这个简单测试: GRAMMAR = ''' start: container* container: string ":" "{" (container
我正在尝试使用 lark 实现记录定义 DSL .它基于缩进,这让事情变得有点复杂。 Lark 是一个很棒的工具,但我遇到了一些困难。 这是我正在实现的 DSL 的一个片段: record Order
Lark 解析器预定义了一些常见的终端,包括一个字符串。它的定义如下: _STRING_INNER: /.*?/ _STRING_ESC_INNER: _STRING_INNER /(?
我正在尝试为 dsl 编写 lark 语法,但在使用此字符串插值语法时遇到了问题: " abc " <- normal string " xyz~{expression}abc " <- string
我在运行 checkov 时遇到一些问题,我不熟悉 python 库,任何人都可以给我一些提示吗? 这在某些机器上运行良好,但在这台机器上尤其不行...... 在 CentOS 中运行: $ chec
我已经编写了cs143 course中指定的decaf语法. 这是我的代码。 import sys from lark import Lark, Transformer, v_args decaf_g
我是一名优秀的程序员,十分优秀!