public override bool SolveReferences(List <AssembleError> errorList)
        {
            if (UsedLocation == null)
            {
                errorList.Add(new Assemble.AssembleError()
                {
                    Title    = "Refersolving",
                    Detail   = "Value description refering memory isn't bind by Block location",
                    Position = this.AssemblePosition
                });
                return(false);
            }

            IdentifierSearchResult searchRes;

            if (!UsedLocation.FindIdentifier(this.Refername,
                                             IdentifierType.ReferencingAddress | IdentifierType.ReferencingSymbol,
                                             out searchRes))
            {
                errorList.Add(new Assemble.AssembleError()
                {
                    Title    = "Refersolving",
                    Detail   = "Symbol not found in or out of the block",
                    Position = this.AssemblePosition
                });
                return(false);
            }

            switch (searchRes.Type)
            {
            case IdentifierType.ReferencingAddress:
                if (searchRes.AddressIdentifier != null)
                {
                    this.Referencer = new ReferencerToAddress(this, searchRes.AddressIdentifier);
                }
                break;

            case IdentifierType.ReferencingSymbol:
                if (searchRes.ImmediateIdentifier != null)
                {
                    this.Referencer = new ReferencerToSymbol(this, searchRes.ImmediateIdentifier);
                }
                break;
            }

            if (this.Referencer == null)
            {
                errorList.Add(new Assemble.AssembleError()
                {
                    Title    = "Refersolving",
                    Detail   = "Reference target has been found,but that symbol has null info (maybe bug)",
                    Position = this.AssemblePosition
                });
                return(false);
            }

            return(true);
        }
 public override bool Equals(ReferencerBase val)
 {
     return(val.Equals(this));
 }
 public abstract bool Equals(ReferencerBase val);