public void Reload() { OnChangeCompilerState(this, CompilerState.Reloading, null); //А это что? TreeRealization.type_node tn = SystemLibrary.SystemLibrary.void_type; ClearAll(); errorsList.Clear(); Warnings.Clear(); InternalDebug = new CompilerInternalDebug(); ParsersController = new Parsers.Controller(); ParsersController.ParserConnected += new PascalABCCompiler.Parsers.Controller.ParserConnectedDeleagte(ParsersController_ParserConnected); ParsersController.SourceFilesProvider = sourceFilesProvider; ParsersController.Reload(); SyntaxTreeToSemanticTreeConverter = new TreeConverter.SyntaxTreeToSemanticTreeConverter(); CodeGeneratorsController = new CodeGenerators.Controller(); //PABCToCppCodeGeneratorsController = new PascalToCppConverter.Controller(); SetSupportedSourceFiles(); SetSupportedProjectFiles(); syntaxTreeConvertersController = new SyntaxTreeConvertersController(this); syntaxTreeConvertersController.ChangeState += syntaxTreeConvertersController_ChangeState; syntaxTreeConvertersController.AddConverters(); semanticTreeConvertersController = new SemanticTreeConvertersController(this); semanticTreeConvertersController.ChangeState += semanticTreeConvertersController_ChangeState; semanticTreeConvertersController.AddConverters(); OnChangeCompilerState(this, CompilerState.Ready, null); }
void semanticTreeConvertersController_ChangeState(SemanticTreeConvertersController.State State, ISemanticTreeConverter SemanticTreeConverter) { switch (State) { case SemanticTreeConvertersController.State.Convert: OnChangeCompilerState(this, CompilerState.SemanticTreeConversion, SemanticTreeConverter.Name); break; case SemanticTreeConvertersController.State.ConnectConverter: OnChangeCompilerState(this, CompilerState.SemanticTreeConverterConnected, SemanticTreeConverter.Name); break; } }