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);
        }
Beispiel #2
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);
        }