我对 Irony 有一些棘手的问题,我不明白......
我在应用程序运行时执行的第一次解析成功。
string src = "" // this is the file to parse
Grammar g = new CSharpGrammar();
LanguageData language = new LanguageData(g);
Parser parser = new Parser(language);
ParseTree parseTree = parser.Parse(src);
ParseRoot = parseTree.Root;
然后我按照一个提示将 LanguageData 变量移动到全局上下文。还是一切正常。但是现在我想在自定义函数中调用 Irony 解析器,使用 Irony 提供的 c# 语法 v3.5 解析多个文件(LINQ 查询对我来说并不重要,所以这似乎足够了)。相同的方法:
Parser parser = new Parser(language);
ParseTree parseTree = parser.Parse(file);
ParseRoot = parseTree.Root;
但是现在 parseroot 是并且仍然是“null”。我完全不知道为什么。刚才我还检查了解析器错误,在那里我发现了一个我无法理解的错误。
"Syntax error, expected: statement, member declaration, namespace"
但我的文件看起来像这样:
using System;
using Microsoft.SharePoint.WebControls;
namespace WebParts.Layouts.Ordering
{
public partial class ConfirmDelete : LayoutsPageBase
{
protected void Page_Load(object sender, EventArgs e)
{
lblMsg.Text = "Are you sure you want to delete the entry?";
if (!IsPostBack)
{
BtnYes.Attributes.Add("onclick", "OnYes(); return false;");
BtnNo.Attributes.Add("onclick", "OnNo(); return false;");
}
}
}
}
我希望你能看到我的代码有什么问题......我对这件事感到绝望......