private void toolStripButton1_Click(object sender, EventArgs e) { Benchmark mark = new Benchmark(); mark.Begin(); FileStream mapFile = new FileStream(filename1, FileMode.Create); using (mapFile) { Compiler compiler = new Compiler(mapFile); compiler.CompileFromScenario(@"scenarios\multi\headlong\headlong.scnr"); } mark.End(); MessageBox.Show(string.Format("Done: {0}", mark.Result)); }
public void Compile(Project project, bool rebuildcaches) { List<string> filenames = new List<string>(Directory.GetFiles(project.SourceDirectory, String.Format("*{0}", Sunfish.Tag.Path.Extension), SearchOption.AllDirectories)); project.SourceFiles = new List<string>(filenames); //for(int i=0;i<project.SourceFiles.Count;i++) // project.SourceFiles[i] = project.SourceFiles[i].Substring(project.SourceDirectory.Length); project.SortSourceFiles(); Benchmark mark = new Benchmark(); mark.Begin(); if (!rebuildcaches && CheckCacheStatus(project)) { LoadCaches(project); } else CreateCaches(project); CreateMap(project); mark.End(); System.Windows.Forms.MessageBox.Show(String.Format("finished in: {0}", mark.Result), "Solution Compiled"); }
void WriteStringIdTables() { Benchmark mark = new Benchmark(); mark.Begin(); Pad(file); map.Header.StringId128TableAddress = (int)file.Position; byte[] blank = new byte[128]; for (int i = 0; i < map.StringIdNames.Count; i++) { byte[] buffer = Encoding.UTF8.GetBytes(map.StringIdNames[i]); binWriter.Write(buffer); binWriter.Write(blank, 0, blank.Length - buffer.Length); } Pad(file); map.Header.StringIdIndexAddress = (int)file.Position; map.Header.StringIdCount = map.StringIdNames.Count; int start = 0; for (int i = 0; i < map.StringIdNames.Count; i++) { binWriter.Write(start); start += Encoding.UTF8.GetByteCount(map.StringIdNames[i]) + 1; } Pad(file); map.Header.StringIdTableAddress = (int)file.Position; for (int i = 0; i < map.StringIdNames.Count; i++) { binWriter.Write(Encoding.UTF8.GetBytes(map.StringIdNames[i])); binWriter.Write((byte)0x00); } map.Header.StringIdTableLength = (int)(file.Position - map.Header.StringIdTableAddress - 1); mark.End(); }