通过 Lark 解析获取符号

2024-06-24

我正在尝试解析我正在编写的一些伪代码,但在获取符号值时遇到一些问题。它解析成功,但不会返回与“常规”字符相同的值。这是一个例子:

>>> 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 的作者在这里。迈克的答案是准确的,但获得相同结果的更好方法是使用“!”规则的前缀:

>>> from lark import Lark
>>> parser = Lark('!operator: "<" | ">" | "=" | ">=" | "<=" | "!="', start="operator")
>>> parser.parse(">")
Tree(operator, [Token(__MORETHAN, '>')])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 Lark 解析获取符号 的相关文章

随机推荐

  • 实体框架 6 - 查询性能

    我使用 Entity Framework 6 目前有一个包含许多包含的查询 它将大约 1200 个实体加载到 dbContext 中 加载实体似乎相当慢 因为查询需要几乎一分钟的时间 对于表演我能做些什么吗 我有 4 个这样的查询需要 2
  • `*const T` 和 *mut T` 原始指针有什么区别?

    我正在编写一些不安全的 Rust 代码 所以我需要知道之间的确切区别 const T and mut T 我以为它就像 T and mut T 即你不能变异T通过 T 句号 但事实似乎并非如此 例如 指针包装器NonNull
  • 即使队列已重命名,如何在 Windows 上唯一标识该打印队列?

    如何唯一且可靠地识别给定服务器上的 Windows 打印队列 包括跨打印队列重命名 我想处理如下情况 Jdoe 创建打印机 A 我的程序在某个时刻收集有关打印机 A 的信息 Jdoe 将打印机 A 重命名为打印机 AA 我的程序在某个时刻再
  • 我可以在 OSX 中使用 Python 捕获键盘和鼠标事件吗?

    我正在尝试用 Python 为 OSX 编写一个简单的宏记录器 它可以在脚本在后台运行时捕获鼠标和按键事件并重播它们 我可以用autopy https github com msanders autopy对于后者 前者是否有一个类似的简单库
  • 我应该如何从主域链接子域的 CSS 文件?

    我可能在这里错误地使用了子域 而不是使用子目录 但我想将相同的 CSS 从我的主域 joeisaacson com 导入到我的子域 hire joeisaacson com 当前的文件结构如下 public html where joeis
  • 多个 tmux 前缀键组合?

    我按照我喜欢的方式设置了 tmux 我选择的前缀键是 因为它非常快速且易于使用 一切都很顺利 直到我尝试在手机上使用 tmux 因为手机没有 键 无论如何 是否可以将 a 附加绑定到前缀 这样我就可以使用BOTH同时进行组合 从 开始tmu
  • GDI+ 中随机发生的 AccessViolationException

    我们遇到的问题是有时AccessViolationException发生并绘制一个简单的组框 其背景为白色 顶部有一个红十字 我们无法可靠地重现此错误 它只是不时发生 我们没有做任何特别的事情 我们只是显示一个主窗口 其中包含菜单 工具栏
  • 使用 Spring MVC 进行基于角色的访问控制

    我想知道 Spring 基于角色的访问控制的最佳实践 我的要求是 我将向用户分配一组角色 例如 用户1 管理员 用户2 专家 user1 的访问权限如下所示 admin 会员管理 admin 项目管理 对于用户2 我的项目1 所以如果 us
  • WPF DataGrid 正在添加额外的“幽灵”行

    Hei 在我的应用程序中 我使用 DataGrid 来显示一些数据 为了让一切都与我正在使用的线程一起工作AsyncObservableCollection http www thomaslevesque com 2009 04 17 wp
  • Excel的INDEX函数可以返回数组吗?

    如果数据在范围内A1 A4如下 Apple Banana Orange Strawberry Then INDEX可用于单独返回该列表中的任何值 例如 INDEX A1 A4 3 会回来Orange 是否有类似的 Excel 函数或函数组合
  • Django 与其他 Python Web 框架相比?

    我几乎尝试过现有的每一个 Python Web 框架 我花了很长时间才意识到没有灵丹妙药的框架 每个框架都有自己的优点和缺点 我开始于蛇类 http snakelets sf net并衷心地享受能够在较低级别上控制几乎所有事情而无需大惊小怪
  • Dialogflow V2 Messenger 与多个消息集成

    我正在尝试在对 Dialogflow 的一次 Webhook 调用中发送多条消息 该消息应传递给 Messenger 现在 我的 Webhook 响应出现故障的 JSON 正文 fulfillmentText Text fulfillmen
  • 使用请求登录具有 javascript 登录表单的网站

    首先我要说的是我的编程经验很少 在过去几天尝试编写这个程序时 我学到了很多东西 我正在 Windows 7 上使用 PyCharm requests Beautiful Soup 和 lxml 运行 Python 2 7 我正在尝试从一个严
  • 最常见的已检查和未检查 Java 异常? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 据我了解 如果不逐一查找 API 文档 就无法找出方法抛出了哪些异常 由于这是不可能的 我想反向研究并询问您在处理时遇到的最常见的异常
  • 在 Mac 上的 IntelliJ IDEA 中更改基本代码完成的键盘快捷键

    There is very important shortcut for Basic Code Completion in IntelliJ IDE which assumed to be invoked as control space
  • 其他用户之间的 iCloud 共享 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 据我所知 iCloud 就像个人存储 您可以使用自己的 Apple ID 我想问的是 用户是否可以存储例如图像并与其他用户共享 这意味着类
  • css 中 (div#container) 和 (#container) 有什么区别

    众所周知 html标签中的id应该是唯一的 因此可以直接使用 container 但是我注意到一些开发人员会使用标签名称作为前缀 如下所示 div container 现在有区别吗 和性能有关系吗 或者这是最佳实践惯例 还是为了代码的易读性
  • 如何在 Android 上以编程方式删除文件?

    我在 4 4 2 上 尝试通过 uri 删除文件 图像 这是我的代码 File file new File uri getPath boolean deleted file delete if deleted boolean deleted
  • 如何让 Rscript 在非交互式 bash 模式下返回状态代码

    我正在尝试以 bash 脚本的形式从以非交互方式运行的 Rscript 中获取状态代码 此步骤是较大数据处理周期的一部分 其中涉及 db2 脚本等 所以我在脚本sample sh中有以下内容 Rscript verbose no resto
  • 通过 Lark 解析获取符号

    我正在尝试解析我正在编写的一些伪代码 但在获取符号值时遇到一些问题 它解析成功 但不会返回与 常规 字符相同的值 这是一个例子 gt gt gt from lark import Lark gt gt gt parser Lark oper