Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有任何特殊价值;“所有文件”;对于CXSourceRange,是否在Clang中?_Clang - Fatal编程技术网

是否有任何特殊价值;“所有文件”;对于CXSourceRange,是否在Clang中?

是否有任何特殊价值;“所有文件”;对于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

我想使用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(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个标记,表示其范围不正确