Ejemplo n.º 1
0
        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;
                    }
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }