示例#1
0
        public void VisitStructure(StructureType str)
        {
            var structOffset = rdr.Offset;

            for (int i = 0; i < str.Fields.Count; ++i)
            {
                long fieldOffset = structOffset + str.Fields[i].Offset;
                WritePadBytes(fieldOffset);
                Debug.Assert(rdr.Offset == fieldOffset);
                fmt.Indent();
                str.Fields[i].DataType.Accept(this);
            }
            WritePadBytes(structOffset + str.GetInferredSize());
        }
示例#2
0
 public void VisitAssignment(Assignment a)
 {
     writer.Indent();
     if (a.Dst != null)
     {
         a.Dst.Accept(this);
         writer.Write(" = ");
     }
     a.Src.Accept(this);
     if (a.IsAlias)
     {
         writer.Write(" (alias)");
     }
     writer.Terminate();
 }