Problemas com AST (Abstract Syntax Tree)

Oi pessoal,
Tudo bem?

Vou explicar o problema:
“Preciso percorrer um arquivo de código fonte Java, extraindo classes, métodos, interfaces, variáveis e exceptions. Não é necessário o corpo do fonte. Somente as declarações, porém separadas (se é public, class, método, parâmetros, retorno)”.

Seguindo o que já foi feito:

Código:

import java.util.List;
import org.aspectj.org.eclipse.jdt.core.dom.MethodRef;
import org.eclipse.jdt.core.dom.ASTVisitor;
import org.eclipse.jdt.core.dom.FieldDeclaration;
import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.eclipse.jdt.core.dom.MethodInvocation;
import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
import org.eclipse.jdt.core.dom.TypeDeclaration;
import org.eclipse.jdt.core.dom.VariableDeclarationFragment;
import org.eclipse.jdt.core.search.MethodDeclarationMatch;
import sun.org.mozilla.javascript.internal.ast.VariableDeclaration;

public class TObjectVisitor extends ASTVisitor{

public boolean visit(TypeDeclaration node) {
    System.out.println("---Início Classe---");
    System.out.println(node.getName().toString());
    return true;

}

@Override
public void endVisit(TypeDeclaration node) {
    System.out.println("---Fim Classe---");
    super.endVisit(node);
}

@Override
public boolean visit(FieldDeclaration node) {
	System.out.println("---Início Campos---");
	List<VariableDeclarationFragment> l = node.fragments();
	for (VariableDeclarationFragment t : l) {		
			System.out.println(t.getName().toString()+" "+t.getInitializer().properties().toString());						
	}		
	return super.visit(node);
}

@Override
public void endVisit(FieldDeclaration node) {
    System.out.println("---Fim Campos---");
    super.endVisit(node);
}

@Override
public boolean visit(MethodDeclaration node) {
	System.out.println("---Início Métodos---");
	List<MethodDeclarationMatch> l = node.structuralPropertiesForType();
	for (MethodDeclarationMatch t : l) {		
			System.out.println(t.getElement().toString());						
	}		
	return super.visit(node);
}

@Override
public void endVisit(MethodDeclaration node) {
    System.out.println("---Fim Métodos---");
    super.endVisit(node);
}

}

1 - Classes: somente o nome. Deveria ter com
2 - Variáveis, só consigo extrair o nome (teste) ou a expressão (teste=0). Não estou conseguindo trazer o tipo (int) nem o modificador (public).
3 - Métodos: Erro direto. Tentei diversos recursos, mas o máximo que consegui foi retornr todo o body do código. [color=blue]OBS: O médodo escrito foi o último que testei no desespero. Sei que está errado.
[/color]
O que estou fazendo de errado?

Por favor me ajudem!!!

Obrigado!!!

[quote=gustcc]Oi pessoal,
Tudo bem?

Vou explicar o problema:
“Preciso percorrer um arquivo de código fonte Java, extraindo classes, métodos, interfaces, variáveis e exceptions. Não é necessário o corpo do fonte. Somente as declarações, porém separadas (se é public, class, método, parâmetros, retorno)”.[/quote]

Olá gustcc, conseguiu resolver esta questão? estou com um problema parecido… veja se este link pode ajudar: http://www.ibm.com/developerworks/opensource/library/os-ast/