问题标签 [irony]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
237 浏览

c# - 具有讽刺意味的重建声明

我正在使用 Irony.Net ( https://irony.codeplex.com/ ) 并且一直在使用 SQL 语法。现在我有解析器和项目来正确解析我的语句。(我必须在默认语法中添加参数支持)。

现在我的问题很简单。在我操纵了 ParseTree 之后,我想重建针对 ParseTree 的语句。

Irony 是否有针对树重建原始解析文本的方法,还是我需要为此编写自己的系统?

我很好地编写自己的系统,但如果它已经到位,我宁愿使用它。

0 投票
1 回答
516 浏览

c# - 将 EBNF 翻译成讽刺

我正在使用 Irony 为脚本语言创建解析器,但我遇到了一个小问题:如何在 Irony 中翻译这样的 EBNF 表达式?

我已经尝试了一些技巧,比如

但这很丑陋,我什至不确定这是否按应有的方式工作(还没有尝试过……)。有人有什么建议吗?

编辑:我发现了这些辅助方法(MakeStarList、MakePlusList),但由于完全缺乏 Irony 的文档,我无法找到它们的使用方法……有人知道吗?

0 投票
1 回答
182 浏览

c# - 在 Irony 解析器中获取父节点

我正在为 NET 使用 Irony 解析器,以便为类似代数的语法获得一个简单的结构:

解析工作正常,我正在使用ParseTreeNode它来获取输入中每个节点的引用。如何获得给定 ParseTreeNode 节点的父节点?

0 投票
0 回答
285 浏览

c# - Irony.Net 允许变量有两个前缀

我尝试通过以下语法使用 Irony.Net:

where !!test- 全局变量和!test1- 局部变量

我写了这段代码:

我得到了 shift-reduce 错误

我做错了什么?

在codeplex(https://irony.codeplex.com/discussions/546013)的帮助下,我解决了这个问题。结果代码为:

0 投票
2 回答
1037 浏览

c# - 什么是 Irony 等效于 Yacc 的可选运算符(“?”)?

我有一段 Yacc 表示法的语法片段:

如何在 Irony 中实现这个片段?我找不到任何等效的?,这意味着在 Yacc 中出现 0 或 1 次。

0 投票
1 回答
360 浏览

c# - Irony 中的 C99 语法 - 声明/语句冲突

我正在尝试使用Irony来解析 C99,我在网上找到了一个语法来指导我

我在声明与声明的冲突中遇到困难。以下规则未能检测到带有初始化程序的指针声明。

它失败的线路类型是:

当我从语句的规则中删除labeledStatement 和expressionStatement 时(两者都可能以标识符开头),这种类型的声明被正确识别。

在尝试声明之前强制 Irony 用尽声明规则的最佳方法是什么?或者,我可以在 Irony 解析时添加到语法中,以便它可以将 MyType 注册为终端而不是标识符?

0 投票
1 回答
375 浏览

c# - 如何从文本文件中解析信息

我正在研究从文本文件中解析数据的各种选项。我们收到来自不同客户的发票,格式未预定义。基本上,我们收到具有不同列的表类型结构,如下所示,并且需要从文件中提取数据。

现在,我们有一个带有 Parse 方法的 IExtractor 接口,该方法由每个客户端解析器实现,并根据文件实例化适当的类,并且对逻辑进行硬编码以检索数据。

由于客户数量不断增加,我们正在寻找更健壮且易于编码的方法来从文本文件中提取信息。

是否建议使用正则表达式来识别页眉和页脚,并使用另一个表达式从每一行中提取信息。如果有人能提出更好的选择,我将不胜感激。

0 投票
1 回答
142 浏览

.net - 使用 Irony 的简单 FormatString 语言

我正在尝试使用 Irony 定义一种简单的语言。一些语言用例是

它是自由文本,其中引用了用大括号括起来的字段。双花括号转义字段声明。我想出了以下规范:

但是,Irony GrammarExplorer 仅解析具有文本元素的值。无法识别字段。我在这里想念什么?

0 投票
1 回答
1419 浏览

c# - 如何使用 Irony 在 C# 中为表达式生成和显示 ParseTree?

我想使用讽刺生成和显示上下文无关语法,到目前为止,我可以通过以下代码编写上下文无关语法

在我的form_load事件中,我有

我得到了解析的消息,所以现在我想生成解析树。我该怎么做?

0 投票
2 回答
1033 浏览

c# - Irony 中的可选表达式

我是 Irony 编程的新手。我正在处理的第一个测试示例是计算数学形状(面积、体积......)

在简单模式下,它工作正常。但挑战是我想让它成为可选的。例如,如果我选择圆形作为形状,那么我只需要半径。另外,如果我选择矩形作为形状,我需要高度和宽度。所以,我想知道当形状是圆形时如何获得一个数字作为半径,以及当形状是矩形时如何获得 2 或 3 个数字。

它的行为是这样的:对于圆形示例,我希望我的代码只接收半径而不是更多(如下面的代码 - 清单 1)。但是,当语法像清单 2 时,它也可以工作。所以,我想要编译中的特定情况。

清单 1

清单 2

它们都得出相同的答案,我们知道清单 2 的参数是错误的。