反讽重建声明

时间:2013-10-16 01:09:12

标签: c# irony

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

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

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

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

1 个答案:

答案 0 :(得分:1)

在使用Irony.Net解析器一段时间后,在操作ParseTree之后重建原始解析字符串似乎相对困难。

除非你保留空格,并且分配标点符号,否则解析树会自动删除这些条目。

现在,解析树的一部分确实为您提供了原始字符串中存在token \ term的字符的“span”。

考虑到跨度详细信息,您可以通过删除跨度标记处原始语句中的字符来重建语句。

经过多次讨论后发现,尽管Irony.Net项目在将语句解析为AST方面非常出色,但该项目并不适合处理已解析的树。

据说,我们仍在使用Irony.Net项目解决其他问题。