我有源代码 看起来像这个,
void update();
void update()
{
}
我试图用叮当解析这个代码 并修改这个代码。
typedef float v4sf attribute ((vector_size(16)));
void update(v4sf& v1, v4sf& v2);
void update(v4sf& v1, v4sf& v2)
{
}
我在写作的函数里 读了下图
MyRecursiveASTVisitor::VisitFunctionDecl(FunctionDecl *f)
函数Decl 已经设置了Params () 方法, 我可以用它来使用。 我不得不用这个方法创建参数 。
static ParmVarDecl *Create(ASTContext &C, DeclContext *DC,
SourceLocation StartLoc,
SourceLocation IdLoc, IdentifierInfo *Id,
QualType T, TypeSourceInfo *TInfo,
StorageClass S, StorageClass SCAsWritten,
Expr *DefArg);
创建函数的前四个参数可以从 函数 Decl 中获取。 我不知道其余的参数必须是什么 。
我如何创建类型, 并在叮当中为它们指定值? 类型不需要嵌入, 也可以像转换源代码中添加的( v4sf) 一样 。
这是(使用叮当方法)进行变换还是我可以使用 Rebread. InsertText () 来添加参数?