| Lines 266-272
          
      
      
        Link Here | 
        
          | 266 | // A class type specification is a class type with possible brackets afterwards | 266 | // A class type specification is a class type with possible brackets afterwards | 
        
          | 267 | //   (which would make it an array type). | 267 | //   (which would make it an array type). | 
        
          | 268 | classTypeSpec[boolean addImagNode] | 268 | classTypeSpec[boolean addImagNode] | 
          
            
              | 269 |     :    identifier (LT gen:classTypeSpec[false] GT)? (lb:LBRACK^ {#lb.setType(ARRAY_DECLARATOR);} RBRACK!)* | 269 |     :    identifier (LT | 
            
              |  |  | 270 |             ( | 
            
              | 271 |                 classTypeSpec[false] | 
            
              | 272 |             | | 
            
              | 273 |                 QUESTION ("extends" classTypeSpec[false] (BAND classTypeSpec[false])*)? | 
            
              | 274 |             ) GT | 
            
              | 275 |         )? (lb:LBRACK^ {#lb.setType(ARRAY_DECLARATOR);} RBRACK!)* | 
        
          | 270 |         { | 276 |         { | 
        
          | 271 |             if ( addImagNode ) { | 277 |             if ( addImagNode ) { | 
        
          | 272 |                 #classTypeSpec = #(#[TYPE,"TYPE"], #classTypeSpec); | 278 |                 #classTypeSpec = #(#[TYPE,"TYPE"], #classTypeSpec); |