public
class
JavaParser {
private
static
final
String path =
""
;
private
JavacFileManager fileManager;
private
JavacTool javacTool;
public
JavaParser() {
Context context =
new
Context();
fileManager =
new
JavacFileManager(context,
true
, ());
javacTool =
new
JavacTool();
}
public
void
parseJavaFiles() {
Iterable<!--?
extends
JavaFileObject--> files = (path);
compilationTask = (
null
, fileManager,
null
,
null
,
null
, files);
JavacTask javacTask = (JavacTask) compilationTask;
try
{
Iterable<!--?
extends
CompilationUnitTree--> result = ();
for
(CompilationUnitTree tree : result) {
(
new
SourceVisitor(),
null
);
}
}
catch
(IOException e) {
();
}
}
static
class
SourceVisitor
extends
TreeScanner<
void
,
void
=
""
> {
private
String currentPackageName =
null
;
@Override
public
Void visitCompilationUnit(CompilationUnitTree node, Void aVoid) {
return
super
.visitCompilationUnit(node, aVoid);
}
@Override
public
Void visitVariable(VariableTree node, Void aVoid) {
formatPtrln(
"variable name: %s, type: %s, kind: %s, package: %s"
,
(), (), (), currentPackageName);
return
null
;
}
}
public
static
void
formatPtrln(String format, Object... args) {
((format, args));
}
public
static
void
main(String[] args) {
new
JavaParser().parseJavaFiles();
}
}</
void
,>