Example #1
0
		public bool Match(MemberPointerSelector mps)
		{
//			c = mps.MemberPtr as Constant;
			this.mps = mps;
			return false;
			//return (c != null); 				//$REVIEW: disabled. Perhaps we don't want to do this transformation before we detect registerpairs.
		}
		public override void VisitMemberPointerSelector(MemberPointerSelector mps)
		{
			mps.BasePointer.Accept(this);
			mps.MemberPointer.Accept(this);
			EnsureTypeVariable(mps);
		}
Example #3
0
		public void VisitMemberPointerSelector(MemberPointerSelector mps)
		{
			int prec = SetPrecedence(PrecedenceMemberPointerSelector);
			Dereference d = mps.BasePointer as Dereference;
			if (d != null)
			{
				d.Expression.Accept(this);
				writer.Write("->*");
			}
			else
			{
				mps.BasePointer.Accept(this);
				writer.Write(".*");
			}
            var old = forceParensIfSamePrecedence;
            forceParensIfSamePrecedence = true;
			mps.MemberPointer.Accept(this);
            forceParensIfSamePrecedence = old;
            ResetPresedence(prec);
		}
Example #4
0
 public void CfSegmentedAccess()
 {
     var es = new Identifier("es", PrimitiveType.SegmentSelector, RegisterStorage.None);
     var ds = new Identifier("ds", PrimitiveType.SegmentSelector, RegisterStorage.None);
     var bx = new Identifier("bx", PrimitiveType.SegmentSelector, RegisterStorage.None);
     var e =  new MemberPointerSelector(
         PrimitiveType.Word16,
         m.Deref(es),
         new MemberPointerSelector(
             PrimitiveType.Word16,
             m.Deref(ds),
             bx));
     e.Accept(cf);
     Assert.AreEqual("es->*(ds->*bx)", sw.ToString());
 }
Example #5
0
		public void CfMemberPointerSelector()
		{
			Identifier ds = new Identifier("ds", PrimitiveType.SegmentSelector, null);
			Identifier bx = new Identifier("bx", PrimitiveType.Word16, null);
			Expression e = new MemberPointerSelector(PrimitiveType.Byte, ds, bx);
			e.Accept(cf);
			Assert.AreEqual("ds.*bx", sw.ToString());
		}
Example #6
0
 public SlicerResult VisitMemberPointerSelector(MemberPointerSelector mps, BackwardSlicerContext ctx)
 {
     throw new NotImplementedException();
 }
Example #7
0
 public bool VisitMemberPointerSelector(MemberPointerSelector mps, TypeVariable tv)
 {
     throw new NotImplementedException();
 }
Example #8
0
 public DataType VisitMemberPointerSelector(MemberPointerSelector mps)
 {
     mps.BasePointer.Accept(this);
     mps.MemberPointer.Accept(this);
     return(handler.DataTypeTrait(mps, prog.Platform.PointerType));
 }
 public bool VisitMemberPointerSelector(MemberPointerSelector mps)
 {
     throw new NotImplementedException();
 }
Example #10
0
 void IExpressionVisitor.VisitMemberPointerSelector(MemberPointerSelector mps)
 {
     throw new NotImplementedException();
 }
Example #11
0
 public ValueSet VisitMemberPointerSelector(MemberPointerSelector mps, BitRange bitRange)
 {
     throw new NotImplementedException();
 }
Example #12
0
 public virtual Expression VisitMemberPointerSelector(MemberPointerSelector mps)
 {
     mps.BasePointer   = mps.BasePointer.Accept(this);
     mps.MemberPointer = mps.MemberPointer.Accept(this);
     return(mps);
 }
Example #13
0
 public void VisitMemberPointerSelector(MemberPointerSelector mps)
 {
     handler.MemAccessTrait(basePointer, mps, mps.DataType.Size, eField, 0);
 }
Example #14
0
 public virtual void VisitMemberPointerSelector(MemberPointerSelector mps)
 {
     mps.BasePointer.Accept(this);
     mps.MemberPointer.Accept(this);
 }
Example #15
0
 public void VisitMemberPointerSelector(MemberPointerSelector mps)
 {
     handler.MemAccessTrait(basePointer, mps, mps.DataType.Size, eField, 0);
 }
		public override void VisitMemberPointerSelector(MemberPointerSelector mps)
		{
			mps.BasePointer.Accept(this);
			mps.MemberPointer.Accept(this);
			EnsureTypeVariable(mps);
		}
Example #17
0
		public virtual void VisitMemberPointerSelector(MemberPointerSelector mps)
		{
			mps.BasePointer.Accept(this);
			mps.MemberPointer.Accept(this);
		}
Example #18
0
 public bool VisitMemberPointerSelector(MemberPointerSelector mps) =>
 mps.BasePointer.Accept(this) ||
 mps.MemberPointer.Accept(this);