public static CompilerPipeline AdjustBooPipeline(CompilerPipeline pipeline)
{
pipeline.Insert(0, new PreProcess());
pipeline.Replace(typeof(Parsing), new UnityScript.Steps.Parse());
pipeline.Replace(typeof(IntroduceGlobalNamespaces), new IntroduceUnityGlobalNamespaces());
pipeline.InsertAfter(typeof(PreErrorChecking), new ApplySemantics());
pipeline.InsertAfter(typeof(ApplySemantics), new ApplyDefaultVisibility());
pipeline.InsertBefore(typeof(ExpandDuckTypedExpressions), new ProcessAssignmentToDuckMembers());
pipeline.Replace(typeof(ProcessMethodBodiesWithDuckTyping), new ProcessUnityScriptMethods());
pipeline.InsertAfter(typeof(ProcessUnityScriptMethods), new AutoExplodeVarArgsInvocations());
pipeline.InsertAfter(typeof(ProcessUnityScriptMethods), new ProcessEvalInvocations());
UnityScriptCompilerModule.ReplaceOptional(pipeline, typeof(ExpandDuckTypedExpressions), new ExpandUnityDuckTypedExpressions());
pipeline.InsertBefore(typeof(EmitAssembly), new Lint());
pipeline.InsertBefore(typeof(EmitAssembly), new EnableRawArrayIndexing());
pipeline.InsertAfter(typeof(BindBaseTypes), new CheckBaseTypes());
return pipeline;
}