tôi có mã nguồn mà trông như thế này,Tạo tham số cho một hàm với kêu vang
void update();
void update()
{
}
Iam cố gắng để phân tích mã này với kêu vang và sửa đổi mã này.
typedef float v4sf attribute ((vector_size(16)));
void update(v4sf& v1, v4sf& v2);
void update(v4sf& v1, v4sf& v2)
{
}
Tôi đã xem các lớp Ghi đè của bài viết. Trong chức năng mà tôi đã viết như được hiển thị bên dưới,
MyRecursiveASTVisitor::VisitFunctionDecl(FunctionDecl *f)
FunctionDecl có phương thức setParams() mà tôi có thể sử dụng. Tôi sẽ phải tạo các tham số với phương thức này.
static ParmVarDecl *Create(ASTContext &C, DeclContext *DC,
SourceLocation StartLoc,
SourceLocation IdLoc, IdentifierInfo *Id,
QualType T, TypeSourceInfo *TInfo,
StorageClass S, StorageClass SCAsWritten,
Expr *DefArg);
Bốn đối số đầu tiên cho hàm tạo có thể lấy từ FunctionDecl. Tôi không chắc những gì còn lại của họ.
Làm cách nào để tạo các loại và cũng gán các giá trị cho chúng trong tiếng kêu? Các loại không cần phải được xây dựng và có thể giống như loại được thêm vào (v4sf) trong mã nguồn được chuyển đổi.
Có phải cách này (sử dụng phương pháp clang) để thực hiện các phép biến đổi hoặc tôi có thể sử dụng Rewriter.InsertText() để thêm các tham số không?
Cảm ơn bạn! Tôi đang sử dụng Rewriter, nhưng tôi có một số vấn đề với viết lại tin nhắn obj-c, bạn có thể xem câu hỏi của tôi http://stackoverflow.com/questions/20418933/clang-tool-rewrite-objcmessageexpr? – BergP
cách plugin clang thêm ví dụ: thiết bị đo đạc? – gnzlbg