AntlrVSIX
AntlrVSIX copied to clipboard
"RUP" still not working.
Perform the following transformations to Java9.g4:
-- Pile all crap into primaryNoNewArray.
unfold //parserRuleSpec[RULE_REF/text()='primaryNoNewArray']//RULE_REF[text()='fieldAccess']
unfold //parserRuleSpec[RULE_REF/text()='primaryNoNewArray']//RULE_REF[text()='methodInvocation']
unfold //parserRuleSpec[RULE_REF/text()='primaryNoNewArray']//RULE_REF[text()='classInstanceCreationExpression']
unfold //parserRuleSpec[RULE_REF/text()='primaryNoNewArray']//RULE_REF[text()='methodReference']
unfold //parserRuleSpec[RULE_REF/text()='primaryNoNewArray']//RULE_REF[text()='arrayAccess']
unfold //parserRuleSpec[RULE_REF/text()='primaryNoNewArray']//RULE_REF[text()='primary']
rup
we get this rule which I sorted alphabetically for the alts:
primaryNoNewArray :
literal
| ( primaryNoNewArray | arrayCreationExpression ) COLONCOLON typeArguments? identifier
| ( primaryNoNewArray | arrayCreationExpression ) DOT identifier
| ( primaryNoNewArray | arrayCreationExpression ) DOT typeArguments? identifier LPAREN argumentList? RPAREN
| ( primaryNoNewArray | arrayCreationExpression ) DOT unqualifiedClassInstanceCreationExpression
| classLiteral
| classType COLONCOLON typeArguments? NEW | arrayType COLONCOLON NEW
| expressionName COLONCOLON typeArguments? identifier
| expressionName DOT typeArguments? identifier LPAREN argumentList? RPAREN
| expressionName DOT unqualifiedClassInstanceCreationExpression
| expressionName LBRACK expression RBRACK
| LPAREN expression RPAREN
| methodName LPAREN argumentList? RPAREN
| primaryNoNewArray LBRACK expression RBRACK
| referenceType COLONCOLON typeArguments? identifier
| SUPER COLONCOLON typeArguments? identifier
| SUPER DOT identifier
| SUPER DOT typeArguments? identifier LPAREN argumentList? RPAREN
| THIS
| typeName DOT SUPER COLONCOLON typeArguments? identifier
| typeName DOT SUPER DOT identifier
| typeName DOT SUPER DOT typeArguments? identifier LPAREN argumentList? RPAREN
| typeName DOT THIS
| typeName DOT typeArguments? identifier LPAREN argumentList? RPAREN
| unqualifiedClassInstanceCreationExpression
;
If I perform one more RUP, the parentheses around ( primaryNoNewArray | arrayCreationExpression )
disappear, which is wrong.