AntlrVSIX icon indicating copy to clipboard operation
AntlrVSIX copied to clipboard

"RUP" still not working.

Open kaby76 opened this issue 4 years ago • 0 comments

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.

kaby76 avatar Aug 26 '20 16:08 kaby76