Esempio n. 1
0
        public void TtranUnion()
        {
            UnionType ut = factory.CreateUnionType("foo", null);

            ut.AddAlternative(PrimitiveType.Word32);
            ut.AddAlternative(PrimitiveType.Word32);
            ut.AddAlternative(PrimitiveType.Word32);
            ut.AddAlternative(PrimitiveType.Word32);
            TypeTransformer trans = new TypeTransformer(factory, null, null);
            PrimitiveType   dt    = (PrimitiveType)ut.Accept(trans);

            Assert.AreEqual("word32", dt.ToString());

            ut.AddAlternative(PrimitiveType.Real32);
            ut.AddAlternative(PrimitiveType.Int32);
            DataType d = ut.Accept(trans);

            Assert.AreEqual("(union \"foo\" (int32 u0) (real32 u1))", d.ToString());
        }
Esempio n. 2
0
        public void TtranSimplify2()
        {
            UnionType u = new UnionType(null, null);

            u.Alternatives.Add(PrimitiveType.Word32);
            u.Alternatives.Add(new Pointer(PrimitiveType.Real32, 32));
            TypeTransformer trans = new TypeTransformer(factory, store, null);
            DataType        dt    = u.Accept(trans);

            Assert.AreEqual("(ptr32 real32)", dt.ToString());
        }
Esempio n. 3
0
 public override DataType VisitUnion(UnionType ut)
 {
     if (insideComplexType)
     {
         changed = true;
         NestedComplexTypeExtractor nctr = new NestedComplexTypeExtractor(factory, store);
         ut.Accept(nctr);
         return(CreateEquivalenceClass(ut));
     }
     else
     {
         insideComplexType = true;
         return(base.VisitUnion(ut));
     }
 }
Esempio n. 4
0
 public override DataType VisitUnion(UnionType ut)
 {
     // Do not transform user-defined types
     if (ut.UserDefined)
     {
         return(ut);
     }
     if (insideComplexType)
     {
         changed = true;
         NestedComplexTypeExtractor nctr = new NestedComplexTypeExtractor(factory, store);
         ut.Accept(nctr);
         return(CreateEquivalenceClass(ut));
     }
     else
     {
         insideComplexType = true;
         return(base.VisitUnion(ut));
     }
 }
Esempio n. 5
0
		public override DataType VisitUnion(UnionType ut)
		{
            // Do not transform user-defined types
            if (ut.UserDefined)
                return ut;
            if (insideComplexType)
			{
				changed = true;
				NestedComplexTypeExtractor nctr = new NestedComplexTypeExtractor(factory, store);
				ut.Accept(nctr);
				return CreateEquivalenceClass(ut);
			}
			else
			{
				insideComplexType = true;
				return base.VisitUnion(ut);
			}
		}
Esempio n. 6
0
 public void TtranSimplify2()
 {
     UnionType u = new UnionType(null, null);
     u.Alternatives.Add(PrimitiveType.Word32);
     u.Alternatives.Add(new Pointer(PrimitiveType.Real32, 4));
     TypeTransformer trans = new TypeTransformer(factory, store, null);
     DataType dt = u.Accept(trans);
     Assert.AreEqual("(ptr real32)", dt.ToString());
 }
		public override DataType VisitUnion(UnionType ut)
		{
			if (insideComplexType)
			{
				changed = true;
				NestedComplexTypeExtractor nctr = new NestedComplexTypeExtractor(factory, store);
				ut.Accept(nctr);
				return CreateEquivalenceClass(ut);
			}
			else
			{
				insideComplexType = true;
				return base.VisitUnion(ut);
			}
		}