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); }
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; }
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); }
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); }
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(); }