コード例 #1
0
 private DataType TranslateFn(LLVMType retType, List<LLVMParameter> parameters, IStorageBinder binder)
 {
     var rt = retType.Accept(this);
     var sigRet = binder.CreateTemporary("", rt);
     var sigParameters = new List<Identifier>();
     foreach (var param in parameters)
     {
         if (param.name == "...")
         {
             var dt = new UnknownType();
             var id = binder.CreateTemporary("...", dt);
             sigParameters.Add(id);
         }
         else
         {
             var pt = param.Type.Accept(this);
             var id = binder.CreateTemporary(pt);
             sigParameters.Add(id);
         }
     }
     return new FunctionType(sigRet, sigParameters.ToArray());
 }
コード例 #2
0
        public DataType TranslateType(LLVMType type)
        {
            var xlat = new TypeTranslator(program.Platform.PointerType.BitSize);

            return(type.Accept(xlat));
        }