#include "SourceRange.h" clang::SourceRange:: SourceRange(clang::Token *token) { range_ = clang_getTokenExtent(token->tu, token->token_); } clang::SourceRange:: SourceRange(clang::SourceLocation *start, clang::SourceLocation *end) { range_ = clang_getRange(start->location_, end->location_); } clang::SourceRange::SourceRange(Cursor *cursor) { range_ = clang_getCursorExtent(cursor->cursor_); } clang::RangeData clang::SourceRange::get_range_data(clang::SourceLocation &start, clang::SourceLocation &end) { std::string path; unsigned start_offset, end_offset; start.get_location_info(&path, NULL, NULL, &start_offset); end.get_location_info(NULL, NULL, NULL, &end_offset); RangeData range_data; range_data.path=path; range_data.start_offset=start_offset; range_data.end_offset=end_offset; return range_data; } clang::RangeData clang::SourceRange::get_range_data() { clang::SourceLocation start(this, true); clang::SourceLocation end(this, false); return get_range_data(start, end); }