     return SourceLocation(clang: clang_getRangeEnd(clang))
   }
 }
+

}

/// Converts a CXToken to a Token, returning `nil` if it was unsuccessful
func convertToken(_ clang: CXToken) -> Token {
  switch clang_getTokenKind(clang) {
  case CXToken_Punctuation: return PunctuationToken(clang: clang)
  case CXToken_Keyword: return KeywordToken(clang: clang)


/// Represents a half-open character range in the source code.
public struct SourceRange {
  public let clang: CXSourceRange
  
  /// Retrieve a source location representing the first character within a
  /// source range.
