Inheritance: CType
コード例 #1
0
        private string Decorate(string var, out CTerm core)
        {
            Decorator decorator = new Decorator(var);

            UnwrapTo(decorator, out core);
            return(decorator.Result);
        }
コード例 #2
0
ファイル: CType.cs プロジェクト: LibreCrops/cdef
 public void UnwrapTo(IWrapVisitor visitor, out CTerm core)
 {
     CType t = this;
     CWrap w;
     while ((w = t as CWrap) != null)
     {
         w.Accept(visitor);
         visitor.AfterVisit(w);
         t = w.Next;
     }
     core = (CTerm)t;
 }
コード例 #3
0
        public void UnwrapTo(IWrapVisitor visitor, out CTerm core)
        {
            CType t = this;
            CWrap w;

            while ((w = t as CWrap) != null)
            {
                w.Accept(visitor);
                visitor.AfterVisit(w);
                t = w.Next;
            }
            core = (CTerm)t;
        }
コード例 #4
0
ファイル: XmlMaker.cs プロジェクト: LibreCrops/cdef
 private CTerm StripTypeAttr(CTerm core, out string attr)
 {
     CTerm inner;
     if (core is CAttrTerm)
     {
         CAttrTerm attrTerm = (CAttrTerm)core;
         inner = attrTerm.CoreType;
         attr = attrTerm.AttrStr;
     }
     else
     {
         inner = core;
         attr = "";
     }
     return inner;
 }
コード例 #5
0
ファイル: XmlMaker.cs プロジェクト: LibreCrops/cdef
 private string EncodeBaseType(CTerm type)
 {
     if (type is CPrim)
     {
         return "." + EncodePrim((CPrim)type);
     }
     else if (type is CTypeRef)
     {
         return "$" + ((CTypeRef)type).Name;
     }
     else
     {
         return "#" + AddUnnamed((CBrace)type);
     }
 }
コード例 #6
0
ファイル: CType.cs プロジェクト: LibreCrops/cdef
 private string Decorate(string var, out CTerm core)
 {
     Decorator decorator = new Decorator(var);
     UnwrapTo(decorator, out core);
     return decorator.Result;
 }
コード例 #7
0
ファイル: Translator.cs プロジェクト: LibreCrops/cdef
        private CTerm WithAttr(CTerm type, IDiaSymbol sym)
        {
            SortedSet<TypeAttr> attrs = new SortedSet<TypeAttr>();
            if (sym.constType == 1) { attrs.Add(TypeAttrs.Const); }
            if (sym.volatileType == 1) { attrs.Add(TypeAttrs.Volatile); }
            if (sym.unalignedType == 1) { attrs.Add(TypeAttrs.Unaligned); }

            return attrs.Any() ? new CAttrTerm(type, attrs) : type;
        }
コード例 #8
0
ファイル: CAttrTerm.cs プロジェクト: LibreCrops/cdef
 public CAttrTerm(CTerm type, SortedSet<TypeAttr> attrs)
 {
     _type = type;
     _attrs = attrs;
 }
コード例 #9
0
 public CAttrTerm(CTerm type, SortedSet <TypeAttr> attrs)
 {
     _type  = type;
     _attrs = attrs;
 }
コード例 #10
0
ファイル: CBits.cs プロジェクト: LibreCrops/cdef
 // TODO: how about make a class CInt
 public CBits(CTerm baseType, int len)
     : base(baseType)
 {
     _len = len;
 }
コード例 #11
0
ファイル: CBits.cs プロジェクト: YSheldon/cdef
 // TODO: how about make a class CInt
 public CBits(CTerm baseType, int len)
     : base(baseType)
 {
     _len = len;
 }