private Statement GetTraverserStatement(string prefix, TypeNode type, Identifier varName)
{
Expression fullName;
if (prefix != null)
{
if (prefix == "this")
{
fullName = Templates.GetExpressionTemplate("SimpleFieldRef");
Replacer.Replace(fullName, "_fieldName", varName);
}
else
fullName = (Expression)new QualifiedIdentifier(new Identifier(prefix), varName);
}
else
fullName = (Expression)varName;
Statement travStmt = Templates.GetStatementTemplate("FieldTraverser");
Replacer.Replace(travStmt, "_Name", fullName);
return travStmt;
}