使用libclang查找注释行的位置

时间:2019-01-16 14:46:45

标签: clang llvm-clang libclang

我正在尝试使用libclang解析一些代码,为此,我想提取注释并保留其格式(包括换行符)。我遇到的问题是我找不到判断换行实际上在哪里的好方法。下面是AST转储:

| |   |-BlockCommandComment 0x65abae0 <col:6, line:41:5> Name="li"
| |   | `-ParagraphComment 0x65abc80 <line:40:9, line:41:5>
| |   |   |-TextComment 0x65abb10 <line:40:9> Text=" "
| |   |   |-InlineCommandComment 0x65abb60 <col:10, col:11> Name="b" RenderBold Arg[0]="Range:"
| |   |   |-TextComment 0x65abb80 <col:19, col:21> Text=" 0 "
| |   |   |-TextComment 0x65abba0 <col:22> Text="<"
| |   |   |-TextComment 0x65abbc0 <col:23, col:26> Text="= x "
| |   |   |-TextComment 0x65abbe0 <col:27> Text="<"
| |   |   |-TextComment 0x65abc00 <col:28, col:31> Text=" 180"
| |   |   `-TextComment 0x65abc20 <line:41:5> Text=" "

如您所见,有些文本注释在同一行上,而有些文本注释不在同一行上,所以我不能真正将其用作确定新行出现位置的可靠方法。我也没有在libclang comment introspection页上找到任何可以从CXComment获取源代码行的内容。不幸的是,我只能使用libclang C API,所以我知道实际上可能没有一种方法可以完成我想要的事情。

感谢您的帮助。

0 个答案:

没有答案