Esempio n. 1
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Contract)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                ResolvedAgentTypeName     = new OnceReference <ITypeName>();
                ResolvedAgentType         = new OnceReference <ICompiledType>();
                ResolvedEffectiveTypeName = new OnceReference <ITypeName>();
                ResolvedEffectiveType     = new OnceReference <ICompiledType>();
                ValidFeatureName          = new OnceReference <IFeatureName>();
                ResolvedFeature           = new OnceReference <ICompiledFeature>();
                MostCommonResult          = new OnceReference <IExpressionType>();
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                IsCallingPrecursor = false;
                IsHandled          = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 2
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                LocalScope  = new SealableDictionary <string, IScopeAttributeFeature>();
                InnerScopes = new List <IScopeHolder>();
                FullScope   = new SealableDictionary <string, IScopeAttributeFeature>();
                IsHandled   = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                AdditionalScope = new SealableDictionary <string, IScopeAttributeFeature>();
                AdditionalScope.Seal();
                ResolvedTagTable                = new SealableDictionary <string, IExpression>();
                ResolvedResult                  = new OnceReference <IResultType>();
                ResolvedRequireList             = new OnceReference <IList <IAssertion> >();
                ResolvedEnsureList              = new OnceReference <IList <IAssertion> >();
                ResolvedExceptionIdentifierList = new OnceReference <IList <IIdentifier> >();
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                ResolvedInstructionList = new OnceReference <IList <IInstruction> >();
                IsHandled = true;
            }

            Debug.Assert(IsHandled);
        }
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Types)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                ResolvedResult        = new OnceReference <IResultType>();
                ConstantSourceList    = new SealableList <IExpression>();
                ExpressionConstant    = new OnceReference <ILanguageConstant>();
                ResolvedFinalFeature  = new OnceReference <ICompiledFeature>();
                ResolvedFinalDiscrete = new OnceReference <IDiscrete>();
                IsHandled             = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                ResolvedException      = new OnceReference <IResultException>();
                SelectedResultList     = new SealableList <IParameter>();
                SelectedOverload       = new OnceReference <IQueryOverload>();
                SelectedOverloadType   = new OnceReference <IQueryOverloadType>();
                FeatureCall            = new OnceReference <IFeatureCall>();
                InheritBySideAttribute = false;
                IsHandled = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 4
0
        /// <summary>
        /// Checks if a rule is resolved for this source.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to check.</param>
        public virtual bool IsResolved(IRuleTemplateList ruleTemplateList)
        {
            bool IsResolved = false;

            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers)
            {
                IsResolved = ValidPath.IsAssigned;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsResolved = false;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                IsResolved = ValidResultTypePath.IsAssigned;
                IsHandled  = true;
            }

            Debug.Assert(IsHandled);
            return(IsResolved);
        }
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                InnerLoopScope = new SealableDictionary <string, IScopeAttributeFeature>();
                LocalScope     = new SealableDictionary <string, IScopeAttributeFeature>();
                InnerScopes    = new List <IScopeHolder>();
                FullScope      = new SealableDictionary <string, IScopeAttributeFeature>();
                IsHandled      = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                AdditionalScope    = new SealableDictionary <string, IScopeAttributeFeature>(); // Don't seal it yet, not until indexers are handled.
                ResolvedResult     = new OnceReference <IResultType>();
                ResolvedInitResult = new OnceReference <IResultType>();
                IsHandled          = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                ResolvedException = new OnceReference <IResultException>();
                IsHandled         = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 6
0
        /// <summary>
        /// Checks if a rule is resolved for this source.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to check.</param>
        public virtual bool IsResolved(IRuleTemplateList ruleTemplateList)
        {
            bool IsResolved = false;

            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers)
            {
                IsResolved = false;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                Debug.Assert(ResolvedTypeName.IsAssigned == ResolvedType.IsAssigned);
                IsResolved = ResolvedType.IsAssigned;
                Debug.Assert(ExportTable.IsAssigned == IsResolved);
                Debug.Assert(TypedefTable.IsAssigned == IsResolved);
                Debug.Assert(DiscreteTable.IsAssigned == IsResolved);
                Debug.Assert(FeatureTable.IsAssigned == IsResolved);
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                IsResolved = ResolvedBodyTagList.IsAssigned;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                IsResolved = AssignedDiscreteTable.IsSealed;
                IsHandled  = true;
            }

            Debug.Assert(IsHandled);
            return(IsResolved);
        }
Esempio n. 7
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Types)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                ResolvedResult     = new OnceReference <IResultType>();
                ConstantSourceList = new SealableList <IExpression>();
                ExpressionConstant = new OnceReference <ILanguageConstant>();
                ResolvedPrecursor  = new OnceReference <IFeatureInstance>();
                IsHandled          = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                ResolvedException = new OnceReference <IResultException>();
                ResolvedIndexer   = new OnceReference <IIndexerFeature>();
                FeatureCall       = new OnceReference <IFeatureCall>();
                IsHandled         = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 8
0
        /// <summary>
        /// Checks if a rule is resolved for this source.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to check.</param>
        public virtual bool IsResolved(IRuleTemplateList ruleTemplateList)
        {
            bool IsResolved = false;

            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Contract || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsResolved = false;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                Debug.Assert(ResolvedEntityTypeName.IsAssigned == ResolvedEntityType.IsAssigned);
                Debug.Assert(ResolvedAgentTypeName.IsAssigned == ResolvedAgentType.IsAssigned);
                Debug.Assert(ResolvedEffectiveTypeName.IsAssigned == ResolvedEffectiveType.IsAssigned);

                IsResolved = ResolvedFeature.IsAssigned;

                Debug.Assert(ResolvedEntityType.IsAssigned || !IsResolved);
                Debug.Assert(ResolvedAgentType.IsAssigned || !IsResolved);
                Debug.Assert(ResolvedEffectiveType.IsAssigned || !IsResolved);

                IsHandled = true;
            }

            Debug.Assert(IsHandled);
            return(IsResolved);
        }
Esempio n. 9
0
        /// <summary>
        /// Checks if a rule is resolved for this source.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to check.</param>
        public virtual bool IsResolved(IRuleTemplateList ruleTemplateList)
        {
            bool IsResolved = false;

            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers)
            {
                IsResolved = false;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                IsResolved = NamespaceTable.IsSealed;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                IsResolved = ResolvedBodyTagList.IsAssigned && ResolvedNodeWithDefaultList.IsAssigned && ResolvedNodeWithNumberConstantList.IsAssigned && InheritedBodyTagListTable.IsSealed;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                IsResolved = ResolvedBodyList.IsAssigned && AssignedDiscreteTable.IsSealed;
                IsHandled  = true;
            }

            Debug.Assert(IsHandled);
            return(IsResolved);
        }
        /// <summary>
        /// Checks if a rule is resolved for this source.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to check.</param>
        public virtual bool IsResolved(IRuleTemplateList ruleTemplateList)
        {
            bool IsResolved = false;

            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers)
            {
                IsResolved = false;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                IsResolved = LocalScope.IsSealed;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                IsResolved = ResolvedResult.IsAssigned;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                IsResolved = ResolvedType.IsAssigned;

                Debug.Assert(ResolvedException.IsAssigned || !IsResolved);
                Debug.Assert(FeatureCall.IsAssigned || !IsResolved);

                IsHandled = true;
            }

            Debug.Assert(IsHandled);
            return(IsResolved);
        }
Esempio n. 11
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Contract)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                ResolvedAgentTypeName     = new OnceReference <ITypeName>();
                ResolvedAgentType         = new OnceReference <ICompiledType>();
                ResolvedEffectiveTypeName = new OnceReference <ITypeName>();
                ResolvedEffectiveType     = new OnceReference <ICompiledType>();
                ValidFeatureName          = new OnceReference <IFeatureName>();
                ResolvedFeature           = new OnceReference <ICompiledFeature>();
                ResolvedEntityTypeName    = new OnceReference <ITypeName>();
                ResolvedEntityType        = new OnceReference <ICompiledType>();
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                ResolvedEventType = (BaseNode.EventType)(-1);
                IsHandled         = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 12
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Contract || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                ResolvedBaseTypeName   = new OnceReference <ITypeName>();
                ResolvedBaseType       = new OnceReference <IClassType>();
                ResolvedEntityTypeName = new OnceReference <ITypeName>();
                ResolvedEntityType     = new OnceReference <ICompiledType>();
                ParameterTable         = new SealableList <IParameter>();
                ResolvedTypeName       = new OnceReference <ITypeName>();
                ResolvedType           = new OnceReference <ICompiledType>();
                DiscreteTable          = new SealableDictionary <IFeatureName, IDiscrete>();
                FeatureTable           = new SealableDictionary <IFeatureName, IFeatureInstance>();
                ExportTable            = new SealableDictionary <IFeatureName, ISealableDictionary <string, IClass> >();
                ConformanceTable       = new SealableDictionary <ITypeName, ICompiledType>();
                InstancingRecordList   = new List <TypeInstancingRecord>();
                OriginatingTypedef     = new OnceReference <ITypedef>();
                IsHandled = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 13
0
        /// <summary>
        /// Checks if a rule is resolved for this source.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to check.</param>
        public virtual bool IsResolved(IRuleTemplateList ruleTemplateList)
        {
            bool IsResolved = false;

            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Types)
            {
                IsResolved = false;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                IsResolved = ResolvedResult.IsAssigned && ResolvedRequireList.IsAssigned && ResolvedEnsureList.IsAssigned && ResolvedExceptionIdentifierList.IsAssigned;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                IsResolved = ResolvedInstructionList.IsAssigned;
                IsHandled  = true;
            }

            Debug.Assert(IsHandled);
            return(IsResolved);
        }
Esempio n. 14
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Types)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                ResolvedTagTable                = new SealableDictionary <string, IExpression>();
                ResolvedResult                  = new OnceReference <IResultType>();
                ResolvedRequireList             = new OnceReference <IList <IAssertion> >();
                ResolvedEnsureList              = new OnceReference <IList <IAssertion> >();
                ResolvedExceptionIdentifierList = new OnceReference <IList <IIdentifier> >();
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                ResolvedInstructionList = new OnceReference <IList <IInstruction> >();
                IsHandled = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 15
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Types)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                ResolvedResult        = new OnceReference <IResultType>();
                ConstantSourceList    = new SealableList <IExpression>();
                ExpressionConstant    = new OnceReference <ILanguageConstant>();
                ResolvedAgentTypeName = new OnceReference <ITypeName>();
                ResolvedAgentType     = new OnceReference <ICompiledType>();
                ResolvedFeature       = new OnceReference <ICompiledFeature>();
                IsHandled             = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                ResolvedException = new OnceReference <IResultException>();
                IsHandled         = true;
            }

            Debug.Assert(IsHandled);
        }
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                LocalScope  = new SealableDictionary <string, IScopeAttributeFeature>();
                InnerScopes = new List <IScopeHolder>();
                FullScope   = new SealableDictionary <string, IScopeAttributeFeature>();
                IsHandled   = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                AdditionalScope = new SealableDictionary <string, IScopeAttributeFeature>();
                AdditionalScope.Seal();
                ResolvedResult = new OnceReference <IResultType>();
                IsHandled      = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                ResolvedType      = new OnceReference <ICompiledType>();
                ResolvedException = new OnceReference <IResultException>();
                FeatureCall       = new OnceReference <IFeatureCall>();
                IsHandled         = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 17
0
        /// <summary>
        /// Checks if a rule is resolved for this source.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to check.</param>
        public virtual bool IsResolved(IRuleTemplateList ruleTemplateList)
        {
            bool IsResolved = false;

            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Types)
            {
                IsResolved = false;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                IsResolved = ExpressionConstant.IsAssigned;

                Debug.Assert(ResolvedResult.IsAssigned || !IsResolved);

                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                IsResolved = ResolvedException.IsAssigned;

                Debug.Assert(ResolvedFinalFeature.IsAssigned || !IsResolved);

                IsHandled = true;
            }

            Debug.Assert(IsHandled);
            return(IsResolved);
        }
Esempio n. 18
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                LocalScope             = new SealableDictionary <string, IScopeAttributeFeature>();
                InnerScopes            = new List <IScopeHolder>();
                FullScope              = new SealableDictionary <string, IScopeAttributeFeature>();
                ParameterTable         = new SealableList <IParameter>();
                ResolvedAssociatedType = new OnceReference <ICommandOverloadType>();
                IsHandled              = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                AdditionalScope = new SealableDictionary <string, IScopeAttributeFeature>();
                AdditionalScope.Seal();
                ResolvedBody = new OnceReference <ICompiledBody>();
                IsHandled    = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 19
0
        /// <summary>
        /// Checks if a rule is resolved for this source.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to check.</param>
        public virtual bool IsResolved(IRuleTemplateList ruleTemplateList)
        {
            bool IsResolved = false;

            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsResolved = false;
                IsHandled  = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                IsResolved = LocalScope.IsSealed;
                Debug.Assert(ParameterTable.IsSealed == IsResolved);
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                IsResolved = ResolvedBody.IsAssigned;
                IsHandled  = true;
            }

            Debug.Assert(IsHandled);
            return(IsResolved);
        }
Esempio n. 20
0
 /// <summary>
 /// Initializes a new instance of the <see cref="InferenceEngine"/> class.
 /// </summary>
 /// <param name="ruleTemplateList">The set of rules to execute.</param>
 /// <param name="sourceList">The list of nodes on which rules are checked and applied.</param>
 /// <param name="classList">The list of classes to resolve.</param>
 /// <param name="isCycleErrorChecked">True if the engine should check for cyclic dependencies errors.</param>
 /// <param name="retries">Number of retries (debug only).</param>
 public InferenceEngine(IRuleTemplateList ruleTemplateList, IList <ISource> sourceList, IList <IClass> classList, bool isCycleErrorChecked, int retries)
 {
     RuleTemplateList    = ruleTemplateList;
     SourceList          = sourceList;
     ClassList           = classList;
     IsCycleErrorChecked = isCycleErrorChecked;
     Retries             = retries;
 }
Esempio n. 21
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Types || ruleTemplateList == RuleTemplateSet.Contract || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsHandled = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 22
0
        /// <summary>
        /// Checks if a rule is resolved for this source.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to check.</param>
        public virtual bool IsResolved(IRuleTemplateList ruleTemplateList)
        {
            bool IsResolved = false;

            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Types || ruleTemplateList == RuleTemplateSet.Contract || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsResolved = false;
                IsHandled  = true;
            }

            Debug.Assert(IsHandled);
            return(IsResolved);
        }
Esempio n. 23
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Contract || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                ValidDiscreteName = new OnceReference <IFeatureName>();
                IsHandled         = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 24
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers)
            {
                ValidText = new OnceReference <string>();
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types || ruleTemplateList == RuleTemplateSet.Contract || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsHandled = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 25
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Contract || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                ResolvedSourceTypeName = new OnceReference <ITypeName>();
                ResolvedSourceType     = new OnceReference <ICompiledType>();
                IsHandled = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 26
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Contract || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                TypeName       = null;
                ParameterTable = new SealableList <IParameter>();
                IsHandled      = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 27
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Contract || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                ValidExportName  = new OnceReference <IFeatureName>();
                ExportClassTable = new OnceReference <ISealableDictionary <string, IClass> >();
                IsHandled        = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 28
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers)
            {
                IdentifierTable       = new SealableDictionary <string, IIdentifier>();
                ValidExportIdentifier = new OnceReference <string>();
                IsHandled             = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types || ruleTemplateList == RuleTemplateSet.Contract || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsHandled = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 29
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                ResolvedAgentTypeName     = new OnceReference <ITypeName>();
                ResolvedAgentType         = new OnceReference <ICompiledType>();
                ResolvedEffectiveTypeName = new OnceReference <ITypeName>();
                ResolvedEffectiveType     = new OnceReference <ICompiledType>();
                ValidFeatureName          = new OnceReference <IFeatureName>();
                ResolvedFeature           = new OnceReference <ICompiledFeature>();
                ResolvedEntityTypeName    = new OnceReference <ITypeName>();
                ResolvedEntityType        = new OnceReference <ICompiledType>();
                ParameterTable            = new SealableList <IParameter>();
                LocalScope     = new SealableDictionary <string, IScopeAttributeFeature>();
                LocalGetScope  = new SealableDictionary <string, IScopeAttributeFeature>();
                LocalSetScope  = new SealableDictionary <string, IScopeAttributeFeature>();
                InnerScopes    = new List <IScopeHolder>();
                InnerGetScopes = new List <IScopeHolder>();
                InnerSetScopes = new List <IScopeHolder>();
                FullScope      = new SealableDictionary <string, IScopeAttributeFeature>();
                FullGetScope   = new SealableDictionary <string, IScopeAttributeFeature>();
                FullSetScope   = new SealableDictionary <string, IScopeAttributeFeature>();
                IsHandled      = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Contract)
            {
                AdditionalScope = new SealableDictionary <string, IScopeAttributeFeature>();
                AdditionalScope.Seal();
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Body)
            {
                IsCallingPrecursor = false;
                IsHandled          = true;
            }

            Debug.Assert(IsHandled);
        }
Esempio n. 30
0
        /// <summary>
        /// Reset some intermediate results.
        /// </summary>
        /// <param name="ruleTemplateList">The list of rule templates that would read the properties to reset.</param>
        public void Reset(IRuleTemplateList ruleTemplateList)
        {
            bool IsHandled = false;

            if (ruleTemplateList == RuleTemplateSet.Identifiers || ruleTemplateList == RuleTemplateSet.Contract || ruleTemplateList == RuleTemplateSet.Body)
            {
                IsHandled = true;
            }
            else if (ruleTemplateList == RuleTemplateSet.Types)
            {
                ResolvedGenericTypeName  = new OnceReference <ITypeName>();
                ResolvedGenericType      = new OnceReference <IFormalGenericType>();
                ResolvedDefaultType      = new OnceReference <ICompiledType>();
                ResolvedConformanceTable = new SealableDictionary <ITypeName, ICompiledType>();
                TypeTable = new SealableDictionary <ITypeName, ICompiledType>();
                IsHandled = true;
            }

            Debug.Assert(IsHandled);
        }