ANTLR 4 令牌规则匹配任何字符,直到遇到 XYZ

2024-01-11

我想要一个标记规则,它会吞噬所有字符,直到它到达字符XYZ.

因此,如果输入是这样的:

helloXYZ

那么令牌规则应该返回这个令牌:

hello

如果输入是这样的:

Blah Blah XYZ

那么令牌规则应该返回这个令牌:

Blah Blah

如何定义令牌规则来执行此操作?


根据特伦斯在回答中给出的暗示,我认为这就是罗杰正在寻找的:

grammar UseLookahead;

parserRule : LexerRule;

LexerRule : .+? { (_input.LA(1) == 'X') &&
                  (_input.LA(2) == 'Y') &&
                  (_input.LA(3) == 'Z') 
                }?
          ;

这给出了所需的答案,hello and Blah Blah分别。我承认我不明白决赛的意义?.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ANTLR 4 令牌规则匹配任何字符,直到遇到 XYZ 的相关文章

  • BNF、EBNF、ABNF:选择哪一个?

    我想提出一种语言语法 我读过一些关于这三个人的内容 但确实看不出有什么是一个人能做而另一个人做不到的 有什么理由使用其中一种而不是另一种吗 或者这只是一个偏好问题 你必须考虑一下EBNF and ABNF作为扩展 可以帮助您在开发语法时更加
  • 如何在 Eclipse 中使用 Antlr4 Ide 查看实时解析树?

    我是 Antlr4 的新手 但我知道 Eclipse 存在一个插件 我有一个简单的问题 创建 g4 文件后 如何可视化实时解析树以便查看输入表达式的树 谢谢 在 Eclipse 中安装 Antlr4Ide 插件后 窗口 gt 显示视图 gt
  • ANTLR 4 - 树模式匹配

    我试图理解 ANTLR 4 中的解析树匹配 所以为此 我有以下java代码 package sampleCodes public class fruits public static void main String args int a
  • 为什么这个 c# 代码片段是合法的?

    愚蠢的问题 但是为什么下面的行会编译 int i new int 1 正如您所看到的 我没有输入第二个元素并在那里留下了逗号 即使您希望它不会编译 仍然可以编译 我想是因为 ECMA 334 标准说 array initializer va
  • Antlr4中有哪些加速解析的方法?

    我对Antlr4的性能有些怀疑 我目前正在使用 Python 和 Antlr4 与 Java 相比 它非常慢 使用 Antlr4 IntelliJ 插件验证 由于我需要使用更大的代码进行解析 因此我计划切换到 Antlr 最快的语言 例如
  • 正则表达式/“正则表达式”中的正则是什么意思?

    正则表达式 中的 正则 是什么意思 我听说正则表达式曾经是常规的 但现在不再了 The regular正则表达式中来自于它匹配常规语言 http en wikipedia org wiki Regular language 的概念形式语言理
  • Python 中 C++ 的简单分词器

    努力寻找一个Python脚本库来标记 找到特定的标记 如函数定义名称 变量名称 关键字等 我已经设法使用类似的方法找到关键字 空格等this https docs python org 3 library re html writing a
  • 用于生成唯一链接的 Rails 插件?

    我的应用程序中有很多地方需要生成带有唯一标记的链接 foo com g6Ce7sDygw 或其他 每个链接可能与一些会话数据相关联 并将用户带到一些特定的控制器 操作 有谁知道有一个 gem 插件可以做到这一点 它很容易实现 但会更干净 无
  • 在 PL/SQL 存储过程中拆分逗号分隔的字符串

    我有 CSV 字符串 100 01 200 02 300 03 我需要将其传递给 Oracle 中的 PL SQL 存储过程 在过程中 我需要将这些值插入表中的数字列中 为此 我从这里得到了一个工作方法 如何在 oracle 9i 中最好地
  • Antlr4 语言翻译 - 将模板逻辑与访问者类分开?

    我正在考虑实用地将大量相对简单的 TSQL 代码转换为 Groovy 代码 肯定有很多原因 但驱动因素只是想看看是否可以完成 并在此过程中了解编译器 语法 等 Antlr4 似乎是解决这个问题的理想工具 Java 是一个优点 标记化 解析
  • Epsilon(ε) 产生式以及 LR(0) 语法和 LL(1) 语法

    在很多地方 例如在这个答案中here https stackoverflow com a 8496838 7571421 我看到有人说 LR 0 语法不能包含 产生式 Also in 维基百科 https en wikipedia org
  • ANTLR 实现类似Python的缩进相关语法的最简单方法是什么?

    我正在尝试实现类似Python的缩进相关语法 来源示例 ABC QWE CDE EFG EFG CDE ABC QWE ZXC 正如我所看到的 我需要的是实现两个标记 INDENT 和 DEDENT 所以我可以编写如下内容 grammar
  • 实现类 Markdown 语言的解析器

    我有类似于 markdown 和 SO 使用的标记语言 遗留解析器基于正则表达式 维护起来简直是噩梦 因此我提出了自己的基于 EBNF 语法的解决方案 并通过 mxTextTools SimpleParse 实现 但是 某些令牌可能存在相互
  • 使用 ANTLR3 解析换行符、EOF 作为语句结束标记

    我的问题是关于在 ANTLRWorks 中运行以下语法 INT 0 9 SEMICOLON NEWLINE r n n r STMTEND SEMICOLON NEWLINE NEWLINE statement STMTEND INT ST
  • 使用 ANTLR 解析时忽略输入的某些部分

    我正在尝试通过 ANTLR ANTLRWorks 3 5 2 解析语言 目标是输入完整的输入 但 Antlr 给出语法中定义部分的解析树并忽略其余输入 例如这是我的语法 grammar asap project begin PROJECT
  • 如何根据数字/非数字分割字符串(使用正则表达式?)

    我想在 python 中将一个字符串拆分为一个列表 具体取决于数字 而不是数字 例如 5 55 6 5 应该返回 5 55 6 5 我目前有一些代码循环遍历字符串中的字符并使用 re match d 或 D 测试它们 我想知道是否有更好的方
  • 使用antlr4获取预处理器行并解析C代码

    我正在使用 Antlr4 来解析 C 代码 并使用以下语法来解析 链接到 C g4 https github com antlr grammars v4 blob master c C g4 上面的语法默认不提供任何解析规则来获取预处理器语
  • Cloud Firestore 安全规则使用的语言名称是什么?

    我想知道用于 Cloud Firestore 安全规则的语法名称 如下所述https firebase google com docs firestore security get started authuser 0 https fire
  • 是否有一个实用程序可以在给定 ANTLR 语法的情况下生成匹配的字符串?

    我有一个 ANTLR 语法 我想模 糊我的解析器 您是否正在寻找 CFG 语法的生成 IE 语法接受的字符串的生成 这可能是检查语法正确性的好主意 但请记住 可接受的字符串集很可能是无限的 任何真正严重的错误应该已经在语法规范中显而易见 并
  • 使用 Python NLTK 对大型 (>70MB) TXT 文件进行标记。连接并将数据写入流错误

    首先 我是 python nltk 的新手 所以如果问题太基本 我深表歉意 我有一个大文件 我正在尝试对其进行标记 我遇到内存错误 我读过的一种解决方案是一次一行读取文件 这是有道理的 但是 在这样做时 我收到错误cannot concat

随机推荐

  • 通过双击文件将参数传递给 JavaFx 应用程序

    我创建了一个 JavaFX 应用程序 部署了 app 文件 它工作正常 然后 我将操作系统设置为使用我的应用程序打开具有特定扩展名的所有文件 我的问题是 当我双击文件时 我的应用程序打开 但我不知道打开它的文件是哪个 我尝试使用该函数检查应
  • EXCEPTION_ACCESS_VIOLATION (0xc0000005) 来自 JNI 的 JVM?

    我在 vc 中用 JNI 编写了一些本机方法 以便从 java 访问 我的三种方法中有两种工作得很好 没有任何问题 然而 当我在运行时调用我的最后一个方法时 它会导致以下错误消息 A fatal error has been detecte
  • 如何使 GTFS 查询运行得更快?

    我正在尝试使用 GTFS 数据库 即 RATP 为巴黎及其郊区提供的数据库 数据集是huge The stop times表有 1400 万行 这是表架构 https github com mauryquijada gtfs mysql b
  • python 中的范围函数

    for n in range 2 5 for x in range 2 n print n x 输出如下 3 2 4 2 4 3 为什么n的值从3开始而不是从2开始 n三点开始因为range 2 2 是空的 也许你真的想要 for n in
  • iPhone 是否支持传入彩信中的 SMIL?

    在我开发的一项服务中 我向用户发送一条彩信 其中包含 6 个静态顺序的图像 为了正确排序图像并添加格式 我使用了 SMIL 它在多种设备上运行良好 然而 iPhone 似乎根本不识别 SMIL 图像按文件名字母顺序排序 更糟糕的是 它们不是
  • 如何向独立的异步任务添加进度条?

    我有一个处于其自己的活动中的异步任务 我向它传递一个字符串值 它连接到我的 Web 服务并根据我传入的名称下载 Json 数据 返回 Json 结果集 效果很好 我想向异步任务添加一个进度旋转器 但我不知道如何做到这一点 我已经仔细阅读了这
  • 属性检测:使用“in”与尝试访问属性

    不得不提的是 我了解一点 JavaScript 但还不是很深入 始终认为这是检查对象上的属性是否可用的正确方法 if window console doSomething 昨天我看到了使用这种技术的代码 if console in wind
  • 由于属性名称规范化,AngularJS 链接函数未调用

    我已经按照自定义验证下的文档定义了一个验证器https docs angularjs org guide forms https docs angularjs org guide forms 但由于某种原因link函数没有被调用 我可以看出
  • Grails select 将不会返回正确的数据

    这是一个延续this https stackoverflow com questions 6959777 grails chained drop down问题 我有一个Address包含基本街道地址信息的类 我也有一个User具有属性的类p
  • 复制 SQL 表中的 3B 行?

    我必须复制一个表 该表在同一数据库中有大约 3B 行 没有 TEXT NTEXT 或其他 LOB 列 最大限度减少停机时间的最快方法是什么 我尝试过 bcp 导入 导出和 SELECT INTO 我收集了每个项目的时间统计数据 它至少需要
  • Rails 请求伪造保护设置

    请帮助 Rails 新手 我有protect from forgery调用 默认情况下给出 我的中没有属性ApplicationController class 基本上这是代码 class ApplicationController lt
  • 如何用vue js绑定组件?

    我有表单和选择组件 事实上事情很简单 我需要两个绑定模型 父组件 Vue component some form template some form data function return countryNameParent 带有项目的
  • 了解 WebRTC 中的 SFU、TURN 服务器

    如果我正在构建 WebRTC 应用程序并使用选择性转发单元媒体服务器 这是否意味着我不需要 STUN TURN 服务器 据我了解 STUN 服务器用于客户端发现其公共 IP 端口 而 TURN 服务器用于当客户端无法通过 STUN 直接相互
  • 将值数组插入 SQL Server 中表的列中

    我有一个数组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 我想将这个值数组插入到表中 例如 Column1 Column2 Column3 Column4 1 2 3 4 5 6 7 8 9 10 11 1
  • 如何在 Windows 中的特定显示器上打开窗口?

    我的任务是修改我们的一款 C 产品 以便在 Windows 操作系统的特定显示器上生成一个新窗口 这适用于需要能够配置平铺多显示器可视化的客户 其中每个显示器由单台计算机上的单独显卡驱动 在 Linux 中 我可以通过在每个显示器上启动 X
  • Vue DOM 对计算属性没有反应

    我有一个按钮 如果计算属性的有效属性为 false 则该按钮设置为禁用 如果为 true 则应启用该按钮并允许用户移至当前流程中的下一步 我的 currentStep 计算属性正在根据当前步骤输入的更改完美更新 但按钮 disabled c
  • 摘自 Django 1.5 中的 QueryDict/json

    From self request body I have changes 5B0 5D 5B 5D 1 changes 5B0 5D 5B 5D query changes 5B0 5D 5B 5D first changes 5B0 5
  • 如何使用 spring-data-elasticsearch 在 elasticsearch 中进行集成测试?

    我正在使用 spring data elasticsearch v3 2 4 RELEASE 它可以通过 spring boot starter data elasticsearch v2 2 4 RELEASE 获得 我想为此进行集成测试
  • SQLAlchemy 按字段唯一约束

    我在现场有 UniqueConstraint 但它不允许我添加多个条目 最多两个 from sqlalchemy import Column Integer String Boolean UniqueConstraint class Car
  • ANTLR 4 令牌规则匹配任何字符,直到遇到 XYZ

    我想要一个标记规则 它会吞噬所有字符 直到它到达字符XYZ 因此 如果输入是这样的 helloXYZ 那么令牌规则应该返回这个令牌 hello 如果输入是这样的 Blah Blah XYZ 那么令牌规则应该返回这个令牌 Blah Blah