using Capnp; using System; using System.IO; using System.Runtime.CompilerServices; [assembly: InternalsVisibleToAttribute("capnpc-csharp.tests")] namespace CapnpC { class Program { static void Main(string[] args) { Stream input; if (args.Length > 0) { input = new FileStream(args[0], FileMode.Open, FileAccess.Read); } else { Console.WriteLine("Cap'n Proto C# code generator backend"); Console.WriteLine("expecting binary-encoded code generation request from standard input"); input = Console.OpenStandardInput(); } try { WireFrame segments; using (input) { segments = Framing.ReadSegments(input); } var dec = DeserializerState.CreateRoot(segments); var reader = Schema.CodeGeneratorRequest.Reader.Create(dec); var model = Model.SchemaModel.Create(reader); var codeGen = new Generator.CodeGenerator(model, new Generator.GeneratorOptions()); codeGen.Generate(); } catch (Exception exception) { Console.Error.WriteLine(exception.Message); Environment.ExitCode = -1; } } } }