예제 #1
0
        /// <summary>
        /// Imports an XML document.
        /// </summary>
        /// <param name="file"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public CompileResult Compile(string file, [NotNull] CompileOptions options)
        {
            XmlDocument doc = new XmlDocument();

            doc.Load(file);

            return(Compile(doc, options));
        }
예제 #2
0
        public void SampleParse()
        {
            CompileOptions options = new CompileOptions();

            options.OutputFile        = "sample.cs";
            options.ConfigurationFile = null;

            GuiCompiler   compiler = new GuiCompiler();
            CompileResult result   = compiler.Compile(@"E:\SharpMedia\trunk\BuildOutput\testgui.xml", options);
        }
예제 #3
0
        /// <summary>
        /// Imports an XML doculemt.
        /// </summary>
        /// <param name="document"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        public CompileResult Compile([NotNull] XmlDocument document, [NotNull] CompileOptions options)
        {
            ASTApplication application = new Emit.ASTApplication();

            //try
            {
                // We create context.
                CompileContext context = new CompileContext(options);


                // 1) Parse it.
                application.Parse(context, document["Application"]);

                // 2) Resolve it.
                ResolveObject(context, null, application);

                // 3) Emit it.
                using (FileStream file = File.Create(options.OutputFile))
                {
                    using (TextWriter writer = new StreamWriter(file))
                    {
                        application.Emit(context, writer);
                    }
                }
            }
            //catch (GuiCompilingException ex)
            {
                CompileResult result = new CompileResult();
                result.IsSuccessful = false;
                //result.Errors = new Message(ex.Message)
                return(result);
            }

            CompileResult r = new CompileResult();

            r.IsSuccessful = true;
            return(r);
        }