< prev index next >
src/jdk.jextract/share/classes/com/sun/tools/jextract/parser/Parser.java
Print this page
@@ -33,10 +33,12 @@
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.logging.Logger;
import java.util.stream.Collectors;
+
+import com.sun.tools.jextract.Context;
import jdk.internal.clang.Cursor;
import jdk.internal.clang.CursorKind;
import jdk.internal.clang.Diagnostic;
import jdk.internal.clang.Index;
import jdk.internal.clang.LibClang;
@@ -55,22 +57,17 @@
private final PrintWriter err;
private final TreeMaker treeMaker;
private final boolean supportMacros;
private final Logger logger = Logger.getLogger(getClass().getPackage().getName());
- public Parser(PrintWriter out, PrintWriter err, boolean supportMacros) {
- this.out = out;
- this.err = err;
+ public Parser(Context context, boolean supportMacros) {
+ this.out = context.out;
+ this.err = context.err;
this.treeMaker = new TreeMaker();
this.supportMacros = supportMacros;
}
- public Parser(boolean supportMacros) {
- this(new PrintWriter(System.out, true),
- new PrintWriter(System.err, true), supportMacros);
- }
-
public List<HeaderTree> parse(Collection<Path> paths, Collection<String> args) {
final List<HeaderTree> headers = new ArrayList<>();
final Index index = LibClang.createIndex();
for (Path path : paths) {
logger.info(() -> {
@@ -178,11 +175,12 @@
if (args.length == 0) {
System.err.println("Expected a header file");
return;
}
- Parser p = new Parser(true);
+ Context context = new Context();
+ Parser p = new Parser(context,true);
List<Path> paths = Arrays.stream(args).map(Paths::get).collect(Collectors.toList());
Path builtinInc = Paths.get(System.getProperty("java.home"), "conf", "jextract");
List<String> clangArgs = List.of("-I" + builtinInc);
List<HeaderTree> headers = p.parse(paths, clangArgs);
TreePrinter printer = new TreePrinter();
< prev index next >