c++ - 如何编写给定自定义 IDL 的代码生成器?

标签 c++ code-generation idl

如果您有一个包含基本 bool 字符串字段的足够简单的架构,如何着手用 C++ 编写代码生成器。 如果你曾经写过,你是怎么开始的。欢迎文章/推荐。

编辑:请注意,这不是标准的 CORBA idl。

最佳答案

总结:

  1. 手动转换一些东西,
  2. 将该输出复制到字符串文字中,然后
  3. 使用循环和变量而不是固定名称进行概括。

这是一个特别适合使用 TDD 解决的问题 - 首先设置一个框架,例如 CPPUnit(或 one of many alternatives),使用非常简单的测试来确保您可以加载文件并迭代它的内容写出来。

非常渐进地处理解决方案 - 获得一些简单和通用的输出,通过测试来确认它是否有效,然后添加更复杂的变体。例如:首先处理单参数函数。

对于中等复杂度的代码,只需要使用标准 C++ ostream 类的一长串输出语句,这将允许您编写大量混合文本与任何变量的代码。

关于c++ - 如何编写给定自定义 IDL 的代码生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/482550/

相关文章:

c++ - 是什么导致 IDL 文件中的名称冲突?

c++ - 查找数组中的最大值

c++ - 仿函数在 C++ 中不起作用

code-generation - Isabelle - 代码生成 - typedef

c++ - __REQUIRED_RPCNDR_H_VERSION__

c++ - 未提供时从 COM+ dll 获取 IDL(用于 TLB)

c++ - 代码不允许用户在第一个字符串之后输入字符串

c++ - 检查两个正则表达式是否相等/同构的库

c# - 在运行时编译和使用类

rust - 是否可以在纯 Rust 宏中编写像 `print!` 这样复杂的东西?