c# - Irony 中的空白终止符和 MakePlusRule

标签 c# parsing grammar irony

我正在尝试使用 Irony 创建一个相当简单的解析器,但我得出的结论是讽刺可能不适合这种特殊情况。

这些是我试图解析的示例:

server_name  example.com  *.example.com  www.example.*; 

server_name  www.example.com   ~^www\d+\.example\.com$;

server_name   ~^(?<subdomain>.+?)\.(?<domain>.+)$;

我使用 FreeTextLiterals 并以空格或分号作为终止符

var serverNamevalue = new FreeTextLiteral("serverNameValue", FreeTextOptions.None, " ", ";");

然后,我使用 MakePlusRule 来选取一个或多个 server_name 值:

httpCoreServerName.Rule = "server_name" + httpCoreServerNameItems + semicolon;
httpCoreServerNameItems.Rule = MakePlusRule(httpCoreServerNameItems, serverNamevalue);

但是 - 我认为在这种情况下使用空格作为 FreeTextLiteral 的终止符存在问题。当我运行这个时,我收到解析器错误。如果我将空格替换为另一个特定字符以充当终止符(并在对 MakePlusRule 的调用中添加此分隔符) - 它工作正常。

有人对我如何在 Irony 中处理这个问题有任何想法吗?

最佳答案

我将这个问题发布在 Irony project on Codeplex Irony 的开发者 Roman Ivantsov 确认在 FreeTextLiterals 中使用分号时解析器存在问题。

Roman 已帮助修复/修补了此问题。我已经下载了最新的源代码并可以确认它已经解决了问题。

关于c# - Irony 中的空白终止符和 MakePlusRule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18578267/

相关文章:

c# - 转换 double 0.10 double.parse() 转换为 10.0

c# - 读取 XML(来自字符串)并获取一些字段 - Problems reading XML

javascript - 使用简单的 jison 语法解析错误

c# - 确保调用基类的静态构造函数的最佳方法是什么?

c# - 如何检查文件夹的写保护?

c# - SocketIoClientDotNet - Socket.IO 客户端库有时会发出两个连续的事件,有时不会

c# - 解析法国日期

parsing - 为动态语言创建单独的“ bool 表达式”规则

eclipse - 从语法构建符号表

c# - Selenium 和 C# 中的 ChromeOptions 和 DesiredCapabilities 关系