Skip to content

comment, #pragma の抽出処理 #10

Description

@koyama41

Clang AST では、ソースコード上のコメントや、 clang が知らない #pragma については表現されていない。これらについて、

  • コメントはだいたい元の位置に再現したい、という要望がある
  • #pragma の取得はいずれ xmp 記法に対応するために必須となる

という需要がある。
いずれも、 Clang AST として表現できるようにしようと思うと libclang 本体に手を入れねばならないが、そうではなく、

  • Clang AST にはほとんどの要素に SourceRange (ソースコード上での始点と終点)が付いている
  • SourceRange の情報を元にして、ソースコード上の任意の位置の文字を取得することができる

という特徴を利用して、「Clang AST で表現され損なっている位置の文字」を取得すれば、
そこにコメントや #pragma があることが期待できるので、あとは自力でパースすれば取得できるはず。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions