Skip to content

comment, #pragma の抽出処理 #10

Open
@koyama41

Description

@koyama41

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

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

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

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

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions