You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
1018 B

11 years ago
#include "SourceRange.h"
clang::SourceRange::
SourceRange(clang::Token *token) {
range_ = clang_getTokenExtent(token->tu, token->token_);
11 years ago
}
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);
}