antlr3相关内容

程序集的清单定义与程序集引用不匹配

我更新了我的 MVC 项目的所有包,但出现以下错误: 无法加载文件或程序集“Antlr3.Runtime,版本=3.5.0.2,Culture=neutral, PublicKeyToken=eb42632606e9261f' 或其中之一依赖关系.定位的程序集的清单定义没有匹配程序集引用.(来自 HRESULT 的异常:0x80131040) 在打开 razor (.cshtml) 文 ..
发布时间:2022-01-06 08:07:21 其他开发

什么是 ANTLR 中的“语义谓词"?

什么是 ANTLR 中的语义谓词? 解决方案 ANTLR 4 对于 ANTLR 4 中的谓词,请查看这些堆栈溢出问答: Antlr4 中语义谓词的语法 ANTLR4 中的语义谓词? ANTLR 3 语义谓词是一种在语法上强制执行额外(语义)规则的方法使用纯代码操作. 语义谓词有3种类型: 验证语义谓词; 门控语义谓词; 消除歧义语义谓词. 示 ..
发布时间:2021-11-28 18:04:59 其他开发

ANTLR:有简单的例子吗?

我想开始使用 ANTLR,但在花了几个小时查看 antlr.org 站点,我仍然无法清楚地了解 Java 过程的语法. 有没有一些简单的例子,比如用 ANTLR 实现的四运算计算器,通过解析器定义,一直到 Java 源代码? 解决方案 注意:此答案适用于 ANTLR3!如果您正在寻找 ANTLR4 示例,那么这个 Q&A 演示了如何使用 ANTLR4 创建简单的表达式解析器和评估器. ..
发布时间:2021-11-25 13:25:37 Java开发

从 Antlr3 转换为 Antlr4

我正在将 antlr3 语法转换为 antlr4 语法.我已经去掉了所有的句法谓词.我正在努力对此进行正确转换 relaxed_date_month_first:relaxed_day_of_week?Relax_month 逗号?WHITE_SPACErelaxed_day_of_month (relaxed_year_prefix Relaxed_year)?->^(EXPLICIT_DAT ..
发布时间:2021-11-11 04:04:40 其他开发

ANTLR 嵌套函数

ANTLR 适合这个项目吗? 我希望处理和转换用户输入的字符串,其中可能包含自定义函数.例如,用户可能会在字符串中写入类似 $CAPITALIZE('word') 的内容,而我想执行使用 StringUtils 在后台进行实际转换. 我想用户有时会编写嵌套函数,例如: $RIGHT_PAD($RIGHT($CAPITALIZE('a123456789'),6),3,'0') ..
发布时间:2021-11-11 04:04:20 Java开发

Lexer 前瞻如何与 ANTLR3 和 ANTLR4 中的贪婪和非贪婪匹配一起使用?

如果有人能让我从前瞻关系与涉及贪婪/非贪婪匹配的标记化背后的困惑中清醒过来,我会非常高兴.请注意,这是一篇略长的帖子,因为它遵循了我的思考过程. 我正在尝试编写允许我匹配输入的 antlr3 语法,例如: “标识符关键字" 我想出了一个类似 Antlr 3.4 的语法: KEYWORD: '关键字' ;标识符:(选项 {greedy=false;}: (LOWCHAR|HIGH ..
发布时间:2021-11-11 04:02:13 其他开发

使用 ANTLR 的嵌套布尔表达式解析器

我正在尝试解析嵌套布尔表达式并分别获取表达式中的各个条件.例如,如果输入字符串是: (A = a OR B = b OR C = c AND ((D = d AND E = e) OR (F = f AND G = g))) 我想以正确的顺序获取条件.即, D =d AND E = e或者F = f AND G = g和A = a OR B = b OR C = c 我使用 ..
发布时间:2021-11-11 03:58:47 Java开发

句法谓词 - 从 Antlr 3 升级到 Antlr 4

我有句法谓词,我必须转换成 Antlr 4.语法不是我写的,所以我不知道如何以有意义的方式转换它们.这些是我必须转换的语法的主要变体. 1. simpleSelector: 元素名称((esPred)=>elementSubsequent)*|((esPred)=>elementSubsequent)+;esPred: 哈希 |点 |LBRACKET |冒号;元素后续: 哈希|css类| ..
发布时间:2021-11-11 03:57:33 其他开发

动态创建词法分析器规则

这是一个简单的规则: NAME : 'name1' |'name2' |'name3'; 是否可以使用包含字符串的数组动态地为此类规则提供替代方案? 解决方案 是的,动态令牌匹配 IDENTIFIER 规则 在这种情况下,只需在 Id 完全匹配后 进行检查,以查看 Id 匹配的文本是否在预定义中收藏.如果它在集合中(在我的示例中为 Set),请更改令牌的类型. 一个小演 ..
发布时间:2021-11-11 03:56:58 其他开发

ANTLR:有简单的例子吗?

我想开始使用 ANTLR,但在花了几个小时查看 antlr.org 站点,我仍然无法清楚地了解 Java 过程的语法. 有没有一些简单的例子,比如一个用 ANTLR 实现的四运算计算器,通过解析器定义,一直到 Java 源代码? 解决方案 注意:此答案适用于 ANTLR3!如果您正在寻找 ANTLR4 示例,那么这个 Q&A 演示了如何使用 ANTLR4 创建简单的表达式解析器和评估 ..
发布时间:2021-11-11 03:56:20 Java开发

ANTLR 中的“语义谓词"是什么?

什么是 ANTLR 中的语义谓词? 解决方案 ANTLR 4 对于 ANTLR 4 中的谓词,请查看这些堆栈溢出问答: Antlr4 中语义谓词的语法 ANTLR4 中的语义谓词? ANTLR 3 语义谓词是一种在语法上强制执行额外(语义)规则的方法使用纯代码操作. 语义谓词有 3 种类型: 验证语义谓词; 门控语义谓词; 消除歧义语义谓词. ..
发布时间:2021-11-11 03:56:17 其他开发

在 Antlr 中定义语法

我已经定义了以下语法. grammar Sample_1;@header {套餐一;}@lexer::header {套餐一;}程序:定义*实施*;定义: IDENT '=('整数','整数')';实施:IDENT '=(' (IDENT ','?)* ')';片段字母 : ('a'..'z' | 'A'..'Z') ;片段数字:'0'..'9';整数:数字+;IDENT:字母(字母 | 数字) ..
发布时间:2021-11-11 03:55:00 其他开发

ANTLR 中的 Mediawiki 解析:处理 ' 标记

我正在尝试编写语法来解析 Media wiki 的 wiki 语法,在此之后克里奥尔语语法也是(不幸的是现有的克里奥尔语语法在 Antlr 3 中不起作用. 我现在的问题是当我已经在斜体规则中时能够捕获粗体规则,反之亦然.例如 '' 这个文本是粗体 '''现在它是斜体''' 并且只是再次粗体'' 我从这个问题中得到了很多帮助 但我被卡住了.目标是使用操作或可能的 AST 在语法中生成 H ..
发布时间:2021-11-11 03:54:49 其他开发

忽略标记字符中的标记?

我的词法分析器中有以下标记定义,用于定义 CharacterString(例如“abcd"): CharacterString:撇号(字母数字)*撇号; 是否可以忽略这两个撇号,然后在词法分析器中获取没有它们的标记字符串(通过 $CharacterString.text->chars)? 我试过了…… CharacterString:撇号 { $channel = HIDDEN;}(字 ..
发布时间:2021-11-11 03:54:40 其他开发

ANTLR 如何区分相同类型的输入参数

如果我有我的输入消息: 姓名 是(乔恩、泰德)不是(彼得); 我想要这个 AST: 名称||-----|是不是|||彼得|----|乔恩·泰德 但我收到: 名称||-----------------|是不是|||||----|-----||----|-----|乔恩·泰德·彼得乔恩·泰德·彼得 我的语法文件有: ... 表达式|NAME 'IS' OParen 标识 ..
发布时间:2021-11-11 03:54:34 其他开发

ANTR3 设置令牌接受的字符数

我必须创建一个词法分析器,它只接受最多 8 位数字的整数.这里有替代方法而不是像这样写吗? INTEGER : (DIG | DIG DIG | DIG DIG DIG | ...) 解决方案 这可以使用门控语义谓词来完成,如下所示: 整数@init{int n = 1;}: ({n DIGIT {n++;})+;片段数字:'0'..'9'; 有关这种谓词的详细信息,请参阅:什么是“语 ..
发布时间:2021-11-11 03:53:43 其他开发

带有 ANTLR 或 ANTLR3 的 LL(1) 表驱动编译器

是否可以使用 ANTLR 或 ANTLR3 创建一个 LL(1) 表驱动(非递归)编译器? 解决方案 没有 然而,由于 ANTLR 是开源的,你可以修改 ANTLR 的一个分支来做到这一点. ANTLR 将词法分析器和解析器构建为递归下降源代码.这就是 ANTLR 易于使用和流行的原因,因为人们可以查看源代码并了解词法分析器和解析器与查看表条目相比如何工作.因为是源代码,所以也 ..
发布时间:2021-11-11 03:53:25 其他开发