|
|
|
@ -160,24 +160,87 @@ namespace Grunwald.BooBinding.CodeCompletion
@@ -160,24 +160,87 @@ namespace Grunwald.BooBinding.CodeCompletion
|
|
|
|
|
compiler.Parameters.OutputWriter = new StringWriter(); |
|
|
|
|
compiler.Parameters.TraceLevel = System.Diagnostics.TraceLevel.Off; |
|
|
|
|
|
|
|
|
|
Compile compilePipe = new Compile(); |
|
|
|
|
// Compile pipeline as of Boo 0.9.2:
|
|
|
|
|
// Boo.Lang.Compiler.Pipelines.Parse:
|
|
|
|
|
// Boo.Lang.Parser.BooParsingStep
|
|
|
|
|
// Boo.Lang.Compiler.Pipelines.ExpandMacros:
|
|
|
|
|
// Boo.Lang.Compiler.Steps.InitializeTypeSystemServices
|
|
|
|
|
// Boo.Lang.Compiler.Steps.PreErrorChecking
|
|
|
|
|
// Boo.Lang.Compiler.Steps.MergePartialClasses
|
|
|
|
|
// Boo.Lang.Compiler.Steps.InitializeNameResolutionService
|
|
|
|
|
// Boo.Lang.Compiler.Steps.IntroduceGlobalNamespaces
|
|
|
|
|
// Boo.Lang.Compiler.Steps.TransformCallableDefinitions
|
|
|
|
|
// Boo.Lang.Compiler.Steps.BindTypeDefinitions
|
|
|
|
|
// Boo.Lang.Compiler.Steps.BindGenericParameters
|
|
|
|
|
// Boo.Lang.Compiler.Steps.BindNamespaces
|
|
|
|
|
// Boo.Lang.Compiler.Steps.BindBaseTypes
|
|
|
|
|
// Boo.Lang.Compiler.Steps.MacroAndAttributeExpansion
|
|
|
|
|
// Boo.Lang.Compiler.Pipelines.ResolveExpressions:
|
|
|
|
|
// Boo.Lang.Compiler.Steps.ExpandAstLiterals
|
|
|
|
|
// Boo.Lang.Compiler.Steps.IntroduceModuleClasses
|
|
|
|
|
// Boo.Lang.Compiler.Steps.NormalizeStatementModifiers
|
|
|
|
|
// Boo.Lang.Compiler.Steps.NormalizeTypeAndMemberDefinitions
|
|
|
|
|
// Boo.Lang.Compiler.Steps.NormalizeOmittedExpressions
|
|
|
|
|
// Boo.Lang.Compiler.Steps.BindTypeDefinitions
|
|
|
|
|
// Boo.Lang.Compiler.Steps.BindGenericParameters
|
|
|
|
|
// Boo.Lang.Compiler.Steps.BindEnumMembers
|
|
|
|
|
// Boo.Lang.Compiler.Steps.BindBaseTypes
|
|
|
|
|
// Boo.Lang.Compiler.Steps.CheckMemberTypes
|
|
|
|
|
// Boo.Lang.Compiler.Steps.BindMethods
|
|
|
|
|
// Boo.Lang.Compiler.Steps.ResolveTypeReferences
|
|
|
|
|
// Boo.Lang.Compiler.Steps.BindTypeMembers
|
|
|
|
|
// Boo.Lang.Compiler.Steps.CheckGenericConstraints
|
|
|
|
|
// Boo.Lang.Compiler.Steps.ProcessInheritedAbstractMembers
|
|
|
|
|
// Boo.Lang.Compiler.Steps.CheckMemberNames
|
|
|
|
|
// Boo.Lang.Compiler.Steps.ProcessMethodBodiesWithDuckTyping
|
|
|
|
|
// Boo.Lang.Compiler.Steps.PreProcessExtensionMethods
|
|
|
|
|
// Boo.Lang.Compiler.Pipelines.Compile:
|
|
|
|
|
// Boo.Lang.Compiler.Steps.ConstantFolding
|
|
|
|
|
// Boo.Lang.Compiler.Steps.NormalizeLiterals
|
|
|
|
|
// Boo.Lang.Compiler.Steps.OptimizeIterationStatements
|
|
|
|
|
// Boo.Lang.Compiler.Steps.BranchChecking
|
|
|
|
|
// Boo.Lang.Compiler.Steps.CheckIdentifiers
|
|
|
|
|
// Boo.Lang.Compiler.Steps.StricterErrorChecking
|
|
|
|
|
// Boo.Lang.Compiler.Steps.CheckAttributesUsage
|
|
|
|
|
// Boo.Lang.Compiler.Steps.ExpandDuckTypedExpressions
|
|
|
|
|
// Boo.Lang.Compiler.Steps.ProcessAssignmentsToValueTypeMembers
|
|
|
|
|
// Boo.Lang.Compiler.Steps.ExpandProperties
|
|
|
|
|
// Boo.Lang.Compiler.Steps.RemoveDeadCode
|
|
|
|
|
// Boo.Lang.Compiler.Steps.CheckMembersProtectionLevel
|
|
|
|
|
// Boo.Lang.Compiler.Steps.NormalizeIterationStatements
|
|
|
|
|
// Boo.Lang.Compiler.Steps.ProcessSharedLocals
|
|
|
|
|
// Boo.Lang.Compiler.Steps.ProcessClosures
|
|
|
|
|
// Boo.Lang.Compiler.Steps.ProcessGenerators
|
|
|
|
|
// Boo.Lang.Compiler.Steps.ExpandVarArgsMethodInvocations
|
|
|
|
|
// Boo.Lang.Compiler.Steps.InjectCallableConversions
|
|
|
|
|
// Boo.Lang.Compiler.Steps.ImplementICallableOnCallableDefinitions
|
|
|
|
|
// Boo.Lang.Compiler.Steps.CheckNeverUsedMembers
|
|
|
|
|
// Boo.Lang.Compiler.Pipelines.CompileToMemory:
|
|
|
|
|
// Boo.Lang.Compiler.Steps.EmitAssembly
|
|
|
|
|
// Boo.Lang.Compiler.Pipelines.CompileToFile:
|
|
|
|
|
// Boo.Lang.Compiler.Steps.SaveAssembly
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CompilerPipeline compilePipe = new Parse(); |
|
|
|
|
compilePipe.Add(new InitializeTypeSystemServices()); |
|
|
|
|
compilePipe.Add(new PreErrorChecking()); |
|
|
|
|
compilePipe.Add(new MergePartialClasses()); |
|
|
|
|
compilePipe.Add(new InitializeNameResolutionService()); |
|
|
|
|
compilePipe.Add(new IntroduceGlobalNamespaces()); |
|
|
|
|
// TransformCallableDefinitions: not used for CC
|
|
|
|
|
compilePipe.Add(new BindTypeDefinitions()); |
|
|
|
|
compilePipe.Add(new BindGenericParameters()); |
|
|
|
|
compilePipe.Add(new BindNamespacesWithoutRemovingErrors()); |
|
|
|
|
compilePipe.Add(new BindBaseTypes()); |
|
|
|
|
compilePipe.Add(new MacroAndAttributeExpansion()); |
|
|
|
|
compilePipe.Add(new IntroduceModuleClasses()); |
|
|
|
|
|
|
|
|
|
BooParsingStep parsingStep = (BooParsingStep)compilePipe[0]; |
|
|
|
|
parsingStep.TabSize = 1; |
|
|
|
|
|
|
|
|
|
ConvertVisitor visitor = new ConvertVisitor(lineLength, projectContent); |
|
|
|
|
visitor.Cu.FileName = fileName; |
|
|
|
|
|
|
|
|
|
// Remove unneccessary compiler steps
|
|
|
|
|
int num = 1 + compilePipe.Find(typeof(NormalizeStatementModifiers)); |
|
|
|
|
compilePipe[num] = visitor; |
|
|
|
|
while (compilePipe.Count > num + 1) |
|
|
|
|
compilePipe.RemoveAt(compilePipe.Count - 1); |
|
|
|
|
num = compilePipe.Find(typeof(TransformCallableDefinitions)); |
|
|
|
|
compilePipe.RemoveAt(num); |
|
|
|
|
|
|
|
|
|
//for (int i = 0; i < compilePipe.Count; i++) {
|
|
|
|
|
// Console.WriteLine(compilePipe[i]);
|
|
|
|
|
//}
|
|
|
|
|
compilePipe.Add(visitor); |
|
|
|
|
|
|
|
|
|
compilePipe.BreakOnErrors = false; |
|
|
|
|
compiler.Parameters.Pipeline = compilePipe; |
|
|
|
|