Beispiel #1
0
        public CompileUnit[] Run()
        {
            CompilerContext compilerContext = _compiler.Run();

            if (((ICollection)compilerContext.Errors).Count != 0)
            {
                throw new CompilationErrorsException(compilerContext.Errors);
            }
            CompileUnit compileUnit = compilerContext.CompileUnit;
            CompileUnit node        = compileUnit.CloneNode();

            return(new CompileUnit[]
            {
                ApplyCSharpTransformer(compileUnit),
                ApplyBooTransformer(node)
            });
        }
Beispiel #2
0
        public CompileUnit SetUpTypeInferenceSource()
        {
            CompilerPipeline compilerPipeline = UnityScriptCompiler.Pipelines.AdjustBooPipeline(new ResolveExpressions());

            compilerPipeline.RemoveAt(compilerPipeline.Find(typeof(ApplySemantics)));
            compilerPipeline.BreakOnErrors = false;
            var unityScriptCompiler = new UnityScriptCompiler(new UnityScriptCompilerParameters(My <IReflectionTypeSystemProvider> .Instance, false));

            CopyUnityScriptCompilerParametersTo(unityScriptCompiler);
            unityScriptCompiler.Parameters.Pipeline = compilerPipeline;

            unityScriptCompiler.Parameters.AddToEnvironment(
                typeof(TypeInferenceRuleProvider),
                GetCustomTypeInferenceRuleProvider);

            var compilerContext = unityScriptCompiler.Run(CompileUnit.CloneNode());

            if (((ICollection)compilerContext.Errors).Count != 0)
            {
                throw new CompilationErrorsException(compilerContext.Errors);
            }
            return(compilerContext.CompileUnit);
        }