public void SyntaxCheckAndDump(Stream s, UGUI user, UUID assetID, TextReader reader, CultureInfo cultureInfo = null, Func <string, TextReader> includeOpen = null) { int linenumber = 1; var shbangs = new Dictionary <int, string>(); var header = new StringBuilder(); while (reader.Peek() == '/') { string shbang = reader.ReadLine(); header.AppendLine(shbang); if (shbang.StartsWith("//#!")) { shbangs.Add(linenumber, shbang); } ++linenumber; } using (var headReader = new StreamReaderAddHead(header.ToString(), reader)) { SyntaxCheckAndDump(s, user, shbangs, assetID, headReader, cultureInfo: cultureInfo, includeOpen: includeOpen); } }
public IScriptAssembly Compile(AppDomain appDom, UGUI user, UUID assetID, TextReader reader, CultureInfo cultureInfo = null, Func <string, TextReader> includeOpen = null) { int linenumber = 1; var shbangs = new Dictionary <int, string>(); var header = new StringBuilder(); while (reader.Peek() == '/') { var shbang = reader.ReadLine(); header.AppendLine(shbang); if (shbang.StartsWith("//#!")) { shbangs.Add(linenumber, shbang); } ++linenumber; } using (var headReader = new StreamReaderAddHead(header.ToString(), reader)) { return(Compile(user, shbangs, assetID, headReader, cultureInfo: cultureInfo, includeOpen: includeOpen)); } }
public void CompileToDisk(string filename, UGUI user, UUID assetID, TextReader reader, CultureInfo cultureInfo = null, Func <string, TextReader> includeOpen = null) { int linenumber = 1; var shbangs = new Dictionary <int, string>(); var header = new StringBuilder(); while (reader.Peek() == '/') { var shbang = reader.ReadLine(); header.AppendLine(shbang); if (shbang.StartsWith("//#!")) { shbangs.Add(linenumber, shbang); } ++linenumber; } var compiler = DetermineShBangs(shbangs, cultureInfo); using (var headReader = new StreamReaderAddHead(header.ToString(), reader)) { compiler.CompileToDisk(filename, AppDomain.CurrentDomain, user, shbangs, assetID, headReader, cultureInfo: cultureInfo, includeOpen: includeOpen); } }