/// <summary>
        /// Gets parse information for the specified file.
        /// Blocks if the file wasn't parsed yet, but may return an old parsed version.
        /// This method is thread-safe. This method involves waiting for the main thread, so using it while
        /// holding a lock can lead to deadlocks. You might want to use <see cref="GetExistingParseInformation"/> instead.
        /// </summary>
        /// <returns>Returns the ParseInformation for the specified file, or null if the file cannot be parsed.
        /// The returned ParseInformation might be stale (re-parse is not forced).</returns>
//        public static ParseInformation GetParseInformation(string text, IProjectContent)
//        {
//            if (string.IsNullOrEmpty(text))
//                return null;
//            return new ParseInformation(CreateParser(text, TODO));
//        }

        public static ParseInformation GetParseInformation(string text, IProjectContent projectContent)
        {
            if (string.IsNullOrEmpty(text))
            {
                return(null);
            }
            return(new ParseInformation(TParser.Parse(projectContent, text)));
        }
 /// <summary>
 /// Creates a new IParser instance that can parse the specified file.
 /// This method is thread-safe.
 /// </summary>
 public static ICompilationUnit CreateParser(string text, IProjectContent projectContent)
 {
     return(TParser.Parse(projectContent, text));
 }