aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathieu Féry <[email protected]>2023-08-08 11:31:46 +0200
committerMathieu Féry <[email protected]>2023-08-08 12:05:57 +0200
commit496df9c41332a0d606017f0df5ba08b02af0c992 (patch)
tree470491bb7cabcb5a9fe4f13a5cd54ad29e867005
parent0e6d18c6b6d46b54e679ce0c44613e21e58245f2 (diff)
feat(generation): Fix generic parsing inside JavaParser.g to allow parsing of java callback implementation
-rw-r--r--src/antlr/com/jogamp/gluegen/jgram/JavaParser.g8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/antlr/com/jogamp/gluegen/jgram/JavaParser.g b/src/antlr/com/jogamp/gluegen/jgram/JavaParser.g
index a4d8c72..85f24d3 100644
--- a/src/antlr/com/jogamp/gluegen/jgram/JavaParser.g
+++ b/src/antlr/com/jogamp/gluegen/jgram/JavaParser.g
@@ -266,7 +266,13 @@ typeSpec[boolean addImagNode]
// 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);