3

我正在为 .NET 开发一个编译器框架,并且想要一种灵活的方式来定义管道。我考虑了以下选项:

  • 世界自然基金会
  • 自定义 XML 管道描述
  • 代码中的自定义管道描述(使用 Nemerle 的宏为其定义语法)
  • 其他基于代码的描述

要求:

  • 不得仅依赖 .NET (3+) 的更高版本中的功能,因为它旨在跨平台并在托管内核之上使用,这意味着半受限的 .NET 功能。
  • 必须允许有条件的管道构建,因此您可以指定某些命令行选项将对应于某些元素和顺序。

WWF 会很好,但不符合第一个要求。其他人会工作,但由于所涉及的工作而不是最佳的。

有谁知道几乎不需要修改就能满足这些目标的解决方案?

4

2 回答 2

1

如果您了解 Ruby,那么一个解决方案是编写一个简单的内部 DSL,它可以生成您需要的任何管道数据类型和读取器/写入器代码。生成 XML 是一种快速入门的方法。如果需要,您可以随时更改 DSL 以在以后生成另一种格式。

您可能还想查看Microsoft Phoenix 编译器项目以获取灵感。

于 2008-09-15T13:47:20.290 回答
0

I know Boo let you have fun with the compiler, not sure if it does in the manner you want.

于 2008-10-08T14:14:31.470 回答