/// <inheritdoc/> public override void DiscoverAllAnnotations(IList <RuleInstance> result) { base.DiscoverAllAnnotations(result); SubName?.DiscoverAllAnnotations(result); SuperName?.DiscoverAllAnnotations(result); Rank?.DiscoverAllAnnotations(result); }
/// <inheritdoc/> protected override ulong CalculateLongHashCode() { var result = base.CalculateLongHashCode() ^ SubName.GetLongHashCode() ^ SuperName.GetLongHashCode(); if (Rank != null) { result ^= LongHashCodeWeights.BaseModalityWeight ^ Rank.GetLongHashCode(); } return(result); }
/// <inheritdoc/> public override AstStatement CloneAstStatement(Dictionary <object, object> context) { if (context.ContainsKey(this)) { return((AstStatement)context[this]); } var result = new AstUseInheritanceStatement(); context[this] = result; result.SubName = SubName.Clone(context); result.SuperName = SuperName.Clone(context); result.Rank = Rank.CloneValue(context); result.HasNot = HasNot; result.AppendAnnotations(this, context); return(result); }
public bool IsNullTarget(AmlParser.Target target) { SuperName superName = target.superName; if (superName.Tag != SuperName.TagValue.SimpleName) { return(false); } SimpleName simpleName = superName.GetAsSimpleName(); if (simpleName.Tag != SimpleName.TagValue.NameString) { return(false); } NodePath nodePath = simpleName.GetAsNameString().nodePath; return(!nodePath.IsAbsolute && nodePath.NumParentPrefixes == 0 && nodePath.NameSegments.Length == 0); }
/// <summary> /// Clones the instance using special context and returns cloned instance. /// </summary> /// <param name="context">Special context for providing references continuity.</param> /// <returns>Cloned instance.</returns> public InheritanceItem Clone(Dictionary <object, object> context) { if (context.ContainsKey(this)) { return((InheritanceItem)context[this]); } var result = new InheritanceItem(); context[this] = result; result.SubName = SubName.Clone(context); result.SuperName = SuperName.Clone(context); result.Rank = Rank.CloneValue(context); result.IsSystemDefined = IsSystemDefined; result.KeysOfPrimaryRecords = KeysOfPrimaryRecords; result.AppendAnnotations(this, context); return(result); }
public bool StartsWith(string letters) { return(SuperName.StartsWith(letters)); }
public virtual void Visit(SuperName superName) { superName.AcceptAlternative(this); }