如果你有一个简单的架构和基本的布尔字符串字段,那么如何在C ++中编写代码生成器。 如果你写过,你是怎么开始的。文章/推荐欢迎。
编辑:请注意,这不是标准的CORBA idl。
答案 0 :(得分:1)
总结:
这是解决TDD的一个特别好的问题 - 首先使用愚蠢的简单测试设置CPPUnit(或one of many alternatives)等框架,以确保您可以加载文件并通过写出来迭代它的内容。
非常逐步地解决方案 - 获得简单和通用的输出,通过测试确认它是否有效,然后添加更复杂的变体。例如:首先处理单个参数函数。
对于中等复杂度的代码,只需使用标准C ++ ostream类就可以使用一长串输出语句,这样就可以编写大量代码,将文字与任何变量混合在一起。
答案 1 :(得分:0)
Comet是实现COM的非常好的库。
答案 2 :(得分:0)
不幸的是,你的问题缺乏关于你究竟想要产生什么的细节。但是我会尝试一下,并建议您查看C ++ boost库精神(http://spirit.sourceforge.net)。使用Spirit,您可以创建解析器。因此,假设您已经为您的DSL编写了一个精神解析器(特定于域的语言 - 您的IDL),您将在解析您可以使用访问者模式行走的IDL文件并创建适当的访问者后获得AST(抽象语法树)你可以生成你需要的任何输出,例如生成代码。