< 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 >