diff --git a/src/main/grammar/Aspect.bnf b/src/main/grammar/Aspect.bnf
index a11bb754aed3982b9eb69900f59c5b0f63c5df13..3dd6a28e556abd7d816b8be2889bbcc9450832db 100644
--- a/src/main/grammar/Aspect.bnf
+++ b/src/main/grammar/Aspect.bnf
@@ -282,9 +282,9 @@ primary_expression ::= primary_prefix (primary_suffix)*
 
 // member_selector unused!
 
-primary_prefix ::= literal | THIS | (SUPER DOT java_identifier) | (LPAREN expression RPAREN) | allocation_expression | (result_type DOT CLASS) | name_name
+primary_prefix ::= literal | THIS | (SUPER (DOT java_identifier)?) | (LPAREN expression RPAREN) | allocation_expression | (result_type DOT CLASS) | type | name_name
 
-primary_suffix ::= (DOT THIS) | (DOT allocation_expression) | (DOT type_arguments java_identifier) | (LBRACKET expression RBRACKET) | (DOT java_identifier) | arguments | DOUBLECOLON NEW | DOUBLECOLON java_identifier
+primary_suffix ::= (DOT THIS) | (DOT allocation_expression) | (DOT type_arguments java_identifier) | (LBRACKET expression RBRACKET) | (DOT java_identifier) | arguments | DOUBLECOLON type_arguments? (NEW | java_identifier)
 
 literal ::= INTEGER_LITERAL | FLOATING_POINT_LITERAL | CHARACTER_LITERAL | STRING_LITERAL | boolean_literal | null_literal