// Deterministic Java AST facts for todo2code. Run in JDK source-file mode:
// java --add-modules jdk.compiler java/JavaAstExtract.java --max-file-bytes 524288
import com.sun.source.tree.*;
import com.sun.source.util.JavacTask;
import com.sun.source.util.SourcePositions;
import com.sun.source.util.TreePathScanner;
import com.sun.source.util.Trees;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
import javax.tools.*;
public final class JavaAstExtract {
private static final Set IGNORED = Set.of(
".git", ".intent", "node_modules", "dist", "build", "target", "coverage", "vendor");
public static void main(String[] args) throws Exception {
Path root = Paths.get(".").toAbsolutePath().normalize();
long maxBytes = 524_288;
for (int index = 0; index < args.length; index++) {
if ("--max-file-bytes".equals(args[index]) && index + 1 < args.length) {
maxBytes = Long.parseLong(args[++index]);
} else if (!args[index].startsWith("-")) {
root = Paths.get(args[index]).toAbsolutePath().normalize();
}
}
List