Roslyn可以解析我的“用户定义”语法吗?

问题描述:

我可以在文本中使用一些用户定义的语法并使用Roslyn解析它(可能是定制的词法/语法分析器)吗?如果是,我应该查看哪个文档/命名空间?Roslyn可以解析我的“用户定义”语法吗?

我想分析的文本只是一个单一的“表达”,而不是一个完整的程序,如:

A.B + Foo(Bar) and !Baz 

在这里,我想“告诉”词法分析器+!and!是运营商和Foo(Bar)是一个函数调用。是否有像LexicalWalker这样的东西可以定义我的逻辑,然后Roslyn可以将文本解析为正确的标记,以便我可以继续分析标记?

+0

虽然我看到罗斯林几乎解析任何东西,但它可能会出现很奇怪。我的一些实验:https://gist.github.com/leppie/5081390 – leppie

+0

@leppie:有趣...... Roslyn如何“猜测”“MyFor”是一种方法?通过以下左括号?有点鲁莽。 –

+0

我同意。这就是为什么我从来没有进一步探讨; p – leppie

现在我发现Irony非常适合我的要求。

+0

你可以扩大这一点吗?你究竟用Irony做了什么? – user1454265