private static int ExecuteApp(CommandOption language, CommandOption output, CommandOption includes, CommandArgument files) { // Currently we only support CSharp... if (language.Value() != "CSharp") { throw new NotSupportedException("Unsupported language: " + language.Value()); } // Create a new file resolver and include the passed directories var resolver = new ContextualFileResolver(); foreach (var include in includes.Values) { resolver.Include(include); } // Load in the passed files var pf = new DefinitionFile { Resolver = resolver }; pf.PopulateBuiltins(); foreach (var file in files.Values) { pf.Load(file); } // Generate. TODO: write in a way that easily allows for using different target languages var settings = new CSharpTargetSettings { OutDirectory = output.Value() }; var generator = new CSharpGenerator(pf); generator.Generate(settings); return(0); }
public static void Main(string[] args) { var resolver = new ContextualFileResolver(); resolver.Include("../Doc/"); // Create a new definition file with a file resolver pointing to ../Doc/ var pf = new DefinitionFile { Resolver = resolver }; pf.PopulateBuiltins(); pf.Load("chatroom.kpdl"); var settings = new CSharpTargetSettings { OutDirectory = "Gen/" }; var generator = new CSharpGenerator(pf); generator.Generate(settings); }