public static AstWriter Create(SourcePackage upk, string filename, AstSerializationFlags flags) { if (upk.IsUnknown) { throw new InvalidOperationException("AstWriter: Unknown source package"); } var w = new AstWriter(upk, filename, flags); w.Write(AstSerialization.Magic); return(w); }
void WriteAst(IEnumerable <AstDocument> ast, string outputDir, string basename, AstSerializationFlags flags) { Disk.CreateDirectory(outputDir); var filename = Path.Combine(outputDir, basename + "." + AstCache.MagicString); Log.Event(IOEvent.Write, filename); ast.Serialize(_upk, filename, flags); }
public AstWriter(SourcePackage upk, string filename, AstSerializationFlags flags) : base(upk, filename) { OptimizeSources = flags.HasFlag(AstSerializationFlags.OptimizeSources); }
public static void Serialize(this IEnumerable <AstDocument> list, SourcePackage upk, string filename, AstSerializationFlags flags) { using (var w = AstWriter.Create(upk, filename, flags)) foreach (var e in list) { w.WriteDocument(e); } }
public static void Serialize(this AstBlock block, string filename, AstSerializationFlags flags = 0) { using (var w = AstWriter.Create(block.Name.Source.Package, filename, flags)) w.WriteBlock(block); }