Esempio n. 1
0
 private static void Main(string[] args) {
     if (args.Length == 0) {
         Console.WriteLine("Find 'Code2Xml.Core' directory due to no arguments.");
         var dir = new FileInfo(Assembly.GetEntryAssembly().Location).Directory;
         while (true) {
             var dirs = dir.GetDirectories("Code2Xml.Core", SearchOption.AllDirectories);
             if (dirs.Length > 0) {
                 args = new[] { dirs[0].FullName };
                 break;
             }
             dir = dir.Parent;
             if (dir == null) {
                 Console.WriteLine("Can't find 'Code2Xml.Core' directory.");
                 args = new[] { Console.In.ReadLine() };
                 break;
             }
         }
     }
     foreach (var arg in args) {
         var path = Path.GetFullPath(arg);
         var dir = Directory.Exists(path) ? path : Path.GetDirectoryName(path);
         var grammarFiles = Directory.GetFiles(dir, "*.g", SearchOption.AllDirectories);
         foreach (var grammarFile in grammarFiles) {
             Console.WriteLine(grammarFile);
             var info = new ProcessStartInfo {
                 FileName = "Antlr3",
                 Arguments = '"' + grammarFile + '"',
                 CreateNoWindow = true,
                 UseShellExecute = true,
                 WorkingDirectory = Path.GetDirectoryName(grammarFile)
             };
             using (var p = Process.Start(info)) {
                 p.WaitForExit();
             }
             var csFiles = Directory.GetFiles(
                     info.WorkingDirectory, "*.cs", SearchOption.TopDirectoryOnly);
             foreach (var file in csFiles) {
                 if (file.EndsWith("Parser.cs")) {
                     Console.WriteLine(file);
                     ParserModifier.Modify(file);
                 } else if (file.EndsWith("Lexer.cs")) {
                     Console.WriteLine(file);
                     LexerModifier.Modify(file);
                 }
             }
         }
         var grammar4Files = Directory.GetFiles(dir, "*.g4", SearchOption.AllDirectories);
         foreach (var grammarFile in grammar4Files) {
             Console.WriteLine(grammarFile);
             Antlr4ParserModifier.Modify(grammarFile);
         }
     }
 }
        private void RunBundler(ProjectItem projectItem)
        {
            if (projectItem == null) return;

            try
            {
                if (projectItem.ContainingProject == null) return;

                // make sure this is a valid bundle file type
                if (!IsAllowedExtension(projectItem.Name)) return;

                // make sure the bundler exists
                var directory = new FileInfo(projectItem.ContainingProject.FileName).Directory;
                var bunderDirectory = directory.GetDirectories("bundler").FirstOrDefault();
                if (bunderDirectory == null) return;

                var bundleCommand = bunderDirectory.GetFiles("bundler.cmd").FirstOrDefault();
                if (bundleCommand == null) return;

                // make sure the files are in the bundler folder
                var fileNames = new List<string>();
                for (short i = 0; i < projectItem.FileCount; i += 1)
                    fileNames.Add(projectItem.FileNames[i]);

                if (fileNames.Any(m => m.StartsWith(bunderDirectory.FullName))) return;

                RunBundler(bundleCommand.FullName);
            }
            catch (Exception e)
            {
                // project item probably doesn't have a document
                Debug.WriteLine(e.Message);
            }
        }
 private void Init()
 {
     var targetPath = Path.Combine(_pluginPath, _packageName + "." + _packageVersion);
     var plugDir = new FileInfo(targetPath).Directory;
     var catalogs = plugDir.GetDirectories("*", SearchOption.AllDirectories).Select(x => new DirectoryCatalog(x.FullName));
     var directoryAggregate = new AggregateCatalog(catalogs);
     _container = new CompositionContainer(directoryAggregate);
     _container.ComposeParts(this);
     _node = _exports.First();
 }
Esempio n. 4
0
 public static void SetToV2Beta1(string/*!*/ platformAssembliesLocation)
 {
     TargetPlatform.TargetVersion = new Version(2, 0, 3600);
     TargetPlatform.GenericTypeNamesMangleChar = '!';
     string dotNetDirLocation = null;
     if (platformAssembliesLocation == null || platformAssembliesLocation.Length == 0)
     {
         DirectoryInfo dotNetDir = new FileInfo(new Uri(typeof(object).Module.Assembly.Location).LocalPath).Directory.Parent;
         dotNetDirLocation = dotNetDir.FullName;
         if (dotNetDirLocation != null) dotNetDirLocation = dotNetDirLocation.ToUpper(System.Globalization.CultureInfo.InvariantCulture);
         DateTime creationTime = DateTime.MinValue;
         foreach (DirectoryInfo subdir in dotNetDir.GetDirectories("v2.0*"))
         {
             if (subdir == null) continue;
             if (subdir.CreationTime < creationTime) continue;
             FileInfo[] mscorlibs = subdir.GetFiles("mscorlib.dll");
             if (mscorlibs != null && mscorlibs.Length == 1)
             {
                 platformAssembliesLocation = subdir.FullName;
                 creationTime = subdir.CreationTime;
             }
         }
     }
     else
         TargetPlatform.PlatformAssembliesLocation = platformAssembliesLocation;
     if (dotNetDirLocation != null && (platformAssembliesLocation == null || platformAssembliesLocation.Length == 0))
     {
         int pos = dotNetDirLocation.IndexOf("FRAMEWORK");
         if (pos > 0 && dotNetDirLocation.IndexOf("FRAMEWORK64") < 0)
         {
             dotNetDirLocation = dotNetDirLocation.Replace("FRAMEWORK", "FRAMEWORK64");
             if (Directory.Exists(dotNetDirLocation))
             {
                 DirectoryInfo dotNetDir = new DirectoryInfo(dotNetDirLocation);
                 DateTime creationTime = DateTime.MinValue;
                 foreach (DirectoryInfo subdir in dotNetDir.GetDirectories("v2.0*"))
                 {
                     if (subdir == null) continue;
                     if (subdir.CreationTime < creationTime) continue;
                     FileInfo[] mscorlibs = subdir.GetFiles("mscorlib.dll");
                     if (mscorlibs != null && mscorlibs.Length == 1)
                     {
                         platformAssembliesLocation = subdir.FullName;
                         creationTime = subdir.CreationTime;
                     }
                 }
             }
         }
     }
     TargetPlatform.PlatformAssembliesLocation = platformAssembliesLocation;
     TargetPlatform.InitializeStandardAssemblyLocationsWithDefaultValues(platformAssembliesLocation);
     TrivialHashtable assemblyReferenceFor = new TrivialHashtable(46);
     for (int i = 0, n = TargetPlatform.FxAssemblyNames.Length; i < n; i++)
     {
         string name = TargetPlatform.FxAssemblyNames[i];
         string version = TargetPlatform.FxAssemblyVersion2Build3600[i];
         string token = TargetPlatform.FxAssemblyToken[i];
         AssemblyReference aref = new AssemblyReference(name + ", Version=" + version + ", Culture=neutral, PublicKeyToken=" + token);
         aref.Location = platformAssembliesLocation + "\\" + name + ".dll";
         //^ assume name != null;
         assemblyReferenceFor[Identifier.For(name).UniqueIdKey] = aref;
     }
     TargetPlatform.assemblyReferenceFor = assemblyReferenceFor;
 }
 private void Init()
 {
     // Use RegistrationBuilder to set up our MEF parts.
     //var targetPath = Path.Combine(this.pluginPath, packageName + "." + packageVersion);
     var targetPath = _pluginPath;
     var plugDir = new FileInfo(targetPath).Directory;
     var catalogs = plugDir.GetDirectories("*", SearchOption.AllDirectories).Select(x => new DirectoryCatalog(x.FullName));
     var directoryAggregate = new AggregateCatalog(catalogs);
     _container = new CompositionContainer(directoryAggregate);
     _container.ComposeParts(this);
 }