예제 #1
0
        public bool Match(DepositBits dpb)
        {
            this.dpbUse = dpb;
            if (!(dpb.Source is Identifier idDef))
            {
                return(false);
            }
            var stms = ctx.GetDefiningStatementClosure(idDef);

            if (stms.Count == 0)
            {
                return(false);
            }
            var items = stms.Select(GetDpbDetails).ToList();
            var first = items[0].idSrc;

            if (items.All(i => i.idSrc != null && i.idSrc == first && i.dpbDef.BitPosition == dpbUse.BitPosition))
            {
                this.idDef = idDef;
                this.idSrc = items[0].idSrc;
                return(true);
            }
            else
            {
                return(false);
            }
        }