|
1
0
具有 GCC 你不能用C++友好的格式获得一些AST(没有) option 为此)。
然而,GCC能够转储其大多数内部表示(例如。
GENERIC
或
GIMPLE
或
SSA
),以某种文本格式(通常受C语言启发)。了解GCC
developer options
试试其中的一些
Template 扩展不是(例如,在C++标准中) n3337 )确切地定义为一些AST转换和C++是可悲的不是 homoiconic 语言(也许是调查) Terra 如果你想要更接近这一点)。 如果你相信模板扩展通常可以用C++ C++来表示(更简单)C++的转换(通常是错误的) C++ templates are Turing complete ; 另见 this 想想递归或 variadic 模板)你可以考虑开发一些 GCC plugin 这样做。这将花费你几个月(甚至几年)的时间。
对于某些GCC插件来说,这听起来是一个很好的用例(一定要写一个完整的版本) 最近的 GCC的版本,例如。 GCC 8 2018年8月;GCC插件与特定版本的GCC相关联,GCC甚至在最近取得了进展(w.r.t.插件)。然而,解析C++是复杂的(无论你使用的技术是:GCC还是CLAN),它将花费大量的工作(可能要比一年多)。
相信我,这不是你唯一(或最重要)的问题。 C++很难解析 . 注:我的旧(和过时) GCC MELT documentation 页面可能包含有用的幻灯片和链接。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |