protected override CompilerPipeline SetUpCompilerPipeline()
        {
            CompilerPipeline pipeline = new Boo.Lang.Compiler.Pipelines.Compile();

            pipeline.Add(new Boo.Lang.Compiler.Steps.PrintWarnings());
            return(pipeline);
        }
 protected override CompilerPipeline SetUpCompilerPipeline()
 {
     CompilerPipeline pipeline = new Boo.Lang.Compiler.Pipelines.Compile();
     pipeline.Add(new Boo.Lang.Compiler.Steps.PrintWarnings());
     return pipeline;
 }
Esempio n. 3
0
        protected virtual void SetupCompilerPipeline(IDictionary <string, IList <Comment> > comments)
        {
            var pipeline = new Boo.Lang.Compiler.Pipelines.Compile {
                BreakOnErrors = false
            };

            pipeline.Remove(typeof(ConstantFolding));
            pipeline.Remove(typeof(ExpandPropertiesAndEvents));
            pipeline.Remove(typeof(CheckNeverUsedMembers));
            pipeline.Remove(typeof(StricterErrorChecking));
            pipeline.Remove(typeof(RemoveDeadCode));
            pipeline.Remove(typeof(OptimizeIterationStatements));

            pipeline.Remove(typeof(ProcessGenerators));
            pipeline.Remove(typeof(NormalizeIterationStatements));
            pipeline.Remove(typeof(ProcessMethodBodies));

            var adjustedPipeline = UnityScriptCompiler.Pipelines.AdjustBooPipeline(pipeline);

            adjustedPipeline.Add(new FixClosures());

            adjustedPipeline.Remove(typeof(InjectCallableConversions));
            adjustedPipeline.Remove(typeof(CheckIdentifiers));
            adjustedPipeline.Remove(typeof(ProcessClosures));
            adjustedPipeline.Remove(typeof(ExpandUnityDuckTypedExpressions));

            adjustedPipeline.Replace(typeof(ProcessUnityScriptMethods), new SelectiveUnaryExpressionExpansionProcessUnityScriptMethods());
            adjustedPipeline.Insert(0, new PreProcessCollector(_referencedPreProcessorSymbols));

            adjustedPipeline.Add(new FixFunctionReferences());
            adjustedPipeline.Add(new FixTypeAccessibility());
            adjustedPipeline.Add(new CSharpReservedKeywordIdentifierClashFix());
            adjustedPipeline.Add(new CtorFieldInitializationFix());
            adjustedPipeline.Add(new RemoveUnnecessaryCastInArrayInstantiation());
            adjustedPipeline.Add(new FixEnumReferences());
            adjustedPipeline.Add(new OperatorMethodToLanguageOperator());
            adjustedPipeline.Add(new FixSwitchWithOnlyDefault());
            adjustedPipeline.Add(new MergeMainMethodStatementsIntoStartMethod());
            adjustedPipeline.Add(new ExpandValueTypeObjectInitialization());
            adjustedPipeline.Add(new CastInjector());
            adjustedPipeline.Add(new ExpandAssignmentToValueTypeMembers());
            adjustedPipeline.Add(new ApplyEnumToImplicitConversions());
            adjustedPipeline.Add(new InferredMethodReturnTypeFix());

            adjustedPipeline.Add(new RenameArrayDeclaration());
            adjustedPipeline.Add(new ReplaceUnityScriptArrayWithObjectArray());
            adjustedPipeline.Add(new InjectTypeOfExpressionsInArgumentsOfSystemType());
            adjustedPipeline.Add(new ReplaceArrayMemberReferenceWithCamelCaseVersion());

            adjustedPipeline.Add(new ReplaceGetSetItemMethodsWithOriginalIndexers());
            adjustedPipeline.Add(new PromoteImplicitBooleanConversionsToExplicitComparisons());
            adjustedPipeline.Add(new InstanceToTypeReferencedStaticMemberReference());
            adjustedPipeline.Add(new TransforwmKnownUnityEngineMethods());

            if (!_skipComments)
            {
                adjustedPipeline.Add(new AttachComments(comments));
            }

            _compiler.Parameters.Pipeline = adjustedPipeline;
        }