public override CFGData LoadData(IDataDescriptor id)
        {
            CFGArtificialDataDescriptor descriptor = (CFGArtificialDataDescriptor)id;
            CFGData cfgData             = descriptor.GenerateData();
            var     instanceArchiveName = GetResourceName(FileName + @"\.zip");

            using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
                IEnumerable <ZipArchiveEntry> entries = instancesZipFile.Entries.Where(e => e.FullName.StartsWith(descriptor.Identifier) && !String.IsNullOrWhiteSpace(e.Name));

                var bnfEntry = entries.Where(x => x.Name.EndsWith(".bnf")).FirstOrDefault();
                if (bnfEntry != null)
                {
                    using (var stream = new StreamReader(bnfEntry.Open())) {
                        cfgData.Grammar = stream.ReadToEnd();
                    }
                }

                var embedEntry = entries.Where(x => x.Name.EndsWith("Embed.txt")).FirstOrDefault();
                if (embedEntry != null)
                {
                    using (var stream = new StreamReader(embedEntry.Open())) {
                        cfgData.Embed = stream.ReadToEnd();
                    }
                }
            }
            return(cfgData);
        }
Exemple #2
0
        public override CFGData ImportData(string path)
        {
            var data = new CFGData();

            data.Name = Path.GetFileNameWithoutExtension(path);
            using (var reader = new StreamReader(path)) {
                data.Grammar = reader.ReadToEnd();
            }
            return(data);
        }
 public CFGData GenerateData() {
   CFGData cfgData = new CFGData();
   cfgData.Name = Name;
   cfgData.Description = Description;
   cfgData.TrainingPartitionStart = TrainingPartitionStart;
   cfgData.TrainingPartitionEnd = TrainingPartitionEnd;
   cfgData.TestPartitionStart = TestPartitionStart;
   cfgData.TestPartitionEnd = TestPartitionEnd;
   var inputOutput = GenerateInputOutput();
   cfgData.Input = inputOutput.Item1;
   cfgData.Output = inputOutput.Item2;
   return cfgData;
 }
Exemple #4
0
        public virtual CFGData GenerateGrammar(Options options)
        {
            var python  = new PythonGrammarConstructor();
            var grammar = python.CombineDataTypes(options);

            grammar.TrimGrammar(true);

            var data = new CFGData {
                Name    = String.Format("Generated Grammar (Types: {0})", String.Join(", ", options.Datatypes)),
                Grammar = grammar.PrintGrammar()
            };

            return(data);
        }
        public virtual CFGData GenerateData()
        {
            CFGData cfgData = new CFGData();

            cfgData.Name                   = Name;
            cfgData.Description            = Description;
            cfgData.TrainingPartitionStart = TrainingPartitionStart;
            cfgData.TrainingPartitionEnd   = TrainingPartitionEnd;
            cfgData.TestPartitionStart     = TestPartitionStart;
            cfgData.TestPartitionEnd       = TestPartitionEnd;
            var inputOutput = GenerateInputOutput();

            cfgData.Input  = inputOutput.Item1;
            cfgData.Output = inputOutput.Item2;
            return(cfgData);
        }
Exemple #6
0
        public override CFGData LoadDataLocal(IDataDescriptor id, bool treeStructure, int numberOfVariables = 3, bool recursion = false)
        {
            BenchmarkSuiteDataDescritpor descriptor = (BenchmarkSuiteDataDescritpor)id;
            CFGData cfgData             = descriptor.GenerateData(treeStructure, numberOfVariables, true, new PythonPushRelatedGrammarConstructor()); // set recursion to true. it should always be used for the Push Related Grammars
            var     instanceArchiveName = GetResourceName(FileName + @"\.zip");

            using (
                var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
                IEnumerable <ZipArchiveEntry> entries = instancesZipFile.Entries.Where(e => e.FullName.StartsWith(descriptor.Identifier) && !String.IsNullOrWhiteSpace(e.Name));

                var embedEntry = entries.FirstOrDefault(x => x.Name.EndsWith("Embed.txt"));
                if (embedEntry != null)
                {
                    using (var stream = new StreamReader(embedEntry.Open())) {
                        cfgData.Embed = stream.ReadToEnd();
                    }
                }
            }

            var pushRelatedArchiveName = GetType().Assembly.GetManifestResourceNames().First(x => x.EndsWith("PythonPushRelated.PushRelated.zip"));

            using (
                var pushRelatedZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(pushRelatedArchiveName), ZipArchiveMode.Read)) {
                ZipArchiveEntry headerEntry = pushRelatedZipFile.Entries.First(e => e.Name == "Embed-Header.txt");

                using (var stream = new StreamReader(headerEntry.Open())) {
                    var realHeader          = stream.ReadToEnd();
                    var endOfOriginalHeader = cfgData.Embed.LastIndexOf(HeaderSeparation);
                    cfgData.Embed = realHeader + cfgData.Embed.Substring(endOfOriginalHeader + HeaderSeparation.Length);
                }

                ZipArchiveEntry additionalEntry = pushRelatedZipFile.Entries.FirstOrDefault(e => e.FullName.StartsWith(descriptor.Identifier) && !String.IsNullOrWhiteSpace(e.Name));
                if (additionalEntry != null)
                {
                    using (var stream = new StreamReader(additionalEntry.Open())) {
                        var additionalHeader = stream.ReadToEnd();
                        var endOfHeader      = cfgData.Embed.LastIndexOf(HeaderSeparation);
                        cfgData.Embed = cfgData.Embed.Substring(0, endOfHeader) + additionalHeader + cfgData.Embed.Substring(endOfHeader, cfgData.Embed.Length - endOfHeader);
                    }
                }
            }

            return(cfgData);
        }
Exemple #7
0
        public virtual CFGData LoadDataLocal(IDataDescriptor id, bool treeStructure, int numberOfVariables = 3, bool recursion = false)
        {
            BenchmarkSuiteDataDescritpor descriptor = (BenchmarkSuiteDataDescritpor)id;
            CFGData cfgData             = descriptor.GenerateData(treeStructure, numberOfVariables, recursion, new PythonGrammarConstructor());
            var     instanceArchiveName = GetResourceName(FileName + @"\.zip");

            using (
                var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
                IEnumerable <ZipArchiveEntry> entries = instancesZipFile.Entries.Where(e => e.FullName.StartsWith(descriptor.Identifier) && !String.IsNullOrWhiteSpace(e.Name));

                var embedEntry = entries.FirstOrDefault(x => x.Name.EndsWith("Embed.txt"));
                if (embedEntry != null)
                {
                    using (var stream = new StreamReader(embedEntry.Open())) {
                        cfgData.Embed = stream.ReadToEnd();
                    }
                }
            }
            return(cfgData);
        }
 public override void ExportData(CFGData instance, string path)
 {
     throw new NotImplementedException();
 }