You've already forked linux-packaging-mono
							
							
		
			
	
	
		
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|   | //===- CXString.h - Routines for manipulating CXStrings -------------------===//
 | ||
|  | //
 | ||
|  | //                     The LLVM Compiler Infrastructure
 | ||
|  | //
 | ||
|  | // This file is distributed under the University of Illinois Open Source
 | ||
|  | // License. See LICENSE.TXT for details.
 | ||
|  | //
 | ||
|  | //===----------------------------------------------------------------------===//
 | ||
|  | //
 | ||
|  | // This file defines routines for manipulating CXStrings.
 | ||
|  | //
 | ||
|  | //===----------------------------------------------------------------------===//
 | ||
|  | 
 | ||
|  | #ifndef LLVM_CLANG_TOOLS_LIBCLANG_INDEX_INTERNAL_H
 | ||
|  | #define LLVM_CLANG_TOOLS_LIBCLANG_INDEX_INTERNAL_H
 | ||
|  | 
 | ||
|  | #include "clang-c/Index.h"
 | ||
|  | 
 | ||
|  | #ifndef __has_feature
 | ||
|  | #define __has_feature(x) 0
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #if __has_feature(blocks)
 | ||
|  | 
 | ||
|  | #define INVOKE_BLOCK2(block, arg1, arg2) block(arg1, arg2)
 | ||
|  | 
 | ||
|  | #else
 | ||
|  | // If we are compiled with a compiler that doesn't have native blocks support,
 | ||
|  | // define and call the block manually. 
 | ||
|  | 
 | ||
|  | #define INVOKE_BLOCK2(block, arg1, arg2) block->invoke(block, arg1, arg2)
 | ||
|  | 
 | ||
|  | typedef struct _CXCursorAndRangeVisitorBlock { | ||
|  |   void *isa; | ||
|  |   int flags; | ||
|  |   int reserved; | ||
|  |   enum CXVisitorResult (*invoke)(_CXCursorAndRangeVisitorBlock *, | ||
|  |                                  CXCursor, CXSourceRange); | ||
|  | } *CXCursorAndRangeVisitorBlock; | ||
|  | 
 | ||
|  | #endif // !__has_feature(blocks)
 | ||
|  | 
 | ||
|  | /// \brief The result of comparing two source ranges.
 | ||
|  | enum RangeComparisonResult { | ||
|  |   /// \brief Either the ranges overlap or one of the ranges is invalid.
 | ||
|  |   RangeOverlap, | ||
|  | 
 | ||
|  |   /// \brief The first range ends before the second range starts.
 | ||
|  |   RangeBefore, | ||
|  | 
 | ||
|  |   /// \brief The first range starts after the second range ends.
 | ||
|  |   RangeAfter | ||
|  | }; | ||
|  | 
 | ||
|  | #endif
 |