private void Initialize() { if (!_initialized) { lock (_initializationLock) if (!_initialized) { var swTotal = Stopwatch.StartNew(); var parsedConcepts = _dslParser.ParsedConcepts; var swFirstAdd = Stopwatch.StartNew(); _dslContainer.AddNewConceptsAndReplaceReferences(parsedConcepts); _performanceLogger.Write(swFirstAdd, $"DslModel.Initialize: First AddNewConceptsAndReplaceReferences ({_dslContainer.Concepts.Count()} concepts)."); ExpandMacroConcepts(); _dslContainer.ReportErrorForUnresolvedConcepts(); CheckSemantics(); _dslContainer.SortReferencesBeforeUsingConcept(); LogDslModel(); ReportObsoleteConcepts(); _dslModelFile.SaveConcepts(_dslContainer.Concepts); _performanceLogger.Write(swTotal, $"DslModel.Initialize ({_dslContainer.Concepts.Count()} concepts)."); _initialized = true; } } }
private DslContainer Initialize(DslContainer dslContainer) { var swTotal = Stopwatch.StartNew(); var nodes = _dslParser.GetConcepts(); var swConvert = Stopwatch.StartNew(); var parsedConcepts = ConceptInfoHelper.ConvertNodesToConceptInfos(nodes); _performanceLogger.Write(swConvert, nameof(ConceptInfoHelper.ConvertNodesToConceptInfos)); var alternativeInitializationGeneratedReferences = InitializeAlternativeInitializationConcepts(parsedConcepts); var swFirstAdd = Stopwatch.StartNew(); dslContainer.AddNewConceptsAndReplaceReferences(new[] { CreateInitializationConcept() }); dslContainer.AddNewConceptsAndReplaceReferences(parsedConcepts); dslContainer.AddNewConceptsAndReplaceReferences(alternativeInitializationGeneratedReferences); _performanceLogger.Write(swFirstAdd, $"Initialize: First AddNewConceptsAndReplaceReferences ({dslContainer.Concepts.Count()} concepts)."); ExpandMacroConcepts(dslContainer); CheckSemantics(dslContainer); dslContainer.SortReferencesBeforeUsingConcept(_buildOptions.InitialConceptsSort); ReportObsoleteConcepts(dslContainer); _dslModelFile.SaveConcepts(dslContainer.Concepts); _performanceLogger.Write(swTotal, $"Initialize ({dslContainer.Concepts.Count()} concepts)."); return(dslContainer); }
private DslContainer Initialize(DslContainer dslContainer) { var swTotal = Stopwatch.StartNew(); var parsedConcepts = _dslParser.ParsedConcepts; var swFirstAdd = Stopwatch.StartNew(); dslContainer.AddNewConceptsAndReplaceReferences(parsedConcepts); _performanceLogger.Write(swFirstAdd, $"Initialize: First AddNewConceptsAndReplaceReferences ({dslContainer.Concepts.Count()} concepts)."); ExpandMacroConcepts(dslContainer); CheckSemantics(dslContainer); dslContainer.SortReferencesBeforeUsingConcept(_buildOptions.InitialConceptsSort); ReportObsoleteConcepts(dslContainer); _dslModelFile.SaveConcepts(dslContainer.Concepts); _performanceLogger.Write(swTotal, $"Initialize ({dslContainer.Concepts.Count()} concepts)."); return(dslContainer); }