如何向 clang 添加一个新关键字,一个将被视为 main 的关键字?
如何向 clang 添加新关键字? new 关键字应该是函数限定符。声明部分会去哪里?
谢谢。
How can a new keyword be added to clang? The new keyword should be a function qualifier. Where would the declaration part go?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须将其添加到 include/clang/Basic/TokenKinds.def,然后将新案例添加到 ParseDeclarationSpecifiers(...)。
可能更简单的选择是定义一个新属性,然后使用
#define your_new_qualifier __attribute__((your_new_attribute))
否则,您必须将此限定符支持添加到 AST,这可能会出错 -容易发生,而属性会在同一函数的各种声明之间自动传播。
You have to add it to include/clang/Basic/TokenKinds.def, and then add a new case to ParseDeclarationSpecifiers(...).
Probably an easier option would be to define a new attribute, and then use
#define your_new_qualifier __attribute__((your_new_attribute))
Otherwise you'd have to add this qualifier support to the AST, which could be error-prone, whereas attributes are propagated automatically across various declarations of the same function.