Inheritance: CWrap
示例#1
0
 private string FuncArgsStr(CFunc func)
 {
     List<CType> args = func.Args;
     return args.Any()
         ? string.Join(", ", args.Select(a => a.Sig))
         : "void";
 }
示例#2
0
 public void VisitFunc(CFunc func)
 {
     string letter = object.ReferenceEquals(func.CallConv, CallConvs.Default)
         ? "f"
         : "F";
     _val = " " + letter + " " + _maker.AddFunc(func) + _val;
 }
示例#3
0
        public CFunc TranslateFunc(IDiaSymbol sym)
        {
            CType retType = Translate(sym.type);
            CFunc res = new CFunc(retType, TranslateCallConv(sym.callingConvention));

            IDiaEnumSymbols syms;
            sym.findChildren(SymTagEnum.SymTagFunctionArgType, null, 0, out syms);

            if (syms.count == 0)
            {
                res.Add(PrimTypes.VOID);
                return res;
            }
            else if (syms.count == 1)
            {
                IDiaSymbol only = syms.Item(0).type;
                if ((SymTagEnum)only.symTag == SymTagEnum.SymTagBaseType &&
                    (BaseTypeEnum)only.baseType == BaseTypeEnum.btNoType)
                {
                    return res;
                }
            }

            foreach (IDiaSymbol argSym in syms)
            {
                CType argType = Translate(argSym.type);
                res.Add(argType);
            }
            return res;
        }
示例#4
0
        private string FuncArgsStr(CFunc func)
        {
            List <CType> args = func.Args;

            return(args.Any()
                ? string.Join(", ", args.Select(a => a.Sig))
                : "void");
        }
示例#5
0
 internal int AddFunc(CFunc func)
 {
     int curNum = ++_funcNum;
     XmlElement entry = MakeElem("func");
     AddAttr(entry, "id", curNum);
     foreach (CType argType in func.Args)
     {
         XmlElement arg = MakeElem("arg");
         AddTypeBasicAttrs(arg, argType, true);
         AddChild(entry, arg);
     }
     AddChild(_args, entry);
     return curNum;
 }
示例#6
0
 public void VisitFunc(CFunc func)
 {
     _s = MaybeParen(WithCallConv(_s, func.CallConv))
         + "(" + FuncArgsStr(func) + ")";
 }
示例#7
0
 public void VisitFunc(CFunc func)
 {
     _s = MaybeParen(WithCallConv(_s, func.CallConv))
          + "(" + FuncArgsStr(func) + ")";
 }