示例#1
0
 public void ParseAndBecomeValid()
 {
     using (TranslationUnit tu = new TranslationUnit(TestCode.TranslationUnits.Index, TestCode.SimpleClassCppFile.Path))
     {
         Assert.IsFalse(tu.Valid);
         tu.Parse(null, null);
         Assert.IsTrue(tu.Valid);
     }
 }
示例#2
0
 public void ParseNonExistantFileThrows()
 {
     try
     {
         using (TranslationUnit tu = new TranslationUnit(TestCode.TranslationUnits.Index, "BlahBlah"))
         {
             tu.Parse(null, null);
         }                
     }
     catch (System.IO.FileNotFoundException)
     {
         return;
     }
     Assert.Fail();
 }
示例#3
0
文件: Parser.cs 项目: JadeHub/Jade
        public static ParseResult Parse(IProjectIndex index, FilePath path, string[] compilerArgs, IUnsavedFileProvider unsavedFiles)
        {
            TranslationUnit tu = new TranslationUnit(index.LibClangIndex, path.Str);

            //Take a snapshot of the source
            IEnumerable<ParseFile> files = unsavedFiles.UnsavedFiles;
            List<Tuple<string, string>> unsavedList = new List<Tuple<string, string>>();
            foreach (var i in files)
            {
                unsavedList.Add(new Tuple<string, string>(i.Path.Str, i.Content));
            }
            if (tu.Parse(compilerArgs, unsavedList) == false)
            {
                tu.Dispose();
                return null;
            }
            return new ParseResult(index, path, files, tu); ;
        }
示例#4
0
 static TranslationUnit CreateTranslationUnit(string path)
 {
     TranslationUnit tu = new TranslationUnit(Index, path);
     tu.Parse(new string[] { "-Weverything" }, null);
     return tu;
 }