feat(generation): Fix generic parsing inside JavaParser.g to allow parsing of java callback implementation --- Index: src/antlr/com/jogamp/gluegen/jgram/JavaParser.g =================================================================== diff --git a/src/antlr/com/jogamp/gluegen/jgram/JavaParser.g b/src/antlr/com/jogamp/gluegen/jgram/JavaParser.g --- a/src/antlr/com/jogamp/gluegen/jgram/JavaParser.g (revision f434f6ec0ecba41d3e70afbe7e8bd10a1c071835) +++ b/src/antlr/com/jogamp/gluegen/jgram/JavaParser.g (revision 36f2c2648d6a494865ae1ecd810a6f1241a01ce2) @@ -266,7 +266,13 @@ // A class type specification is a class type with possible brackets afterwards // (which would make it an array type). classTypeSpec[boolean addImagNode] - : identifier (LT gen:classTypeSpec[false] GT)? (lb:LBRACK^ {#lb.setType(ARRAY_DECLARATOR);} RBRACK!)* + : identifier (LT + ( + classTypeSpec[false] + | + QUESTION ("extends" classTypeSpec[false] (BAND classTypeSpec[false])*)? + ) GT + )? (lb:LBRACK^ {#lb.setType(ARRAY_DECLARATOR);} RBRACK!)* { if ( addImagNode ) { #classTypeSpec = #(#[TYPE,"TYPE"], #classTypeSpec);