예제 #1
0
        /// <summary>
        /// Get Clang Token
        /// </summary>
        /// <param name="location">Clang Source Location</param>
        /// <returns>Clang Token</returns>
        public ClangToken GetToken(ClangSourceLocation location)
        {
            var native_token_ptr = LibClang.clang_getToken(this.Handle, location.Source);

            if (native_token_ptr == IntPtr.Zero)
            {
                return(null);
            }
            else
            {
                var token = native_token_ptr.ToNativeStuct <CXToken>().ToManaged(this.Handle);

                LibClang.clang_disposeTokens(this.Handle, native_token_ptr, 1);

                return(token);
            }
        }
예제 #2
0
 /// <summary>
 /// Check Equality
 /// </summary>
 /// <param name="other">Other Clang Source Location</param>
 /// <returns>Check Result</returns>
 public bool Equals(ClangSourceLocation other)
 {
     return(LibClang.clang_equalLocations(this.Source, other.Source).ToBool());
 }
예제 #3
0
 /// <summary>
 /// Get Clang Cursor
 /// </summary>
 /// <param name="loc">Clang Source Location</param>
 /// <returns>Clang Cursor</returns>
 public ClangCursor GetCursor(ClangSourceLocation loc)
 {
     return(LibClang.clang_getCursor(this.Handle, loc.Source).ToManaged());
 }