22
33import com .nativelibs4java .opencl .*;
44import com .ochafik .io .IOUtils ;
5- import com .ochafik .lang .jnaerator .ClassOutputter ;
6- import com .ochafik .lang .jnaerator .DeclarationsConverter ;
7- import com .ochafik .lang .jnaerator .GlobalsGenerator ;
8- import com .ochafik .lang .jnaerator .JNAerator ;
9- import com .ochafik .lang .jnaerator .JNAeratorConfig ;
10- import com .ochafik .lang .jnaerator .JNAeratorParser ;
11- import com .ochafik .lang .jnaerator .ObjectiveCGenerator ;
5+ import com .ochafik .lang .jnaerator .*;
126import com .ochafik .lang .jnaerator .PreprocessorUtils .MacroUseCallback ;
13- import com .ochafik .lang .jnaerator .Result ;
14- import com .ochafik .lang .jnaerator .Signatures ;
15- import com .ochafik .lang .jnaerator .SourceFiles ;
16- import com .ochafik .lang .jnaerator .TypeConversion ;
177import com .ochafik .lang .jnaerator .TypeConversion .JavaPrimitive ;
188import com .ochafik .lang .jnaerator .TypeConversion .TypeConversionMode ;
19- import com .ochafik .lang .jnaerator .UniversalReconciliator ;
20- import com .ochafik .lang .jnaerator .UnsupportedConversionException ;
21- import com .ochafik .lang .jnaerator .parser .Arg ;
22- import com .ochafik .lang .jnaerator .parser .DeclarationsHolder ;
23- import com .ochafik .lang .jnaerator .parser .Declarator ;
24- import com .ochafik .lang .jnaerator .parser .Expression ;
25- import com .ochafik .lang .jnaerator .parser .Function ;
26- import com .ochafik .lang .jnaerator .parser .Identifier ;
27- import com .ochafik .lang .jnaerator .parser .Modifier ;
28- import com .ochafik .lang .jnaerator .parser .ModifierType ;
29- import com .ochafik .lang .jnaerator .parser .SourceFile ;
30- import com .ochafik .lang .jnaerator .parser .Statement ;
31- import com .ochafik .lang .jnaerator .parser .Struct ;
32- import com .ochafik .lang .jnaerator .parser .TypeRef ;
33- import com .ochafik .lang .jnaerator .parser .VariablesDeclaration ;
9+ import com .ochafik .lang .jnaerator .parser .*;
3410import com .ochafik .lang .jnaerator .runtime .NativeSize ;
3511import com .ochafik .util .listenable .Adapter ;
3612import com .ochafik .util .listenable .Pair ;
3713import com .ochafik .util .string .RegexUtils ;
3814import com .ochafik .util .string .StringUtils ;
3915import java .io .File ;
40- import java .nio .*;
41- import java .io .IOException ;
42- import java .io .PrintWriter ;
43- import java .util .ArrayList ;
44- import java .util .HashMap ;
45- import java .util .HashSet ;
46- import java .util .List ;
47- import java .util .Set ;
48- import java .util .Map ;
16+ import java .io .*;
17+ import java .util .*;
4918import static com .ochafik .lang .jnaerator .parser .ElementsHelper .*;
5019
5120import java .util .regex .Pattern ;
@@ -87,19 +56,20 @@ public Boolean adapt(Function value) {
8756 }
8857
8958 Map <String , Set <String >> macrosByFile = new HashMap <String , Set <String >>();
90- public SourceFiles parseSources (Feedback feedback , TypeConversion typeConverter ) throws IOException , LexerException {
91- feedback .setStatus ("Parsing native headers..." );
92- return JNAeratorParser .parse (config , typeConverter , null /*new MacroUseCallback() {
59+
60+ @ Override
61+ protected JNAeratorParser createJNAeratorParser () {
62+ return new JNAeratorParser () {
9363
9464 @ Override
95- public void macroUsed(String path, String macroName) {
96- Set<String> macros = macrosByFile.get(path);
97- if (macros == null)
98- macrosByFile.put(path, macros = new HashSet<String>());
99- macros.add(macroName);
65+ protected com .ochafik .lang .jnaerator .parser .ObjCppParser newObjCppParser (TypeConversion typeConverter , String s , boolean verbose , PrintStream errorOut ) throws IOException {
66+ com .ochafik .lang .jnaerator .parser .ObjCppParser parser = super .newObjCppParser (typeConverter , s , verbose , errorOut );
67+ parser .allowKinds (ModifierKind .OpenCL );
68+ return parser ;
10069 }
101- }*/ );
102- }
70+
71+ };
72+ }
10373
10474 static Set <String > openclPrimitives = new HashSet <String >();
10575 static {
@@ -116,7 +86,7 @@ public Result createResult(final ClassOutputter outputter, Feedback feedback) {
11686
11787 @ Override
11888 public void init () {
119- typeConverter = new TypeConversion (this ) {
89+ typeConverter = new JNATypeConversion (this ) {
12090
12191 @ Override
12292 public void initTypes () {
@@ -148,7 +118,7 @@ public boolean isObjCppPrimitive(String s) {
148118 }
149119
150120 };
151- declarationsConverter = new DeclarationsConverter (this ) {
121+ declarationsConverter = new JNADeclarationsConverter (this ) {
152122
153123 @ Override
154124 public void convertFunction (Function function , Signatures signatures , boolean isCallback , DeclarationsHolder out , Identifier libraryClassName , int unused ) {
@@ -262,7 +232,7 @@ public void convertFunction(Function function, Signatures signatures, boolean is
262232 out .addDeclaration (method );
263233 }
264234 };
265- globalsGenerator = new GlobalsGenerator (this );
235+ globalsGenerator = new JNAGlobalsGenerator (this );
266236 objectiveCGenerator = new ObjectiveCGenerator (this );
267237 universalReconciliator = new UniversalReconciliator ();
268238 }
0 commit comments