如何抑制C ++关键字?

时间:2018-05-28 15:10:40

标签: c++

我生成C ++代码并在生成的模型具有与C ++关键字冲突的属性时遇到问题。我更喜欢这种模式与语言无关。

我已经尝试了一些#define int ReSeRvEd_int - 生成代码的本地黑客但是分配其他符号感觉不对 - 问题并没有真正消失,并且生成的代码和模型之间的任何一种情况交叉引用变为更难。

有关如何隐藏/隐藏关键字的任何建议吗?

1 个答案:

答案 0 :(得分:7)

我可以想到几种方法:

  • 为所有生成的令牌添加标准前缀或后缀。因此,不是名为“steve”和“int”的属性分别生成名为steveint的变量,而是生成prop_steveprop_int
  • 强制生成的令牌大写。

做的两件事:

  • 尝试使用名为int的属性使解析器正常,因为您似乎正在尝试执行上述操作。除了违反最小惊讶原则外,这是不合法的。
  • 从“int”到innt进行硬编码重映射。丑陋,不一致,(假设生成的代码与用户编写的代码接口)强制用户记住重映射。