是否有任何特殊价值;“所有文件”;对于CXSourceRange,是否在Clang中?
我想使用clang标记cpp文件:是否有任何特殊价值;“所有文件”;对于CXSourceRange,是否在Clang中?,clang,Clang,我想使用clang标记cpp文件: // range = all the file CXSourceLocation beginning = clang_getLocationForOffset(TU, file, 0); CXSourceLocation end = clang_getLocationForOffset(TU, file, 53); // TODO : set actual file length CXSourceRange range = clang_getRange(beg
// range = all the file
CXSourceLocation beginning = clang_getLocationForOffset(TU, file, 0);
CXSourceLocation end = clang_getLocationForOffset(TU, file, 53); // TODO : set actual file length
CXSourceRange range = clang_getRange(beginning, end);
clang_tokenize(TU, range, &tokens, &numTokens);
代码运行正常,我可以看到实际的令牌
我需要为此设置CXSourceRange。在我的例子中,从头到尾都是“所有文件”。是否有表示“所有文件”的特殊值?否则,我必须获得文件大小或硬编码任何实际值,如上述示例所示。您可以这样做
CXSourceRange range=clang_getCursorExtent(clang_getTranslationUnitCursor(TU));
获取覆盖整个翻译单元的范围。见和
例如,该程序标记作为参数给出的文件:
#包括
#包括
int main(int argc,char*argv[])
{
如果(argc!=2){
你能做什么
CXSourceRange range=clang_getCursorExtent(clang_getTranslationUnitCursor(TU));
要获取覆盖整个翻译单元的范围,请参阅和
例如,该程序标记作为参数给出的文件:
#包括
#包括
int main(int argc,char*argv[])
{
如果(argc!=2){
std::cerr任何大于文件大小的行号都可以使用
CXSourceLocation end = clang_getLocationForOffset(TU, file, std::numeric_limits<unsigned>::max(), 1);
CXSourceLocation end=clang_getLocationForOffset(TU,file,std::numeric_limits::max(),1);
任何大于文件大小的行号都可以使用
CXSourceLocation end = clang_getLocationForOffset(TU, file, std::numeric_limits<unsigned>::max(), 1);
CXSourceLocation end=clang_getLocationForOffset(TU,file,std::numeric_limits::max(),1);
如果我指定max(int)或任何较大的值,则filesize clang_tokenize返回0个标记,表示其范围不正确如果我指定max(int)或任何较大的值,则filesize clang_tokenize返回0个标记,表示其范围不正确