Blade.Compiler.Translation.TranslationProcess.Execute C# (CSharp) Method

Execute() public method

Executes the translation process.
public Execute ( CompilationContext context ) : void
context CompilationContext The compilation context.
return void
        public void Execute(CompilationContext context)
        {
            if (context == null || context.Model == null)
                return;

            if (context.OutputStream == null || !context.OutputStream.CanWrite)
                throw new CompilationException("The translation output stream is null or not writable.");

            var translationCtx = new TranslationContext();
            translationCtx.OutputStream = context.OutputStream;

            // write enum declarations
            var enumTranslator = new EnumTranslator();
            foreach (var item in context.Model.Enums)
                enumTranslator.Translate(item, translationCtx);

            // write class declarations
            var classTranslator = new ClassTranslator();
            foreach (var item in ClassSorter.Sort(context.Model.Classes))
                classTranslator.Translate(item, translationCtx);

            // write global statements
            if (context.Model.GlobalStatements.Any())
            {
                translationCtx.WriteLine();
                translationCtx.IsWritingGlobalStatements = true;
                foreach (var item in context.Model.GlobalStatements)
                    translationCtx.WriteModel(item);
                translationCtx.IsWritingGlobalStatements = false;
            }
        }
    }
TranslationProcess