问题标签 [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.
c# - 具有讽刺意味的重建声明
我正在使用 Irony.Net ( https://irony.codeplex.com/ ) 并且一直在使用 SQL 语法。现在我有解析器和项目来正确解析我的语句。(我必须在默认语法中添加参数支持)。
现在我的问题很简单。在我操纵了 ParseTree 之后,我想重建针对 ParseTree 的语句。
Irony 是否有针对树重建原始解析文本的方法,还是我需要为此编写自己的系统?
我很好地编写自己的系统,但如果它已经到位,我宁愿使用它。
c# - 将 EBNF 翻译成讽刺
我正在使用 Irony 为脚本语言创建解析器,但我遇到了一个小问题:如何在 Irony 中翻译这样的 EBNF 表达式?
我已经尝试了一些技巧,比如
但这很丑陋,我什至不确定这是否按应有的方式工作(还没有尝试过……)。有人有什么建议吗?
编辑:我发现了这些辅助方法(MakeStarList、MakePlusList),但由于完全缺乏 Irony 的文档,我无法找到它们的使用方法……有人知道吗?
c# - 在 Irony 解析器中获取父节点
我正在为 NET 使用 Irony 解析器,以便为类似代数的语法获得一个简单的结构:
解析工作正常,我正在使用ParseTreeNode
它来获取输入中每个节点的引用。如何获得给定 ParseTreeNode
节点的父节点?
c# - Irony.Net 允许变量有两个前缀
我尝试通过以下语法使用 Irony.Net:
where !!test
- 全局变量和!test1
- 局部变量
我写了这段代码:
我得到了 shift-reduce 错误
我做错了什么?
在codeplex(https://irony.codeplex.com/discussions/546013)的帮助下,我解决了这个问题。结果代码为:
c# - 什么是 Irony 等效于 Yacc 的可选运算符(“?”)?
我有一段 Yacc 表示法的语法片段:
如何在 Irony 中实现这个片段?我找不到任何等效的?
,这意味着在 Yacc 中出现 0 或 1 次。
c# - Irony 中的 C99 语法 - 声明/语句冲突
我正在尝试使用Irony来解析 C99,我在网上找到了一个语法来指导我。
我在声明与声明的冲突中遇到困难。以下规则未能检测到带有初始化程序的指针声明。
它失败的线路类型是:
当我从语句的规则中删除labeledStatement 和expressionStatement 时(两者都可能以标识符开头),这种类型的声明被正确识别。
在尝试声明之前强制 Irony 用尽声明规则的最佳方法是什么?或者,我可以在 Irony 解析时添加到语法中,以便它可以将 MyType 注册为终端而不是标识符?
c# - 如何从文本文件中解析信息
我正在研究从文本文件中解析数据的各种选项。我们收到来自不同客户的发票,格式未预定义。基本上,我们收到具有不同列的表类型结构,如下所示,并且需要从文件中提取数据。
现在,我们有一个带有 Parse 方法的 IExtractor 接口,该方法由每个客户端解析器实现,并根据文件实例化适当的类,并且对逻辑进行硬编码以检索数据。
由于客户数量不断增加,我们正在寻找更健壮且易于编码的方法来从文本文件中提取信息。
是否建议使用正则表达式来识别页眉和页脚,并使用另一个表达式从每一行中提取信息。如果有人能提出更好的选择,我将不胜感激。
.net - 使用 Irony 的简单 FormatString 语言
我正在尝试使用 Irony 定义一种简单的语言。一些语言用例是
它是自由文本,其中引用了用大括号括起来的字段。双花括号转义字段声明。我想出了以下规范:
但是,Irony GrammarExplorer 仅解析具有文本元素的值。无法识别字段。我在这里想念什么?
c# - 如何使用 Irony 在 C# 中为表达式生成和显示 ParseTree?
我想使用讽刺生成和显示上下文无关语法,到目前为止,我可以通过以下代码编写上下文无关语法
在我的form_load
事件中,我有
我得到了解析的消息,所以现在我想生成解析树。我该怎么做?
c# - Irony 中的可选表达式
我是 Irony 编程的新手。我正在处理的第一个测试示例是计算数学形状(面积、体积......)
在简单模式下,它工作正常。但挑战是我想让它成为可选的。例如,如果我选择圆形作为形状,那么我只需要半径。另外,如果我选择矩形作为形状,我需要高度和宽度。所以,我想知道当形状是圆形时如何获得一个数字作为半径,以及当形状是矩形时如何获得 2 或 3 个数字。
它的行为是这样的:对于圆形示例,我希望我的代码只接收半径而不是更多(如下面的代码 - 清单 1)。但是,当语法像清单 2 时,它也可以工作。所以,我想要编译中的特定情况。
清单 1
清单 2
它们都得出相同的答案,我们知道清单 2 的参数是错误的。