|
1
3
有许多(聪明)尝试在C++语言中拥有特定领域的语言。
它通常被称为
DSEL
对于
领域专用嵌入式语言
. 例如,您可以查找
如果你想隐藏一些复杂性,你可以添加一些宏。 我很乐意提供一些例子,如果你给我们一些工作的东西:) |
|
|
2
2
|
|
|
3
0
|
|
4
0
如果你真的想扩展C++,你需要一个完整的C++分析器加上名字和类型解析。正如你所发现的,这很难。最好的解决方案是获取一个现有的并对其进行修改。 我们的 DMS Software Reengineering Toolkit 是实现langauge处理器的基础设施。它是 设计用于支持工具的构造,这些工具可以解析语言、执行转换以及输出相同的语言(使用增强的代码)或不同的语言/方言。 DMS有一个完整的 C++ Front End 解析C++,构建抽象语法树和符号表(例如,所有的名称和类型解析的东西)。 DMS/C++前端提供了源代码的DMS,以便可以定制以达到您想要的效果。您可以将DSL定义为C++前端的扩展,然后编写将特殊构造转换为“香草”C++构造的转换,然后吐出可编译结果。 DMS/C++已经用于各种各样的转换任务,包括那些扩展C++ C++的任务,包括对大型C++应用程序进行大规模重组的任务。(见该网站的出版物)。 |
|
|
5
-1
为了解决第一个问题,也许你可以使用C++ 0x新特性“初始化器列表”和“用户定义的垃圾”来避免需要新的解析器。第二颗子弹可能也有帮助。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |