首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Irony不会使用Irony提供的C#语法来解析C#

Irony不会使用Irony提供的C#语法来解析C#
EN

Stack Overflow用户
提问于 2012-03-10 19:55:44
回答 1查看 1.9K关注 0票数 2

因此,我正在尝试解析一些简单的C#代码,以了解如何使用反讽。我使用了Irony示例中包含的C#语法,也使用了其中的示例汇编加载代码。关于反讽的文档似乎很少。下面是我试图解析的完整源代码:

代码语言:javascript
复制
using System;

namespace N
{
    class Test
    {
       public int A(int x)
       {
           return x+1;
       }
    }
    class Test2
    {
        public string hello = "world";
        private int _T = 0;
        private Test _actor = new Test();
        public void B()
        {
            Console.WriteLine(hello+": "+_actor.A(_T++));
        }
    }
}

和解析代码:

代码语言:javascript
复制
 string src = File.ReadAllText("testcs.cs");
 LanguageData language = new LanguageData(g);
 Parser parser = new Parser(language);
 ParseTree parseTree = parser.Parse(src);
 ParseTreeNode root = parseTree.Root;
 Console.WriteLine((root==null?"Parse tree unsuccessful!":"Parse tree created!"));

Irony g是来自...where的C#语法。以前有没有人在使用Irony的语法解析C#时遇到过这些问题?很抱歉,我不能提供更多的信息。没有任何例外

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-10 20:24:13

当我尝试您的代码时,解析确实不成功。错误(在parseTree.ParserMessages中)出现在第一行的末尾,错误消息为Invalid character: ''.,其中引号之间的字符是\r

嗯,似乎\r不被认为是空格,所以我们需要修改语法。在语法中,有一个方法SkipWhitespace(),它包含switch中的空白字符列表。如果只在那里添加case '\r':,解析应该会成功。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9646213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档