2019-08-29 13:36:57 -04:00

51 lines
1.4 KiB
C#

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