私はこのjavaparser https://github.com/javaparser/javaparserを使用して、一部のgithubユーザーの多くのJavaソースコードを解析して、統計を作成しています(これは大学のプロジェクト用です)。すべて正常に動作しているように見えますが、ある時点で、特定のソース コードで次のエラーが発生します。
Exception in thread "main" com.github.javaparser.TokenMgrError: Lexical error at line 6, column 2. Encountered: <EOF> after : ""
そのファイルには次のように書かれています。
public class Test {
/**<caret>
public void foo() {
}
}
これは私がファイルを解析する方法です:
...
new NodeIterator(new NodeIterator.NodeHandler() {
@Override
public boolean handle(Node node) {
...
};
}).explore(JavaParser.parse(file));
...
これは NodeIterator クラスです。
public class NodeIterator {
public interface NodeHandler {
boolean handle(Node node);
}
private NodeHandler nodeHandler;
public NodeIterator(NodeHandler nodeHandler) {
this.nodeHandler = nodeHandler;
}
public void explore(Node node) {
if (nodeHandler.handle(node)) {
for (Node child : node.getChildrenNodes()) {
explore(child);
}
}
}
}
問題は理解できましたが、この問題により解析全体が停止します。for 内に解析するファイルがたくさんあるので、他のファイルを解析し続けるにはどうすればよいですか? または、解析する前にJavaファイルが「適切に記述されている」かどうかを確認するツールはありますか?