diff --git a/topics/testing/gbtf/tests/java/Makefile b/topics/testing/gbtf/tests/java/Makefile new file mode 100755 index 00000000..f8a83b46 --- /dev/null +++ b/topics/testing/gbtf/tests/java/Makefile @@ -0,0 +1,2 @@ +include ../Makefile.include + diff --git a/topics/testing/gbtf/tests/java/habelitz.bgf b/topics/testing/gbtf/tests/java/habelitz.bgf new file mode 100644 index 00000000..53331a5c --- /dev/null +++ b/topics/testing/gbtf/tests/java/habelitz.bgf @@ -0,0 +1,5122 @@ + + + javaSource + + javaSource + + compilationUnit + + + + compilationUnit + + + + annotationList + + + + + packageDeclaration + + + + + + + importDeclaration + + + + + + + typeDecls + + + + + + + + annotationList + + + + annotation + + + + + + annotation + + + + AT + + + qualifiedIdentifier + + + + + annotationInit + + + + + + + + AT + + @ + + + + qualifiedIdentifier + + + + IDENT + + + + + + + DOT + + + + ident + + IDENT + + + + + + + + + + + + IDENT + + + + JAVA_ID_START + + + + + JAVA_ID_PART + + + + + + + + JAVA_ID_START + + + + a + + + b + + + c + + + d + + + e + + + f + + + g + + + h + + + i + + + j + + + k + + + l + + + m + + + n + + + o + + + p + + + q + + + r + + + s + + + t + + + u + + + v + + + w + + + x + + + y + + + z + + + A + + + B + + + C + + + D + + + E + + + F + + + G + + + H + + + I + + + J + + + K + + + L + + + M + + + N + + + O + + + P + + + Q + + + R + + + S + + + T + + + U + + + V + + + W + + + X + + + Y + + + Z + + + + + + JAVA_ID_PART + + + + JAVA_ID_START + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + DOT + + . + + + + annotationInit + + + + LPAREN + + + annotationInitializers + + + RPAREN + + + + + + LPAREN + + ( + + + + annotationInitializers + + + + + + annotationInitializer + + + + + + + COMMA + + + annotationInitializer + + + + + + + + + annotationElementValue + + + + + + annotationInitializer + + + + IDENT + + + ASSIGN + + + annotationElementValue + + + + + + ASSIGN + + = + + + + annotationElementValue + + + + annotationElementValueExpression + + + annotation + + + annotationElementValueArrayInitializer + + + + + + annotationElementValueExpression + + conditionalExpression + + + + conditionalExpression + + + + logicalOrExpression + + + + + + + QUESTION + + + assignmentExpression + + + COLON + + + conditionalExpression + + + + + + + + + + logicalOrExpression + + + + logicalAndExpression + + + + + + + LOGICAL_OR + + + logicalAndExpression + + + + + + + + + + logicalAndExpression + + + + inclusiveOrExpression + + + + + + + LOGICAL_AND + + + inclusiveOrExpression + + + + + + + + + + inclusiveOrExpression + + + + exclusiveOrExpression + + + + + + + OR + + + exclusiveOrExpression + + + + + + + + + + exclusiveOrExpression + + + + andExpression + + + + + + + XOR + + + andExpression + + + + + + + + + + andExpression + + + + equalityExpression + + + + + + + AND + + + equalityExpression + + + + + + + + + + equalityExpression + + + + instanceOfExpression + + + + + + + + + EQUAL + + + NOT_EQUAL + + + + + instanceOfExpression + + + + + + + + + + instanceOfExpression + + + + relationalExpression + + + + + + + INSTANCEOF + + + type + + + + + + + + + + relationalExpression + + + + shiftExpression + + + + + + + + + LESS_OR_EQUAL + + + GREATER_OR_EQUAL + + + LESS_THAN + + + GREATER_THAN + + + + + shiftExpression + + + + + + + + + + shiftExpression + + + + additiveExpression + + + + + + + + + BIT_SHIFT_RIGHT + + + SHIFT_RIGHT + + + SHIFT_LEFT + + + + + additiveExpression + + + + + + + + + + additiveExpression + + + + multiplicativeExpression + + + + + + + + + PLUS + + + MINUS + + + + + multiplicativeExpression + + + + + + + + + + multiplicativeExpression + + + + unaryExpression + + + + + + + + + STAR + + + DIV + + + MOD + + + + + unaryExpression + + + + + + + + + + unaryExpression + + + + + + PLUS + + + unaryExpression + + + + + + + MINUS + + + unaryExpression + + + + + + + INC + + + postfixedExpression + + + + + + + DEC + + + postfixedExpression + + + + + unaryExpressionNotPlusMinus + + + + + + PLUS + + + + + + + MINUS + + - + + + + INC + + ++ + + + + postfixedExpression + + + + primaryExpression + + + + + + + + + + outerDot + + DOT + + + + + + + + + + + genericTypeArgumentListSimplified + + + + + IDENT + + + + + arguments + + + + + + + THIS + + + + + + Super + + SUPER + + + + + arguments + + + + + + + SUPER + + + + innerDot + + DOT + + + + + IDENT + + + + + arguments + + + + + + + innerNewExpression + + + + + + + + + LBRACK + + + expression + + + RBRACK + + + + + + + + + + + + + INC + + + DEC + + + + + + + + + + primaryExpression + + + + parenthesizedExpression + + + literal + + + newExpression + + + qualifiedIdentExpression + + + + + genericTypeArgumentListSimplified + + + + + + + SUPER + + + + + arguments + + + + + DOT + + + IDENT + + + arguments + + + + + + + + + + + IDENT + + + arguments + + + + + + + THIS + + + arguments + + + + + + + + + + + THIS + + + + + arguments + + + + + + + + + SUPER + + + arguments + + + + + + + SUPER + + + DOT + + + IDENT + + + + + arguments + + + + + + + + + + + + primitiveType + + + + + arrayDeclarator + + + + + DOT + + + CLASS + + + + + + + VOID + + + DOT + + + CLASS + + + + + + + + parenthesizedExpression + + + + LPAREN + + + expression + + + RPAREN + + + + + + expression + + assignmentExpression + + + + assignmentExpression + + + + conditionalExpression + + + + + + + + + ASSIGN + + + PLUS_ASSIGN + + + MINUS_ASSIGN + + + STAR_ASSIGN + + + DIV_ASSIGN + + + AND_ASSIGN + + + OR_ASSIGN + + + XOR_ASSIGN + + + MOD_ASSIGN + + + SHIFT_LEFT_ASSIGN + + + SHIFT_RIGHT_ASSIGN + + + BIT_SHIFT_RIGHT_ASSIGN + + + + + assignmentExpression + + + + + + + + + + PLUS_ASSIGN + + += + + + + MINUS_ASSIGN + + -= + + + + STAR_ASSIGN + + *= + + + + DIV_ASSIGN + + /= + + + + AND_ASSIGN + + &= + + + + OR_ASSIGN + + |= + + + + XOR_ASSIGN + + ^= + + + + MOD_ASSIGN + + %= + + + + SHIFT_LEFT_ASSIGN + + <<= + + + + SHIFT_RIGHT_ASSIGN + + >>= + + + + BIT_SHIFT_RIGHT_ASSIGN + + >>>= + + + + RPAREN + + ) + + + + literal + + + + HEX_LITERAL + + + OCTAL_LITERAL + + + DECIMAL_LITERAL + + + FLOATING_POINT_LITERAL + + + CHARACTER_LITERAL + + + STRING_LITERAL + + + TRUE + + + FALSE + + + NULL + + + + + + HEX_LITERAL + + + + 0 + + + + + x + + + X + + + + + + + HEX_DIGIT + + + + + + + INTEGER_TYPE_SUFFIX + + + + + + + + HEX_DIGIT + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + a + + + b + + + c + + + d + + + e + + + f + + + A + + + B + + + C + + + D + + + E + + + F + + + + + + INTEGER_TYPE_SUFFIX + + + + l + + + L + + + + + + OCTAL_LITERAL + + + + 0 + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + INTEGER_TYPE_SUFFIX + + + + + + + + DECIMAL_LITERAL + + + + + + 0 + + + + + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + + + + + INTEGER_TYPE_SUFFIX + + + + + + + + FLOATING_POINT_LITERAL + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + + + DOT + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + EXPONENT + + + + + + + FLOAT_TYPE_SUFFIX + + + + + + + + + EXPONENT + + + + + FLOAT_TYPE_SUFFIX + + + + + + + FLOAT_TYPE_SUFFIX + + + + + + + + + DOT + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + EXPONENT + + + + + + + FLOAT_TYPE_SUFFIX + + + + + + + + + + EXPONENT + + + + + + e + + + E + + + + + + + + + + + + + - + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + + FLOAT_TYPE_SUFFIX + + + + f + + + F + + + d + + + D + + + + + + CHARACTER_LITERAL + + + + \' + + + + + ESCAPE_SEQUENCE + + + string + + + + + \' + + + + + + ESCAPE_SEQUENCE + + + + + + \\ + + + + + b + + + t + + + n + + + f + + + r + + + \" + + + \' + + + \\ + + + + + + + UNICODE_ESCAPE + + + OCTAL_ESCAPE + + + + + + UNICODE_ESCAPE + + + + \\ + + + u + + + HEX_DIGIT + + + HEX_DIGIT + + + HEX_DIGIT + + + HEX_DIGIT + + + + + + OCTAL_ESCAPE + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + \\ + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + \\ + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + + STRING_LITERAL + + + + " + + + + + + + ESCAPE_SEQUENCE + + + string + + + + + + + " + + + + + + TRUE + + true + + + + FALSE + + false + + + + NULL + + null + + + + newExpression + + + + NEW + + + + + + + primitiveType + + + newArrayConstruction + + + + + + + + + genericTypeArgumentListSimplified + + + + + qualifiedTypeIdentSimplified + + + + + newArrayConstruction + + + + + arguments + + + + + classBody + + + + + + + + + + + + + + + + NEW + + new + + + + primitiveType + + + + BOOLEAN + + + CHAR + + + BYTE + + + SHORT + + + INT + + + LONG + + + FLOAT + + + DOUBLE + + + + + + BOOLEAN + + boolean + + + + CHAR + + char + + + + BYTE + + byte + + + + SHORT + + short + + + + INT + + int + + + + LONG + + long + + + + FLOAT + + float + + + + DOUBLE + + double + + + + newArrayConstruction + + + + + + arrayDeclaratorList + + + arrayInitializer + + + + + + + LBRACK + + + expression + + + RBRACK + + + + + + + LBRACK + + + expression + + + RBRACK + + + + + + + + + arrayDeclaratorList + + + + + + + + + + arrayDeclaratorList + + + + arrayDeclarator + + + + + + arrayDeclarator + + + + LBRACK + + + RBRACK + + + + + + LBRACK + + [ + + + + RBRACK + + ] + + + + arrayInitializer + + + + LCURLY + + + + + + + variableInitializer + + + + + + + COMMA + + + variableInitializer + + + + + + + + + COMMA + + + + + + + + + RCURLY + + + + + + LCURLY + + { + + + + variableInitializer + + + + arrayInitializer + + + expression + + + + + + COMMA + + , + + + + RCURLY + + } + + + + genericTypeArgumentListSimplified + + + + LESS_THAN + + + genericTypeArgumentSimplified + + + + + + + COMMA + + + genericTypeArgumentSimplified + + + + + + + genericTypeListClosing + + + + + + LESS_THAN + + < + + + + genericTypeArgumentSimplified + + + + type + + + QUESTION + + + + + + type + + + + simpleType + + + objectType + + + + + + simpleType + + + + primitiveType + + + + + arrayDeclaratorList + + + + + + + + objectType + + + + qualifiedTypeIdent + + + + + arrayDeclaratorList + + + + + + + + qualifiedTypeIdent + + + + typeIdent + + + + + + + DOT + + + typeIdent + + + + + + + + + + typeIdent + + + + IDENT + + + + + genericTypeArgumentList + + + + + + + + genericTypeArgumentList + + + + LESS_THAN + + + genericTypeArgument + + + + + + + COMMA + + + genericTypeArgument + + + + + + + genericTypeListClosing + + + + + + genericTypeArgument + + + + type + + + + + QUESTION + + + + + genericWildcardBoundType + + + + + + + + + + QUESTION + + ? + + + + genericWildcardBoundType + + + + + + EXTENDS + + + SUPER + + + + + type + + + + + + EXTENDS + + extends + + + + SUPER + + super + + + + genericTypeListClosing + + + + GREATER_THAN + + + SHIFT_RIGHT + + + BIT_SHIFT_RIGHT + + + + + + + + + GREATER_THAN + + > + + + + SHIFT_RIGHT + + >> + + + + BIT_SHIFT_RIGHT + + >>> + + + + qualifiedTypeIdentSimplified + + + + typeIdentSimplified + + + + + + + DOT + + + typeIdentSimplified + + + + + + + + + + typeIdentSimplified + + + + IDENT + + + + + genericTypeArgumentListSimplified + + + + + + + + arguments + + + + LPAREN + + + + + expressionList + + + + + RPAREN + + + + + + expressionList + + + + expression + + + + + + + COMMA + + + expression + + + + + + + + + + classBody + + + + LCURLY + + + + + classScopeDeclarations + + + + + RCURLY + + + + + + classScopeDeclarations + + + + block + + + + + STATIC + + + block + + + + + + + modifierList + + + + + + + + + genericTypeParameterList + + + + + + + + + type + + + IDENT + + + formalParameterList + + + + + arrayDeclaratorList + + + + + + + throwsClause + + + + + + + block + + + SEMI + + + + + + + + + VOID + + + IDENT + + + formalParameterList + + + + + throwsClause + + + + + + + block + + + SEMI + + + + + + + + + + ident + + IDENT + + + + + formalParameterList + + + + + throwsClause + + + + + block + + + + + + + + + + + type + + + classFieldDeclaratorList + + + SEMI + + + + + + + + + typeDeclaration + + + SEMI + + + + + + block + + + + LCURLY + + + + + blockStatement + + + + + RCURLY + + + + + + blockStatement + + + + + + localVariableDeclaration + + + SEMI + + + + + typeDeclaration + + + statement + + + + + + localVariableDeclaration + + + + localModifierList + + + type + + + classFieldDeclaratorList + + + + + + localModifierList + + + + localModifier + + + + + + localModifier + + + + FINAL + + + annotation + + + + + + FINAL + + final + + + + classFieldDeclaratorList + + + + classFieldDeclarator + + + + + + + COMMA + + + classFieldDeclarator + + + + + + + + + + classFieldDeclarator + + + + variableDeclaratorId + + + + + + + ASSIGN + + + variableInitializer + + + + + + + + + + variableDeclaratorId + + + + IDENT + + + + + arrayDeclaratorList + + + + + + + + SEMI + + ; + + + + typeDeclaration + + + + modifierList + + + + + classTypeDeclaration + + + interfaceTypeDeclaration + + + enumTypeDeclaration + + + annotationTypeDeclaration + + + + + + + + modifierList + + + + modifier + + + + + + modifier + + + + PUBLIC + + + PROTECTED + + + PRIVATE + + + STATIC + + + ABSTRACT + + + NATIVE + + + SYNCHRONIZED + + + TRANSIENT + + + VOLATILE + + + STRICTFP + + + localModifier + + + + + + PUBLIC + + public + + + + PROTECTED + + protected + + + + PRIVATE + + private + + + + STATIC + + static + + + + ABSTRACT + + abstract + + + + NATIVE + + native + + + + SYNCHRONIZED + + synchronized + + + + TRANSIENT + + transient + + + + VOLATILE + + volatile + + + + STRICTFP + + strictfp + + + + classTypeDeclaration + + + + CLASS + + + IDENT + + + + + genericTypeParameterList + + + + + + + classExtendsClause + + + + + + + implementsClause + + + + + classBody + + + + + + CLASS + + class + + + + genericTypeParameterList + + + + LESS_THAN + + + genericTypeParameter + + + + + + + COMMA + + + genericTypeParameter + + + + + + + genericTypeListClosing + + + + + + genericTypeParameter + + + + IDENT + + + + + bound + + + + + + + + bound + + + + EXTENDS + + + type + + + + + + + AND + + + type + + + + + + + + + + AND + + & + + + + classExtendsClause + + + + EXTENDS + + + type + + + + + + implementsClause + + + + IMPLEMENTS + + + typeList + + + + + + IMPLEMENTS + + implements + + + + typeList + + + + type + + + + + + + COMMA + + + type + + + + + + + + + + interfaceTypeDeclaration + + + + INTERFACE + + + IDENT + + + + + genericTypeParameterList + + + + + + + interfaceExtendsClause + + + + + interfaceBody + + + + + + INTERFACE + + interface + + + + interfaceExtendsClause + + + + EXTENDS + + + typeList + + + + + + interfaceBody + + + + LCURLY + + + + + interfaceScopeDeclarations + + + + + RCURLY + + + + + + interfaceScopeDeclarations + + + + + + modifierList + + + + + + + + + genericTypeParameterList + + + + + + + + + type + + + IDENT + + + formalParameterList + + + + + arrayDeclaratorList + + + + + + + throwsClause + + + + + SEMI + + + + + + + VOID + + + IDENT + + + formalParameterList + + + + + throwsClause + + + + + SEMI + + + + + + + + + + + type + + + interfaceFieldDeclaratorList + + + SEMI + + + + + + + + + typeDeclaration + + + SEMI + + + + + + formalParameterList + + + + LPAREN + + + + + + + formalParameterStandardDecl + + + + + + + COMMA + + + formalParameterStandardDecl + + + + + + + + + + + COMMA + + + formalParameterVarArgDecl + + + + + + + + + formalParameterVarArgDecl + + + + + + + + RPAREN + + + + + + formalParameterStandardDecl + + + + localModifierList + + + type + + + variableDeclaratorId + + + + + + formalParameterVarArgDecl + + + + localModifierList + + + type + + + ELLIPSIS + + + variableDeclaratorId + + + + + + ELLIPSIS + + ... + + + + throwsClause + + + + THROWS + + + qualifiedIdentList + + + + + + THROWS + + throws + + + + qualifiedIdentList + + + + qualifiedIdentifier + + + + + + + COMMA + + + qualifiedIdentifier + + + + + + + + + + VOID + + void + + + + interfaceFieldDeclaratorList + + + + interfaceFieldDeclarator + + + + + + + COMMA + + + interfaceFieldDeclarator + + + + + + + + + + interfaceFieldDeclarator + + + + variableDeclaratorId + + + ASSIGN + + + variableInitializer + + + + + + enumTypeDeclaration + + + + ENUM + + + IDENT + + + + + implementsClause + + + + + enumBody + + + + + + ENUM + + enum + + + + enumBody + + + + LCURLY + + + enumScopeDeclarations + + + RCURLY + + + + + + enumScopeDeclarations + + + + enumConstants + + + + + COMMA + + + + + + + enumClassScopeDeclarations + + + + + + + + enumConstants + + + + enumConstant + + + + + + + COMMA + + + enumConstant + + + + + + + + + + enumConstant + + + + annotationList + + + IDENT + + + + + arguments + + + + + + + classBody + + + + + + + + enumClassScopeDeclarations + + + + SEMI + + + + + classScopeDeclarations + + + + + + + + annotationTypeDeclaration + + + + AT + + + INTERFACE + + + IDENT + + + annotationBody + + + + + + annotationBody + + + + LCURLY + + + + + annotationScopeDeclarations + + + + + RCURLY + + + + + + annotationScopeDeclarations + + + + + + modifierList + + + type + + + + + + + IDENT + + + LPAREN + + + RPAREN + + + + + annotationDefaultValue + + + + + SEMI + + + + + + + classFieldDeclaratorList + + + SEMI + + + + + + + + + typeDeclaration + + + + + + annotationDefaultValue + + + + DEFAULT + + + annotationElementValue + + + + + + DEFAULT + + default + + + + statement + + + + block + + + + + ASSERT + + + + expr1 + + expression + + + + + + + + + COLON + + + + expr2 + + expression + + + + + SEMI + + + + + SEMI + + + + + + + + + IF + + + parenthesizedExpression + + + + ifStat + + statement + + + + + + + + + ELSE + + + + elseStat + + statement + + + + + + + + + + + + + + + + FOR + + + LPAREN + + + + + + + forInit + + + SEMI + + + forCondition + + + SEMI + + + forUpdater + + + RPAREN + + + statement + + + + + + + localModifierList + + + type + + + IDENT + + + COLON + + + expression + + + RPAREN + + + statement + + + + + + + + + + + WHILE + + + parenthesizedExpression + + + statement + + + + + + + DO + + + statement + + + WHILE + + + parenthesizedExpression + + + SEMI + + + + + + + TRY + + + block + + + + + + + catches + + + + + finallyClause + + + + + + + finallyClause + + + + + + + + + SWITCH + + + parenthesizedExpression + + + LCURLY + + + switchBlockLabels + + + RCURLY + + + + + + + SYNCHRONIZED + + + parenthesizedExpression + + + block + + + + + + + RETURN + + + + + expression + + + + + SEMI + + + + + + + THROW + + + expression + + + SEMI + + + + + + + BREAK + + + + + IDENT + + + + + SEMI + + + + + + + CONTINUE + + + + + IDENT + + + + + SEMI + + + + + + + IDENT + + + COLON + + + statement + + + + + + + expression + + + SEMI + + + + + SEMI + + + + + + ASSERT + + assert + + + + COLON + + : + + + + IF + + if + + + + ELSE + + else + + + + FOR + + for + + + + forInit + + + + localVariableDeclaration + + + expressionList + + + + + + + + + forCondition + + + + expression + + + + + + forUpdater + + + + expressionList + + + + + + WHILE + + while + + + + DO + + do + + + + TRY + + try + + + + catches + + + + catchClause + + + + + + catchClause + + + + CATCH + + + LPAREN + + + formalParameterStandardDecl + + + RPAREN + + + block + + + + + + CATCH + + catch + + + + finallyClause + + + + FINALLY + + + block + + + + + + FINALLY + + finally + + + + SWITCH + + switch + + + + switchBlockLabels + + + + switchCaseLabels + + + + + switchDefaultLabel + + + + + switchCaseLabels + + + + + + switchCaseLabels + + + + switchCaseLabel + + + + + + switchCaseLabel + + + + CASE + + + expression + + + COLON + + + + + blockStatement + + + + + + + + CASE + + case + + + + switchDefaultLabel + + + + DEFAULT + + + COLON + + + + + blockStatement + + + + + + + + RETURN + + return + + + + THROW + + throw + + + + BREAK + + break + + + + CONTINUE + + continue + + + + qualifiedIdentExpression + + + + qualifiedIdentifier + + + + + + + + + + + arrayDeclarator + + + + + DOT + + + CLASS + + + + + arguments + + + + + + outerDot + + DOT + + + + + + + CLASS + + + + + genericTypeArgumentListSimplified + + + + + + + + Super + + SUPER + + + + + arguments + + + + + + + SUPER + + + + innerDot + + DOT + + + + + IDENT + + + arguments + + + + + + + IDENT + + + arguments + + + + + + + + + THIS + + + + + + Super + + SUPER + + + + + arguments + + + + + innerNewExpression + + + + + + + + + + + + + + THIS + + this + + + + innerNewExpression + + + + NEW + + + + + genericTypeArgumentListSimplified + + + + + IDENT + + + arguments + + + + + classBody + + + + + + + + DEC + + -- + + + + unaryExpressionNotPlusMinus + + + + + + NOT + + + unaryExpression + + + + + + + LOGICAL_NOT + + + unaryExpression + + + + + + + LPAREN + + + type + + + RPAREN + + + unaryExpression + + + + + postfixedExpression + + + + + + NOT + + ~ + + + + LOGICAL_NOT + + ! + + + + STAR + + * + + + + DIV + + / + + + + MOD + + % + + + + SHIFT_LEFT + + << + + + + LESS_OR_EQUAL + + <= + + + + GREATER_OR_EQUAL + + >= + + + + INSTANCEOF + + instanceof + + + + EQUAL + + == + + + + NOT_EQUAL + + != + + + + XOR + + ^ + + + + OR + + | + + + + LOGICAL_AND + + && + + + + LOGICAL_OR + + || + + + + annotationElementValueArrayInitializer + + + + LCURLY + + + + + + + annotationElementValue + + + + + + + COMMA + + + annotationElementValue + + + + + + + + + + + + + COMMA + + + + + RCURLY + + + + + + packageDeclaration + + + + PACKAGE + + + qualifiedIdentifier + + + SEMI + + + + + + PACKAGE + + package + + + + importDeclaration + + + + IMPORT + + + + + STATIC + + + + + qualifiedIdentifier + + + + + DOTSTAR + + + + + SEMI + + + + + + IMPORT + + import + + + + DOTSTAR + + .* + + + + typeDecls + + + + typeDeclaration + + + SEMI + + + + + diff --git a/topics/testing/gbtf/tests/java/parr.bgf b/topics/testing/gbtf/tests/java/parr.bgf new file mode 100644 index 00000000..6e6a9a29 --- /dev/null +++ b/topics/testing/gbtf/tests/java/parr.bgf @@ -0,0 +1,5393 @@ + + + compilationUnit + + compilationUnit + + + + + + annotations + + + + + + + packageDeclaration + + + + + importDeclaration + + + + + + + typeDeclaration + + + + + + + + + classOrInterfaceDeclaration + + + + + typeDeclaration + + + + + + + + + + + + + + + packageDeclaration + + + + + + + importDeclaration + + + + + + + typeDeclaration + + + + + + + + + + annotations + + + + annotation + + + + + + annotation + + + + @ + + + annotationName + + + + + + + ( + + + + + + + elementValuePairs + + + elementValue + + + + + + + ) + + + + + + + + + + annotationName + + + + Identifier + + + + + + + . + + + Identifier + + + + + + + + + + Identifier + + + + Letter + + + + + + + Letter + + + JavaIDDigit + + + + + + + + + + Letter + + + + a + + + b + + + c + + + d + + + e + + + f + + + g + + + h + + + i + + + j + + + k + + + l + + + m + + + n + + + o + + + p + + + q + + + r + + + s + + + t + + + u + + + v + + + w + + + x + + + y + + + z + + + A + + + B + + + C + + + D + + + E + + + F + + + G + + + H + + + I + + + J + + + K + + + L + + + M + + + N + + + O + + + P + + + Q + + + R + + + S + + + T + + + U + + + V + + + W + + + X + + + Y + + + Z + + + + + + JavaIDDigit + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + a + + + b + + + c + + + d + + + e + + + f + + + g + + + h + + + i + + + j + + + k + + + l + + + m + + + n + + + o + + + p + + + q + + + r + + + s + + + t + + + u + + + v + + + w + + + x + + + y + + + z + + + A + + + B + + + C + + + D + + + E + + + F + + + G + + + H + + + I + + + J + + + K + + + L + + + M + + + N + + + O + + + P + + + Q + + + R + + + S + + + T + + + U + + + V + + + W + + + X + + + Y + + + Z + + + + + + elementValuePairs + + + + elementValuePair + + + + + + + , + + + elementValuePair + + + + + + + + + + elementValuePair + + + + Identifier + + + = + + + elementValue + + + + + + elementValue + + + + conditionalExpression + + + annotation + + + elementValueArrayInitializer + + + + + + conditionalExpression + + + + conditionalOrExpression + + + + + + + ? + + + expression + + + : + + + expression + + + + + + + + + + conditionalOrExpression + + + + conditionalAndExpression + + + + + + + || + + + conditionalAndExpression + + + + + + + + + + conditionalAndExpression + + + + inclusiveOrExpression + + + + + + + && + + + inclusiveOrExpression + + + + + + + + + + inclusiveOrExpression + + + + exclusiveOrExpression + + + + + + + | + + + exclusiveOrExpression + + + + + + + + + + exclusiveOrExpression + + + + andExpression + + + + + + + ^ + + + andExpression + + + + + + + + + + andExpression + + + + equalityExpression + + + + + + + & + + + equalityExpression + + + + + + + + + + equalityExpression + + + + instanceOfExpression + + + + + + + + + == + + + != + + + + + instanceOfExpression + + + + + + + + + + instanceOfExpression + + + + relationalExpression + + + + + + + instanceof + + + type + + + + + + + + + + relationalExpression + + + + shiftExpression + + + + + + + relationalOp + + + shiftExpression + + + + + + + + + + shiftExpression + + + + additiveExpression + + + + + + + shiftOp + + + additiveExpression + + + + + + + + + + additiveExpression + + + + multiplicativeExpression + + + + + + + + + + + + + - + + + + + multiplicativeExpression + + + + + + + + + + multiplicativeExpression + + + + unaryExpression + + + + + + + + + * + + + / + + + % + + + + + unaryExpression + + + + + + + + + + unaryExpression + + + + + + + + + + unaryExpression + + + + + + + - + + + unaryExpression + + + + + + + ++ + + + unaryExpression + + + + + + + -- + + + unaryExpression + + + + + unaryExpressionNotPlusMinus + + + + + + unaryExpressionNotPlusMinus + + + + + + ~ + + + unaryExpression + + + + + + + ! + + + unaryExpression + + + + + castExpression + + + + + primary + + + + + selector + + + + + + + + + ++ + + + -- + + + + + + + + + + + + castExpression + + + + + + ( + + + primitiveType + + + ) + + + unaryExpression + + + + + + + ( + + + + + type + + + expression + + + + + ) + + + unaryExpressionNotPlusMinus + + + + + + + + primitiveType + + + + boolean + + + char + + + byte + + + short + + + int + + + long + + + float + + + double + + + + + + type + + + + + + classOrInterfaceType + + + + + + + [ + + + ] + + + + + + + + + + + primitiveType + + + + + + + [ + + + ] + + + + + + + + + + + + classOrInterfaceType + + + + Identifier + + + + + typeArguments + + + + + + + + + . + + + Identifier + + + + + typeArguments + + + + + + + + + + + + typeArguments + + + + < + + + typeArgument + + + + + + + , + + + typeArgument + + + + + + + > + + + + + + typeArgument + + + + type + + + + + ? + + + + + + + + + extends + + + super + + + + + type + + + + + + + + + + + + expression + + + + conditionalExpression + + + + + + + assignmentOperator + + + expression + + + + + + + + + + assignmentOperator + + + + = + + + += + + + -= + + + *= + + + /= + + + &= + + + |= + + + ^= + + + %= + + + + + + t1 + + < + + + + + + t2 + + < + + + + + + t3 + + = + + + + + + + + + + t1 + + > + + + + + + t2 + + > + + + + + + t3 + + > + + + + + + t4 + + + + = + + + + + + + + + + + + t1 + + > + + + + + + t2 + + > + + + + + + t3 + + = + + + + + + + + + + primary + + + + parExpression + + + + + this + + + + + + + . + + + Identifier + + + + + + + + + identifierSuffix + + + + + + + + + super + + + superSuffix + + + + + literal + + + + + new + + + creator + + + + + + + Identifier + + + + + + + . + + + Identifier + + + + + + + + + identifierSuffix + + + + + + + + + primitiveType + + + + + + + [ + + + ] + + + + + + + . + + + class + + + + + + + void + + + . + + + class + + + + + + + + parExpression + + + + ( + + + expression + + + ) + + + + + + identifierSuffix + + + + + + + + + + [ + + + ] + + + + + + + . + + + class + + + + + + + + + [ + + + expression + + + ] + + + + + + + arguments + + + + + . + + + class + + + + + + + . + + + explicitGenericInvocation + + + + + + + . + + + this + + + + + + + . + + + super + + + arguments + + + + + + + . + + + new + + + innerCreator + + + + + + + + arguments + + + + ( + + + + + expressionList + + + + + ) + + + + + + expressionList + + + + expression + + + + + + + , + + + expression + + + + + + + + + + explicitGenericInvocation + + + + nonWildcardTypeArguments + + + Identifier + + + arguments + + + + + + nonWildcardTypeArguments + + + + < + + + typeList + + + > + + + + + + typeList + + + + type + + + + + + + , + + + type + + + + + + + + + + innerCreator + + + + + + nonWildcardTypeArguments + + + + + Identifier + + + classCreatorRest + + + + + + classCreatorRest + + + + arguments + + + + + classBody + + + + + + + + classBody + + + + { + + + + + classBodyDeclaration + + + + + } + + + + + + classBodyDeclaration + + + + ; + + + + + + + static + + + + + block + + + + + + + modifiers + + + memberDecl + + + + + + + + block + + + + { + + + + + blockStatement + + + + + } + + + + + + blockStatement + + + + localVariableDeclarationStatement + + + classOrInterfaceDeclaration + + + statement + + + + + + localVariableDeclarationStatement + + + + localVariableDeclaration + + + ; + + + + + + localVariableDeclaration + + + + variableModifiers + + + type + + + variableDeclarators + + + + + + variableModifiers + + + + variableModifier + + + + + + variableModifier + + + + final + + + annotation + + + + + + variableDeclarators + + + + variableDeclarator + + + + + + + , + + + variableDeclarator + + + + + + + + + + variableDeclarator + + + + variableDeclaratorId + + + + + + + = + + + variableInitializer + + + + + + + + + + variableDeclaratorId + + + + Identifier + + + + + + + [ + + + ] + + + + + + + + + + variableInitializer + + + + arrayInitializer + + + expression + + + + + + arrayInitializer + + + + { + + + + + + + variableInitializer + + + + + + + , + + + variableInitializer + + + + + + + + + , + + + + + + + + + } + + + + + + classOrInterfaceDeclaration + + + + classOrInterfaceModifiers + + + + + classDeclaration + + + interfaceDeclaration + + + + + + + + classOrInterfaceModifiers + + + + classOrInterfaceModifier + + + + + + classOrInterfaceModifier + + + + annotation + + + public + + + protected + + + private + + + abstract + + + static + + + final + + + strictfp + + + + + + classDeclaration + + + + normalClassDeclaration + + + enumDeclaration + + + + + + normalClassDeclaration + + + + class + + + Identifier + + + + + typeParameters + + + + + + + + + extends + + + type + + + + + + + + + + + implements + + + typeList + + + + + + + classBody + + + + + + typeParameters + + + + < + + + typeParameter + + + + + + + , + + + typeParameter + + + + + + + > + + + + + + typeParameter + + + + Identifier + + + + + + + extends + + + typeBound + + + + + + + + + + typeBound + + + + type + + + + + + + & + + + type + + + + + + + + + + enumDeclaration + + + + ENUM + + + Identifier + + + + + + + implements + + + typeList + + + + + + + enumBody + + + + + + ENUM + + enum + + + + enumBody + + + + { + + + + + enumConstants + + + + + + + , + + + + + + + enumBodyDeclarations + + + + + } + + + + + + enumConstants + + + + enumConstant + + + + + + + , + + + enumConstant + + + + + + + + + + enumConstant + + + + + + annotations + + + + + Identifier + + + + + arguments + + + + + + + classBody + + + + + + + + enumBodyDeclarations + + + + ; + + + + + classBodyDeclaration + + + + + + + + interfaceDeclaration + + + + normalInterfaceDeclaration + + + annotationTypeDeclaration + + + + + + normalInterfaceDeclaration + + + + interface + + + Identifier + + + + + typeParameters + + + + + + + + + extends + + + typeList + + + + + + + interfaceBody + + + + + + interfaceBody + + + + { + + + + + interfaceBodyDeclaration + + + + + } + + + + + + interfaceBodyDeclaration + + + + + + modifiers + + + interfaceMemberDecl + + + + + ; + + + + + + modifiers + + + + modifier + + + + + + modifier + + + + annotation + + + public + + + protected + + + private + + + static + + + abstract + + + final + + + native + + + synchronized + + + transient + + + volatile + + + strictfp + + + + + + interfaceMemberDecl + + + + interfaceMethodOrFieldDecl + + + interfaceGenericMethodDecl + + + + + void + + + Identifier + + + voidInterfaceMethodDeclaratorRest + + + + + interfaceDeclaration + + + classDeclaration + + + + + + interfaceMethodOrFieldDecl + + + + type + + + Identifier + + + interfaceMethodOrFieldRest + + + + + + interfaceMethodOrFieldRest + + + + + + constantDeclaratorsRest + + + ; + + + + + interfaceMethodDeclaratorRest + + + + + + constantDeclaratorsRest + + + + constantDeclaratorRest + + + + + + + , + + + constantDeclarator + + + + + + + + + + constantDeclaratorRest + + + + + + + + [ + + + ] + + + + + + + = + + + variableInitializer + + + + + + constantDeclarator + + + + Identifier + + + constantDeclaratorRest + + + + + + interfaceMethodDeclaratorRest + + + + formalParameters + + + + + + + [ + + + ] + + + + + + + + + + + throws + + + qualifiedNameList + + + + + + + ; + + + + + + formalParameters + + + + ( + + + + + formalParameterDecls + + + + + ) + + + + + + formalParameterDecls + + + + variableModifiers + + + type + + + formalParameterDeclsRest + + + + + + formalParameterDeclsRest + + + + + + variableDeclaratorId + + + + + + + , + + + formalParameterDecls + + + + + + + + + + + ... + + + variableDeclaratorId + + + + + + + + qualifiedNameList + + + + qualifiedName + + + + + + + , + + + qualifiedName + + + + + + + + + + qualifiedName + + + + Identifier + + + + + + + . + + + Identifier + + + + + + + + + + interfaceGenericMethodDecl + + + + typeParameters + + + + + type + + + void + + + + + Identifier + + + interfaceMethodDeclaratorRest + + + + + + voidInterfaceMethodDeclaratorRest + + + + formalParameters + + + + + + + throws + + + qualifiedNameList + + + + + + + ; + + + + + + annotationTypeDeclaration + + + + @ + + + interface + + + Identifier + + + annotationTypeBody + + + + + + annotationTypeBody + + + + { + + + + + annotationTypeElementDeclaration + + + + + } + + + + + + annotationTypeElementDeclaration + + + + modifiers + + + annotationTypeElementRest + + + + + + annotationTypeElementRest + + + + + + type + + + annotationMethodOrConstantRest + + + ; + + + + + + + normalClassDeclaration + + + + + ; + + + + + + + + + normalInterfaceDeclaration + + + + + ; + + + + + + + + + enumDeclaration + + + + + ; + + + + + + + + + annotationTypeDeclaration + + + + + ; + + + + + + + + + + annotationMethodOrConstantRest + + + + annotationMethodRest + + + annotationConstantRest + + + + + + annotationMethodRest + + + + Identifier + + + ( + + + ) + + + + + defaultValue + + + + + + + + defaultValue + + + + default + + + elementValue + + + + + + annotationConstantRest + + variableDeclarators + + + + statement + + + + block + + + + + ASSERT + + + expression + + + + + + + : + + + expression + + + + + + + ; + + + + + + + if + + + parExpression + + + statement + + + + + + + else + + + statement + + + + + + + + + + + for + + + ( + + + forControl + + + ) + + + statement + + + + + + + while + + + parExpression + + + statement + + + + + + + do + + + statement + + + while + + + parExpression + + + ; + + + + + + + try + + + block + + + + + + + catches + + + finally + + + block + + + + + catches + + + + + finally + + + block + + + + + + + + + + + switch + + + parExpression + + + { + + + switchBlockStatementGroups + + + } + + + + + + + synchronized + + + parExpression + + + block + + + + + + + return + + + + + expression + + + + + ; + + + + + + + throw + + + expression + + + ; + + + + + + + break + + + + + Identifier + + + + + ; + + + + + + + continue + + + + + Identifier + + + + + ; + + + + + ; + + + + + statementExpression + + + ; + + + + + + + Identifier + + + : + + + statement + + + + + + + + ASSERT + + assert + + + + forControl + + + + enhancedForControl + + + + + + + forInit + + + + + ; + + + + + expression + + + + + ; + + + + + forUpdate + + + + + + + + + + enhancedForControl + + + + variableModifiers + + + type + + + Identifier + + + : + + + expression + + + + + + forInit + + + + localVariableDeclaration + + + expressionList + + + + + + forUpdate + + expressionList + + + + catches + + + + catchClause + + + + + catchClause + + + + + + + + catchClause + + + + catch + + + ( + + + formalParameter + + + ) + + + block + + + + + + formalParameter + + + + variableModifiers + + + type + + + variableDeclaratorId + + + + + + switchBlockStatementGroups + + + + switchBlockStatementGroup + + + + + + switchBlockStatementGroup + + + + + + switchLabel + + + + + + + blockStatement + + + + + + + + switchLabel + + + + + + case + + + constantExpression + + + : + + + + + + + case + + + enumConstantName + + + : + + + + + + + default + + + : + + + + + + + + constantExpression + + expression + + + + enumConstantName + + Identifier + + + + statementExpression + + expression + + + + memberDecl + + + + genericMethodOrConstructorDecl + + + memberDeclaration + + + + + void + + + Identifier + + + voidMethodDeclaratorRest + + + + + + + Identifier + + + constructorDeclaratorRest + + + + + interfaceDeclaration + + + classDeclaration + + + + + + genericMethodOrConstructorDecl + + + + typeParameters + + + genericMethodOrConstructorRest + + + + + + genericMethodOrConstructorRest + + + + + + + + type + + + void + + + + + Identifier + + + methodDeclaratorRest + + + + + + + Identifier + + + constructorDeclaratorRest + + + + + + + + methodDeclaratorRest + + + + formalParameters + + + + + + + [ + + + ] + + + + + + + + + + + throws + + + qualifiedNameList + + + + + + + + + methodBody + + + ; + + + + + + + + methodBody + + block + + + + constructorDeclaratorRest + + + + formalParameters + + + + + + + throws + + + qualifiedNameList + + + + + + + constructorBody + + + + + + constructorBody + + + + { + + + + + explicitConstructorInvocation + + + + + + + blockStatement + + + + + } + + + + + + explicitConstructorInvocation + + + + + + + + nonWildcardTypeArguments + + + + + + + this + + + super + + + + + arguments + + + ; + + + + + + + primary + + + . + + + + + nonWildcardTypeArguments + + + + + super + + + arguments + + + ; + + + + + + + + memberDeclaration + + + + type + + + + + methodDeclaration + + + fieldDeclaration + + + + + + + + methodDeclaration + + + + Identifier + + + methodDeclaratorRest + + + + + + fieldDeclaration + + + + variableDeclarators + + + ; + + + + + + voidMethodDeclaratorRest + + + + formalParameters + + + + + + + throws + + + qualifiedNameList + + + + + + + + + methodBody + + + ; + + + + + + + + superSuffix + + + + arguments + + + + + . + + + Identifier + + + + + arguments + + + + + + + + + + literal + + + + integerLiteral + + + FloatingPointLiteral + + + CharacterLiteral + + + StringLiteral + + + booleanLiteral + + + null + + + + + + integerLiteral + + + + HexLiteral + + + OctalLiteral + + + DecimalLiteral + + + + + + HexLiteral + + + + 0 + + + + + x + + + X + + + + + + + HexDigit + + + + + + + IntegerTypeSuffix + + + + + + + + HexDigit + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + a + + + b + + + c + + + d + + + e + + + f + + + A + + + B + + + C + + + D + + + E + + + F + + + + + + IntegerTypeSuffix + + + + l + + + L + + + + + + OctalLiteral + + + + 0 + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + IntegerTypeSuffix + + + + + + + + DecimalLiteral + + + + + + 0 + + + + + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + + + + + IntegerTypeSuffix + + + + + + + + FloatingPointLiteral + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + . + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + Exponent + + + + + + + FloatTypeSuffix + + + + + + + + + . + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + Exponent + + + + + + + FloatTypeSuffix + + + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + Exponent + + + + + FloatTypeSuffix + + + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + FloatTypeSuffix + + + + + + + + Exponent + + + + + + e + + + E + + + + + + + + + + + + + - + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + + FloatTypeSuffix + + + + f + + + F + + + d + + + D + + + + + + CharacterLiteral + + + + \' + + + + + EscapeSequence + + + string + + + + + \' + + + + + + EscapeSequence + + + + + + \\ + + + + + b + + + t + + + n + + + f + + + r + + + \" + + + \' + + + \\ + + + + + + + UnicodeEscape + + + OctalEscape + + + + + + UnicodeEscape + + + + \\ + + + u + + + HexDigit + + + HexDigit + + + HexDigit + + + HexDigit + + + + + + OctalEscape + + + + + + \\ + + + + + 0 + + + 1 + + + 2 + + + 3 + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + \\ + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + \\ + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + + StringLiteral + + + + " + + + + + + + EscapeSequence + + + string + + + + + + + " + + + + + + booleanLiteral + + + + true + + + false + + + + + + creator + + + + + + nonWildcardTypeArguments + + + createdName + + + classCreatorRest + + + + + + + createdName + + + + + arrayCreatorRest + + + classCreatorRest + + + + + + + + + + createdName + + + + classOrInterfaceType + + + primitiveType + + + + + + arrayCreatorRest + + + + [ + + + + + + + ] + + + + + + + [ + + + ] + + + + + + + arrayInitializer + + + + + + + expression + + + ] + + + + + + + [ + + + expression + + + ] + + + + + + + + + + + [ + + + ] + + + + + + + + + + + + + + selector + + + + + + . + + + Identifier + + + + + arguments + + + + + + + + + . + + + this + + + + + + + . + + + super + + + superSuffix + + + + + + + . + + + new + + + innerCreator + + + + + + + [ + + + expression + + + ] + + + + + + + + shiftOp + + + + + + + t1 + + < + + + + + + t2 + + + + < + + + + + + + + + + + + t1 + + > + + + + + + t2 + + > + + + + + + t3 + + > + + + + + + + + + + t1 + + > + + + + + + t2 + + + + > + + + + + + + + + + + + relationalOp + + + + + + + t1 + + < + + + + + + t2 + + + + = + + + + + + + + + + + + t1 + + > + + + + + + t2 + + + + = + + + + + + + + + < + + + > + + + + + + elementValueArrayInitializer + + + + { + + + + + + + elementValue + + + + + + + , + + + elementValue + + + + + + + + + + + + + , + + + + + } + + + + + + packageDeclaration + + + + package + + + qualifiedName + + + ; + + + + + + importDeclaration + + + + import + + + + + static + + + + + qualifiedName + + + + + + + . + + + * + + + + + + + ; + + + + + + typeDeclaration + + + + classOrInterfaceDeclaration + + + ; + + + + + diff --git a/topics/testing/gbtf/tests/java/stahl.bgf b/topics/testing/gbtf/tests/java/stahl.bgf new file mode 100644 index 00000000..c52d14af --- /dev/null +++ b/topics/testing/gbtf/tests/java/stahl.bgf @@ -0,0 +1,5155 @@ + + + compilationUnit + + compilationUnit + + + + + + packageDefinition + + + + + + + + + + importDefinition + + + + + + + typeDefinition + + + + + + + + packageDefinition + + + + annotations + + + + p + + package + + + + + identifier + + + SEMI + + + + + + annotations + + + + annotation + + + + + + annotation + + + + AT + + + identifier + + + annotationInit + + + + + + AT + + @ + + + + identifier + + + + IDENT + + + + + + + DOT + + + IDENT + + + + + + + + + + IDENT + + + + + + a + + + b + + + c + + + d + + + e + + + f + + + g + + + h + + + i + + + j + + + k + + + l + + + m + + + n + + + o + + + p + + + q + + + r + + + s + + + t + + + u + + + v + + + w + + + x + + + y + + + z + + + A + + + B + + + C + + + D + + + E + + + F + + + G + + + H + + + I + + + J + + + K + + + L + + + M + + + N + + + O + + + P + + + Q + + + R + + + S + + + T + + + U + + + V + + + W + + + X + + + Y + + + Z + + + _ + + + $ + + + + + + + + + a + + + b + + + c + + + d + + + e + + + f + + + g + + + h + + + i + + + j + + + k + + + l + + + m + + + n + + + o + + + p + + + q + + + r + + + s + + + t + + + u + + + v + + + w + + + x + + + y + + + z + + + A + + + B + + + C + + + D + + + E + + + F + + + G + + + H + + + I + + + J + + + K + + + L + + + M + + + N + + + O + + + P + + + Q + + + R + + + S + + + T + + + U + + + V + + + W + + + X + + + Y + + + Z + + + _ + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + $ + + + + + + + + + + DOT + + . + + + + annotationInit + + + + + + + lp + + LPAREN + + + + + + + + + annotationMemberInit + + + + + + + COMMA + + + annotationMemberInit + + + + + + + + + annotationMemberValue + + + + + + + + RPAREN + + + + + + + + + + + LPAREN + + ( + + + + annotationMemberInit + + + + IDENT + + + ASSIGN + + + annotationMemberValue + + + + + + ASSIGN + + = + + + + annotationMemberValue + + + + annotation + + + conditionalExpression + + + annotationMemberArrayInitializer + + + + + + conditionalExpression + + + + logicalOrExpression + + + + + + + QUESTION + + + assignmentExpression + + + COLON + + + conditionalExpression + + + + + + + + + + logicalOrExpression + + + + logicalAndExpression + + + + + + + LOR + + + logicalAndExpression + + + + + + + + + + logicalAndExpression + + + + inclusiveOrExpression + + + + + + + LAND + + + inclusiveOrExpression + + + + + + + + + + inclusiveOrExpression + + + + exclusiveOrExpression + + + + + + + BOR + + + exclusiveOrExpression + + + + + + + + + + exclusiveOrExpression + + + + andExpression + + + + + + + BXOR + + + andExpression + + + + + + + + + + andExpression + + + + equalityExpression + + + + + + + BAND + + + equalityExpression + + + + + + + + + + equalityExpression + + + + relationalExpression + + + + + + + + + NOT_EQUAL + + + EQUAL + + + + + relationalExpression + + + + + + + + + + relationalExpression + + + + shiftExpression + + + + + + + + + + + LT + + + GT + + + LE + + + GE + + + + + shiftExpression + + + + + + + + + instanceof + + + typeSpec + + + + + + + + + + shiftExpression + + + + additiveExpression + + + + + + + + + SL + + + SR + + + BSR + + + + + additiveExpression + + + + + + + + + + additiveExpression + + + + multiplicativeExpression + + + + + + + + + PLUS + + + MINUS + + + + + multiplicativeExpression + + + + + + + + + + multiplicativeExpression + + + + unaryExpression + + + + + + + + + STAR + + + DIV + + + MOD + + + + + unaryExpression + + + + + + + + + + unaryExpression + + + + + + INC + + + unaryExpression + + + + + + + DEC + + + unaryExpression + + + + + + + MINUS + + + unaryExpression + + + + + + + PLUS + + + unaryExpression + + + + + unaryExpressionNotPlusMinus + + + + + + INC + + ++ + + + + DEC + + -- + + + + MINUS + + - + + + + PLUS + + + + + + + unaryExpressionNotPlusMinus + + + + + + BNOT + + + unaryExpression + + + + + + + LNOT + + + unaryExpression + + + + + + + + lpb + + LPAREN + + + + + builtInTypeSpec + + + RPAREN + + + unaryExpression + + + + + + + + lp + + LPAREN + + + + + classTypeSpec + + + RPAREN + + + unaryExpressionNotPlusMinus + + + + + postfixExpression + + + + + + BNOT + + ~ + + + + LNOT + + ! + + + + builtInTypeSpec + + + + builtInType + + + + + + + + lb + + LBRACK + + + + + RBRACK + + + + + + + + + + builtInType + + + + void + + + boolean + + + byte + + + char + + + short + + + int + + + float + + + long + + + double + + + + + + LBRACK + + [ + + + + RBRACK + + ] + + + + RPAREN + + ) + + + + classTypeSpec + + + + classOrInterfaceType + + + + + + + + lb + + LBRACK + + + + + RBRACK + + + + + + + + + + classOrInterfaceType + + + + IDENT + + + typeArguments + + + + + + + DOT + + + IDENT + + + typeArguments + + + + + + + + + + typeArguments + + + + + + + lt + + LT + + + + + typeArgument + + + + + + + COMMA + + + typeArgument + + + + + + + + + typeArgumentsEnd + + + + + + + + + + + + + LT + + < + + + + typeArgument + + + + + + + q + + QUESTION + + + + + + + + + + + extends + + + referenceTypeSpec + + + + + + + super + + + referenceTypeSpec + + + + + + + + + + + referenceTypeSpec + + + + + + QUESTION + + ? + + + + referenceTypeSpec + + + + classTypeSpec + + + arrayTypeSpec + + + + + + arrayTypeSpec + + + + builtInType + + + + + + + + lb + + LBRACK + + + + + RBRACK + + + + + + + + + + COMMA + + , + + + + typeArgumentsEnd + + + + GT + + + SR + + + BSR + + + + + + GT + + > + + + + SR + + >> + + + + BSR + + >>> + + + + postfixExpression + + + + primaryExpression + + + + + + + + + DOT + + + this + + + + + + + DOT + + + + ta1 + + typeArguments + + + + + + + + + IDENT + + + + + + + + lp + + LPAREN + + + + + argList + + + RPAREN + + + + + + + + + + + super + + + + + + + + lp3 + + LPAREN + + + + + argList + + + RPAREN + + + + + + + DOT + + + + ta2 + + typeArguments + + + + + IDENT + + + + + + + + lps + + LPAREN + + + + + argList + + + RPAREN + + + + + + + + + + + + + + + + + + + DOT + + + newExpression + + + + + + + + lb + + LBRACK + + + + + expression + + + RBRACK + + + + + + + + + + + + + + in + + INC + + + + + + de + + DEC + + + + + + + + + + + + primaryExpression + + + + + + identPrimary + + + + + + + DOT + + + class + + + + + + + + + constant + + + true + + + false + + + null + + + newExpression + + + this + + + super + + + + + LPAREN + + + assignmentExpression + + + RPAREN + + + + + + + builtInType + + + + + + + + lbt + + LBRACK + + + + + RBRACK + + + + + + + DOT + + + class + + + + + + + + identPrimary + + + + + ta1 + + typeArguments + + + + + IDENT + + + + + + + + + DOT + + + + ta2 + + typeArguments + + + + + IDENT + + + + + + + + + + + + + + + + + + + lp + + LPAREN + + + + + argList + + + RPAREN + + + + + + + + + + lbc + + LBRACK + + + + + RBRACK + + + + + + + + + + + + + + argList + + + + expressionList + + + + + + + + + expressionList + + + + expression + + + + + + + COMMA + + + expression + + + + + + + + + + expression + + assignmentExpression + + + + assignmentExpression + + + + conditionalExpression + + + + + + + + + ASSIGN + + + PLUS_ASSIGN + + + MINUS_ASSIGN + + + STAR_ASSIGN + + + DIV_ASSIGN + + + MOD_ASSIGN + + + SR_ASSIGN + + + BSR_ASSIGN + + + SL_ASSIGN + + + BAND_ASSIGN + + + BXOR_ASSIGN + + + BOR_ASSIGN + + + + + assignmentExpression + + + + + + + + + + PLUS_ASSIGN + + += + + + + MINUS_ASSIGN + + -= + + + + STAR_ASSIGN + + *= + + + + DIV_ASSIGN + + /= + + + + MOD_ASSIGN + + %= + + + + SR_ASSIGN + + >>= + + + + BSR_ASSIGN + + >>>= + + + + SL_ASSIGN + + <<= + + + + BAND_ASSIGN + + &= + + + + BXOR_ASSIGN + + ^= + + + + BOR_ASSIGN + + |= + + + + constant + + + + NUM_INT + + + CHAR_LITERAL + + + STRING_LITERAL + + + NUM_FLOAT + + + NUM_LONG + + + NUM_DOUBLE + + + + + + NUM_INT + + + + + + . + + + + + + + . + + + . + + + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + EXPONENT + + + + + + + + f1 + + FLOAT_SUFFIX + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + x + + + X + + + + + + + HEX_DIGIT + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + + + + + + + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + + + + + + + l + + + L + + + + + . + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + EXPONENT + + + + + + + + f2 + + FLOAT_SUFFIX + + + + + + + + + + + EXPONENT + + + + + + f3 + + FLOAT_SUFFIX + + + + + + + + + + f4 + + FLOAT_SUFFIX + + + + + + + + + + + + + + EXPONENT + + + + + + e + + + E + + + + + + + + + + + + + - + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + + FLOAT_SUFFIX + + + + f + + + F + + + d + + + D + + + + + + HEX_DIGIT + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + A + + + B + + + C + + + D + + + E + + + F + + + a + + + b + + + c + + + d + + + e + + + f + + + + + + CHAR_LITERAL + + + + \' + + + + + ESC + + + string + + + + + \' + + + + + + ESC + + + + \\ + + + + + n + + + r + + + t + + + b + + + f + + + " + + + \' + + + \\ + + + + + + + u + + + + + HEX_DIGIT + + + HEX_DIGIT + + + HEX_DIGIT + + + HEX_DIGIT + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + + + + + + + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + + + + + + STRING_LITERAL + + + + " + + + + + + + ESC + + + string + + + + + + + " + + + + + + NUM_FLOAT + + + + int + + + + + EXPONENT + + + + + + + f + + + F + + + + + + + + NUM_LONG + + + + int + + + + + l + + + L + + + + + + + + NUM_DOUBLE + + + + int + + + + + EXPONENT + + + + + + + + + d + + + D + + + + + + + + + + newExpression + + + + new + + + typeArguments + + + type + + + + + + + LPAREN + + + argList + + + RPAREN + + + + + classBlock + + + + + + + + + newArrayDeclarator + + + + + arrayInitializer + + + + + + + + + + + + type + + + + classOrInterfaceType + + + builtInType + + + + + + classBlock + + + + LCURLY + + + + + + + classField + + + SEMI + + + + + + + RCURLY + + + + + + LCURLY + + { + + + + classField + + + + + + + mods + + modifiers + + + + + + + + it + + innerTypeDef + + + + + + + + tp + + typeParameters + + + + + + + + + + h + + ctorHead + + + + + + s + + constructorBody + + + + + + + + md + + memberDef + + + + + + + + + + + + + + + static + + + + s3 + + compoundStatement + + + + + + + + s4 + + compoundStatement + + + + + + + + modifiers + + + + + + modifier + + + annotation + + + + + + + + modifier + + + + private + + + public + + + protected + + + static + + + transient + + + final + + + abstract + + + native + + + threadsafe + + + synchronized + + + volatile + + + strictfp + + + + + + innerTypeDef + + + + + ed + + enumDefinition + + + + + + cd + + classDefinition + + + + + + id + + interfaceDefinition + + + + + + ad + + annotationTypeDefinition + + + + + + + + enumDefinition + + + + ENUM + + + IDENT + + + + ic + + implementsClause + + + + + + eb + + enumBlock + + + + + + + + ENUM + + enum + + + + implementsClause + + + + + + + i + + implements + + + + + classOrInterfaceType + + + + + + + COMMA + + + classOrInterfaceType + + + + + + + + + + + + enumBlock + + + + LCURLY + + + + + + + enumConst + + + + + + + COMMA + + + enumConst + + + + + + + + + + + + + COMMA + + + + + + + + + SEMI + + + + + + + classField + + + SEMI + + + + + + + + + + + RCURLY + + + + + + enumConst + + + + annotations + + + IDENT + + + enumConstInit + + + + + classBlock + + + + + + + + enumConstInit + + + + + + + lp + + LPAREN + + + + + argList + + + RPAREN + + + + + + + + + + + SEMI + + ; + + + + RCURLY + + } + + + + classDefinition + + + + class + + + IDENT + + + + tp + + typeParameters + + + + + + sc + + superClassClause + + + + + + ic + + implementsClause + + + + + + cb + + classBlock + + + + + + + + typeParameters + + + + + + + lt + + LT + + + + + typeParameter + + + + + + + COMMA + + + typeParameter + + + + + + + + + typeArgumentsEnd + + + + + + + + + + + + + typeParameter + + + + IDENT + + + + + + + extends + + + classOrInterfaceType + + + + + + + BAND + + + classOrInterfaceType + + + + + + + + + + + + + + BAND + + & + + + + superClassClause + + + + + + extends + + + classOrInterfaceType + + + + + + + + interfaceDefinition + + + + interface + + + IDENT + + + + tp + + typeParameters + + + + + + ie + + interfaceExtends + + + + + + ib + + interfaceBlock + + + + + + + + interfaceExtends + + + + + + + e + + extends + + + + + classOrInterfaceType + + + + + + + COMMA + + + classOrInterfaceType + + + + + + + + + + + + interfaceBlock + + + + LCURLY + + + + + + + interfaceField + + + SEMI + + + + + + + RCURLY + + + + + + interfaceField + + + + + mods + + modifiers + + + + + + + + it + + innerTypeDef + + + + + + + + tp + + typeParameters + + + + + + md + + memberDef + + + + + + + + + + + + memberDef + + + + + t + + typeSpec + + + + + + + + + IDENT + + + LPAREN + + + + param + + parameterDeclarationList + + + + + RPAREN + + + + rt + + declaratorBrackets + + + + + + + + tc + + throwsClause + + + + + + + + + SEMI + + + + s2 + + compoundStatement + + + + + + + + + + + + v + + variableDefinitions + + + + + SEMI + + + + + + + + + + typeSpec + + + + classTypeSpec + + + builtInTypeSpec + + + + + + parameterDeclarationList + + + + + + parameterDeclaration + + + + + + + COMMA + + + parameterDeclaration + + + + + + + + + + + + parameterDeclaration + + + + + pm + + parameterModifier + + + + + + t + + typeSpec + + + + + + + + el + + ELLIPSIS + + + + + + + + id + + IDENT + + + + + + pd + + declaratorBrackets + + + + + + + + parameterModifier + + + + + + final + + + annotation + + + + + + + + ELLIPSIS + + ... + + + + declaratorBrackets + + + + + + + lb + + LBRACK + + + + + RBRACK + + + + + + + + throwsClause + + + + throws + + + identifier + + + + + + + COMMA + + + identifier + + + + + + + + + + compoundStatement + + + + + lc + + LCURLY + + + + + + + statement + + + + + RCURLY + + + + + + statement + + + + compoundStatement + + + + + declaration + + + SEMI + + + + + + + expression + + + SEMI + + + + + + + + m + + modifiers + + + + + + + enumDefinition + + + classDefinition + + + + + + + + + IDENT + + + + c + + COLON + + + + + statement + + + + + + + if + + + LPAREN + + + expression + + + RPAREN + + + statement + + + + + + + else + + + statement + + + + + + + + + + + for + + + LPAREN + + + + + + + parameterDeclaration + + + COLON + + + expression + + + + + + + forInit + + + SEMI + + + forCond + + + SEMI + + + forIter + + + + + + + RPAREN + + + statement + + + + + + + while + + + LPAREN + + + expression + + + RPAREN + + + statement + + + + + + + do + + + statement + + + while + + + LPAREN + + + expression + + + RPAREN + + + SEMI + + + + + + + break + + + + + IDENT + + + + + SEMI + + + + + + + continue + + + + + IDENT + + + + + SEMI + + + + + + + return + + + + + expression + + + + + SEMI + + + + + + + switch + + + LPAREN + + + expression + + + RPAREN + + + LCURLY + + + + + casesGroup + + + + + RCURLY + + + + + tryBlock + + + + + throw + + + expression + + + SEMI + + + + + + + synchronized + + + LPAREN + + + expression + + + RPAREN + + + compoundStatement + + + + + + + ASSERT + + + expression + + + + + + + COLON + + + expression + + + + + + + SEMI + + + + + + s + + SEMI + + + + + + + + declaration + + + + + m + + modifiers + + + + + + t + + typeSpec + + + + + + v + + variableDefinitions + + + + + + + + variableDefinitions + + + + variableDeclarator + + + + + + + COMMA + + + variableDeclarator + + + + + + + + + + variableDeclarator + + + + + id + + IDENT + + + + + + d + + declaratorBrackets + + + + + + v + + varInitializer + + + + + + + + varInitializer + + + + + + ASSIGN + + + initializer + + + + + + + + initializer + + + + expression + + + arrayInitializer + + + + + + arrayInitializer + + + + + lc + + LCURLY + + + + + + + + + initializer + + + + + + + COMMA + + + initializer + + + + + + + + + + + + + COMMA + + + + + RCURLY + + + + + + COLON + + : + + + + forInit + + + + + + declaration + + + expressionList + + + + + + + + forCond + + + + expression + + + + + + forIter + + + + expressionList + + + + + + casesGroup + + + + + + aCase + + + + + caseSList + + + + + + aCase + + + + + + + + case + + + expression + + + + + default + + + + + COLON + + + + + + caseSList + + + + statement + + + + + + tryBlock + + + + try + + + compoundStatement + + + + + handler + + + + + + + finallyClause + + + + + + + + handler + + + + catch + + + LPAREN + + + parameterDeclaration + + + RPAREN + + + compoundStatement + + + + + + finallyClause + + + + finally + + + compoundStatement + + + + + + ASSERT + + assert + + + + annotationTypeDefinition + + + + AT + + + interface + + + IDENT + + + + ab + + annotationBlock + + + + + + + + annotationBlock + + + + LCURLY + + + + + + + annotationField + + + SEMI + + + + + + + RCURLY + + + + + + annotationField + + + + + mods + + modifiers + + + + + + + + it + + innerTypeDef + + + + + + + + ts + + typeSpec + + + + + + + + + + i + + IDENT + + + + + LPAREN + + + RPAREN + + + + dv + + defaultValue + + + + + SEMI + + + + + + + + v + + variableDefinitions + + + + + SEMI + + + + + + + + + + + + + + defaultValue + + + + + + default + + + annotationMemberValue + + + + + + + + ctorHead + + + + IDENT + + + LPAREN + + + parameterDeclarationList + + + RPAREN + + + + + throwsClause + + + + + + + + constructorBody + + + + + lc + + LCURLY + + + + + + + explicitConstructorInvocation + + + + + + + statement + + + + + RCURLY + + + + + + explicitConstructorInvocation + + + + typeArguments + + + + + + + this + + + + lp1 + + LPAREN + + + + + argList + + + RPAREN + + + SEMI + + + + + + + super + + + + lp2 + + LPAREN + + + + + argList + + + RPAREN + + + SEMI + + + + + + + + + + newArrayDeclarator + + + + + + + lb + + LBRACK + + + + + + + expression + + + + + RBRACK + + + + + + + + STAR + + * + + + + DIV + + / + + + + MOD + + % + + + + SL + + << + + + + LE + + <= + + + + GE + + >= + + + + NOT_EQUAL + + != + + + + EQUAL + + == + + + + BXOR + + ^ + + + + BOR + + | + + + + LAND + + && + + + + LOR + + || + + + + annotationMemberArrayInitializer + + + + + lc + + LCURLY + + + + + + + + + annotationMemberValue + + + + + + + COMMA + + + annotationMemberValue + + + + + + + + + + + + + COMMA + + + + + RCURLY + + + + + + importDefinition + + + + + i + + import + + + + + + + static + + + + + identifierStar + + + SEMI + + + + + + identifierStar + + + + IDENT + + + + + + + DOT + + + IDENT + + + + + + + + + + + DOT + + + STAR + + + + + + + + + + typeDefinition + + + + + + + m + + modifiers + + + + + + + classDefinition + + + enumDefinition + + + interfaceDefinition + + + annotationTypeDefinition + + + + + + + SEMI + + + + + diff --git a/topics/testing/gbtf/tests/java/studman.bgf b/topics/testing/gbtf/tests/java/studman.bgf new file mode 100644 index 00000000..31c693d3 --- /dev/null +++ b/topics/testing/gbtf/tests/java/studman.bgf @@ -0,0 +1,5483 @@ + + + compilationUnit + + compilationUnit + + + + + + packageDefinition + + + + + + + + + + importDefinition + + + + + + + typeDefinition + + + + + + + + packageDefinition + + + + annotations + + + + p + + package + + + + + identifier + + + SEMI + + + + + + annotations + + + + annotation + + + + + + annotation + + + + AT + + + + i + + identifier + + + + + + + + + LPAREN + + + + + + args + + annotationArguments + + + + + + + RPAREN + + + + + + + + + + AT + + @ + + + + identifier + + + + IDENT + + + + + + + DOT + + + IDENT + + + + + + + + + + IDENT + + + + + + a + + + b + + + c + + + d + + + e + + + f + + + g + + + h + + + i + + + j + + + k + + + l + + + m + + + n + + + o + + + p + + + q + + + r + + + s + + + t + + + u + + + v + + + w + + + x + + + y + + + z + + + A + + + B + + + C + + + D + + + E + + + F + + + G + + + H + + + I + + + J + + + K + + + L + + + M + + + N + + + O + + + P + + + Q + + + R + + + S + + + T + + + U + + + V + + + W + + + X + + + Y + + + Z + + + _ + + + $ + + + + + + + + + a + + + b + + + c + + + d + + + e + + + f + + + g + + + h + + + i + + + j + + + k + + + l + + + m + + + n + + + o + + + p + + + q + + + r + + + s + + + t + + + u + + + v + + + w + + + x + + + y + + + z + + + A + + + B + + + C + + + D + + + E + + + F + + + G + + + H + + + I + + + J + + + K + + + L + + + M + + + N + + + O + + + P + + + Q + + + R + + + S + + + T + + + U + + + V + + + W + + + X + + + Y + + + Z + + + _ + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + $ + + + + + + + + + + DOT + + . + + + + LPAREN + + ( + + + + annotationArguments + + + + annotationMemberValueInitializer + + + anntotationMemberValuePairs + + + + + + annotationMemberValueInitializer + + + + conditionalExpression + + + annotation + + + annotationMemberArrayInitializer + + + + + + conditionalExpression + + + + logicalOrExpression + + + + + + + QUESTION + + + assignmentExpression + + + COLON + + + conditionalExpression + + + + + + + + + + logicalOrExpression + + + + logicalAndExpression + + + + + + + LOR + + + logicalAndExpression + + + + + + + + + + logicalAndExpression + + + + inclusiveOrExpression + + + + + + + LAND + + + inclusiveOrExpression + + + + + + + + + + inclusiveOrExpression + + + + exclusiveOrExpression + + + + + + + BOR + + + exclusiveOrExpression + + + + + + + + + + exclusiveOrExpression + + + + andExpression + + + + + + + BXOR + + + andExpression + + + + + + + + + + andExpression + + + + equalityExpression + + + + + + + BAND + + + equalityExpression + + + + + + + + + + equalityExpression + + + + relationalExpression + + + + + + + + + NOT_EQUAL + + + EQUAL + + + + + relationalExpression + + + + + + + + + + relationalExpression + + + + shiftExpression + + + + + + + + + + + LT + + + GT + + + LE + + + GE + + + + + shiftExpression + + + + + + + + + instanceof + + + typeSpec + + + + + + + + + + shiftExpression + + + + additiveExpression + + + + + + + + + SL + + + SR + + + BSR + + + + + additiveExpression + + + + + + + + + + additiveExpression + + + + multiplicativeExpression + + + + + + + + + PLUS + + + MINUS + + + + + multiplicativeExpression + + + + + + + + + + multiplicativeExpression + + + + unaryExpression + + + + + + + + + STAR + + + DIV + + + MOD + + + + + unaryExpression + + + + + + + + + + unaryExpression + + + + + + INC + + + unaryExpression + + + + + + + DEC + + + unaryExpression + + + + + + + MINUS + + + unaryExpression + + + + + + + PLUS + + + unaryExpression + + + + + unaryExpressionNotPlusMinus + + + + + + INC + + ++ + + + + DEC + + -- + + + + MINUS + + - + + + + PLUS + + + + + + + unaryExpressionNotPlusMinus + + + + + + BNOT + + + unaryExpression + + + + + + + LNOT + + + unaryExpression + + + + + + + + lpb + + LPAREN + + + + + builtInTypeSpec + + + RPAREN + + + unaryExpression + + + + + + + + lp + + LPAREN + + + + + classTypeSpec + + + RPAREN + + + unaryExpressionNotPlusMinus + + + + + postfixExpression + + + + + + BNOT + + ~ + + + + LNOT + + ! + + + + builtInTypeSpec + + + + builtInType + + + + + + + + lb + + LBRACK + + + + + RBRACK + + + + + + + + + + builtInType + + + + void + + + boolean + + + byte + + + char + + + short + + + int + + + float + + + long + + + double + + + + + + LBRACK + + [ + + + + RBRACK + + ] + + + + RPAREN + + ) + + + + classTypeSpec + + + + classOrInterfaceType + + + + + + + + lb + + LBRACK + + + + + RBRACK + + + + + + + + + + classOrInterfaceType + + + + IDENT + + + + + typeArguments + + + + + + + + + DOT + + + IDENT + + + + + typeArguments + + + + + + + + + + + + typeArguments + + + + LT + + + typeArgument + + + + + + + COMMA + + + typeArgument + + + + + + + + + typeArgumentsOrParametersEnd + + + + + + + + LT + + < + + + + typeArgument + + + + typeArgumentSpec + + + wildcardType + + + + + + typeArgumentSpec + + + + classTypeSpec + + + builtInTypeArraySpec + + + + + + builtInTypeArraySpec + + + + builtInType + + + + + + + + lb + + LBRACK + + + + + RBRACK + + + + + + + + + + wildcardType + + + + + q + + QUESTION + + + + + + + typeArgumentBounds + + + + + + + + QUESTION + + ? + + + + typeArgumentBounds + + + + + + extends + + + super + + + + + classOrInterfaceType + + + + + + COMMA + + , + + + + typeArgumentsOrParametersEnd + + + + GT + + + SR + + + BSR + + + + + + GT + + > + + + + SR + + >> + + + + BSR + + >>> + + + + postfixExpression + + + + primaryExpression + + + + + + + + + DOT + + + + + typeArguments + + + + + + + + + IDENT + + + + + + + + lp + + LPAREN + + + + + argList + + + RPAREN + + + + + + + + + + + super + + + + + + + + lp3 + + LPAREN + + + + + argList + + + RPAREN + + + + + + + DOT + + + + + typeArguments + + + + + IDENT + + + + + + + + lps + + LPAREN + + + + + argList + + + RPAREN + + + + + + + + + + + + + + + + + + + DOT + + + this + + + + + + + DOT + + + newExpression + + + + + + + + lb + + LBRACK + + + + + expression + + + RBRACK + + + + + + + + + + + + + + in + + INC + + + + + + de + + DEC + + + + + + + + + + + + primaryExpression + + + + + + identPrimary + + + + + + + DOT + + + class + + + + + + + + + constant + + + true + + + false + + + null + + + newExpression + + + this + + + super + + + + + LPAREN + + + assignmentExpression + + + RPAREN + + + + + + + builtInType + + + + + + + + lbt + + LBRACK + + + + + RBRACK + + + + + + + DOT + + + class + + + + + + + + identPrimary + + + + + + + ta1 + + typeArguments + + + + + + + IDENT + + + + + + + + + DOT + + + + + + ta2 + + typeArguments + + + + + + + IDENT + + + + + + + + + + + + + + + + + + + lp + + LPAREN + + + + + argList + + + RPAREN + + + + + + + + + + lbc + + LBRACK + + + + + RBRACK + + + + + + + + + + + + + + argList + + + + expressionList + + + + + + + + + expressionList + + + + expression + + + + + + + COMMA + + + expression + + + + + + + + + + expression + + assignmentExpression + + + + assignmentExpression + + + + conditionalExpression + + + + + + + + + ASSIGN + + + PLUS_ASSIGN + + + MINUS_ASSIGN + + + STAR_ASSIGN + + + DIV_ASSIGN + + + MOD_ASSIGN + + + SR_ASSIGN + + + BSR_ASSIGN + + + SL_ASSIGN + + + BAND_ASSIGN + + + BXOR_ASSIGN + + + BOR_ASSIGN + + + + + assignmentExpression + + + + + + + + + + ASSIGN + + = + + + + PLUS_ASSIGN + + += + + + + MINUS_ASSIGN + + -= + + + + STAR_ASSIGN + + *= + + + + DIV_ASSIGN + + /= + + + + MOD_ASSIGN + + %= + + + + SR_ASSIGN + + >>= + + + + BSR_ASSIGN + + >>>= + + + + SL_ASSIGN + + <<= + + + + BAND_ASSIGN + + &= + + + + BXOR_ASSIGN + + ^= + + + + BOR_ASSIGN + + |= + + + + constant + + + + NUM_INT + + + CHAR_LITERAL + + + STRING_LITERAL + + + NUM_FLOAT + + + NUM_LONG + + + NUM_DOUBLE + + + + + + NUM_INT + + + + + + . + + + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + EXPONENT + + + + + + + + f1 + + FLOAT_SUFFIX + + + + + + + + + .. + + + + + + + + + + + + + + + 0 + + + + + + + + + + + x + + + X + + + + + + + HEX_DIGIT + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + + + + + + + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + + + + + + + l + + + L + + + + + . + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + EXPONENT + + + + + + + + f2 + + FLOAT_SUFFIX + + + + + + + + + + + EXPONENT + + + + + + f3 + + FLOAT_SUFFIX + + + + + + + + + + f4 + + FLOAT_SUFFIX + + + + + + + + + + + + + + EXPONENT + + + + + + e + + + E + + + + + + + + + + + + + - + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + + FLOAT_SUFFIX + + + + f + + + F + + + d + + + D + + + + + + HEX_DIGIT + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + A + + + B + + + C + + + D + + + E + + + F + + + a + + + b + + + c + + + d + + + e + + + f + + + + + + CHAR_LITERAL + + + + \' + + + + + ESC + + + string + + + + + \' + + + + + + ESC + + + + \\ + + + + + n + + + r + + + t + + + b + + + f + + + " + + + \' + + + \\ + + + + + + + u + + + + + HEX_DIGIT + + + HEX_DIGIT + + + HEX_DIGIT + + + HEX_DIGIT + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + + + + + + + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + + + + + + + + + + + + STRING_LITERAL + + + + " + + + + + + + ESC + + + string + + + + + + + " + + + + + + NUM_FLOAT + + + + int + + + + + EXPONENT + + + + + + + f + + + F + + + + + + + + NUM_LONG + + + + int + + + + + l + + + L + + + + + + + + NUM_DOUBLE + + + + int + + + + + EXPONENT + + + + + + + + + d + + + D + + + + + + + + + + newExpression + + + + new + + + + + typeArguments + + + + + type + + + + + + + LPAREN + + + argList + + + RPAREN + + + + + classBlock + + + + + + + + + newArrayDeclarator + + + + + arrayInitializer + + + + + + + + + + + + type + + + + classOrInterfaceType + + + builtInType + + + + + + classBlock + + + + LCURLY + + + + + + + classField + + + SEMI + + + + + + + RCURLY + + + + + + LCURLY + + { + + + + classField + + + + + + + mods + + modifiers + + + + + + + + td + + typeDefinitionInternal + + + + + + + + + + tp + + typeParameters + + + + + + + + + + + + h + + ctorHead + + + + + + s + + constructorBody + + + + + + + + + + t + + typeSpec + + + + + + + + + IDENT + + + LPAREN + + + + param + + parameterDeclarationList + + + + + RPAREN + + + + rt + + declaratorBrackets + + + + + + + + tc + + throwsClause + + + + + + + + + + s2 + + compoundStatement + + + + + SEMI + + + + + + + + + + v + + variableDefinitions + + + + + SEMI + + + + + + + + + + + + + + + + + + + static + + + + s3 + + compoundStatement + + + + + + + + s4 + + compoundStatement + + + + + + + + modifiers + + + + + + modifier + + + annotation + + + + + + + + modifier + + + + private + + + public + + + protected + + + static + + + transient + + + final + + + abstract + + + native + + + threadsafe + + + synchronized + + + volatile + + + strictfp + + + + + + typeDefinitionInternal + + + + classDefinition + + + interfaceDefinition + + + enumDefinition + + + annotationDefinition + + + + + + classDefinition + + + + class + + + IDENT + + + + + + tp + + typeParameters + + + + + + + + sc + + superClassClause + + + + + + ic + + implementsClause + + + + + + cb + + classBlock + + + + + + + + typeParameters + + + + LT + + + typeParameter + + + + + + + COMMA + + + typeParameter + + + + + + + + + typeArgumentsOrParametersEnd + + + + + + + + typeParameter + + + + + id + + IDENT + + + + + + + typeParameterBounds + + + + + + + + typeParameterBounds + + + + extends + + + classOrInterfaceType + + + + + + + BAND + + + classOrInterfaceType + + + + + + + + + + BAND + + & + + + + superClassClause + + + + + + extends + + + + c + + classOrInterfaceType + + + + + + + + + + implementsClause + + + + + + + i + + implements + + + + + classOrInterfaceType + + + + + + + COMMA + + + classOrInterfaceType + + + + + + + + + + + + interfaceDefinition + + + + interface + + + IDENT + + + + + + tp + + typeParameters + + + + + + + + ie + + interfaceExtends + + + + + + ib + + interfaceBlock + + + + + + + + interfaceExtends + + + + + + + e + + extends + + + + + classOrInterfaceType + + + + + + + COMMA + + + classOrInterfaceType + + + + + + + + + + + + interfaceBlock + + + + LCURLY + + + + + + + interfaceField + + + SEMI + + + + + + + RCURLY + + + + + + interfaceField + + + + + mods + + modifiers + + + + + + + + td + + typeDefinitionInternal + + + + + + + + + + tp + + typeParameters + + + + + + + + t + + typeSpec + + + + + + + + + IDENT + + + LPAREN + + + + param + + parameterDeclarationList + + + + + RPAREN + + + + rt + + declaratorBrackets + + + + + + + + tc + + throwsClause + + + + + + + SEMI + + + + + + + + v + + variableDefinitions + + + + + SEMI + + + + + + + + + + + + + + typeSpec + + + + classTypeSpec + + + builtInTypeSpec + + + + + + parameterDeclarationList + + + + + + + + parameterDeclaration + + + + + + + COMMA + + + parameterDeclaration + + + + + + + + + + + COMMA + + + variableLengthParameterDeclaration + + + + + + + + + variableLengthParameterDeclaration + + + + + + + + parameterDeclaration + + + + + pm + + parameterModifier + + + + + + t + + typeSpec + + + + + + id + + IDENT + + + + + + pd + + declaratorBrackets + + + + + + + + parameterModifier + + + + + + annotation + + + + + + + + f + + final + + + + + + + + + annotation + + + + + + + + declaratorBrackets + + + + + + + lb + + LBRACK + + + + + RBRACK + + + + + + + + variableLengthParameterDeclaration + + + + + pm + + parameterModifier + + + + + + t + + typeSpec + + + + + TRIPLE_DOT + + + + id + + IDENT + + + + + + pd + + declaratorBrackets + + + + + + + + TRIPLE_DOT + + ... + + + + throwsClause + + + + throws + + + identifier + + + + + + + COMMA + + + identifier + + + + + + + + + + SEMI + + ; + + + + variableDefinitions + + + + variableDeclarator + + + + + + + COMMA + + + variableDeclarator + + + + + + + + + + variableDeclarator + + + + + id + + IDENT + + + + + + d + + declaratorBrackets + + + + + + v + + varInitializer + + + + + + + + varInitializer + + + + + + ASSIGN + + + initializer + + + + + + + + initializer + + + + expression + + + arrayInitializer + + + + + + arrayInitializer + + + + + lc + + LCURLY + + + + + + + + + initializer + + + + + + + COMMA + + + initializer + + + + + + + + + COMMA + + + + + + + + + RCURLY + + + + + + RCURLY + + } + + + + enumDefinition + + + + enum + + + IDENT + + + + ic + + implementsClause + + + + + + eb + + enumBlock + + + + + + + + enumBlock + + + + LCURLY + + + + + + + enumConstant + + + + + + + COMMA + + + enumConstant + + + + + + + + + COMMA + + + + + + + + + + + + + SEMI + + + + + + + classField + + + SEMI + + + + + + + + + + + RCURLY + + + + + + enumConstant + + + + + an + + annotations + + + + + + i + + IDENT + + + + + + + + + LPAREN + + + + a + + argList + + + + + RPAREN + + + + + + + + + + b + + enumConstantBlock + + + + + + + + + + enumConstantBlock + + + + LCURLY + + + + + + + enumConstantField + + + SEMI + + + + + + + RCURLY + + + + + + enumConstantField + + + + + + + mods + + modifiers + + + + + + + + td + + typeDefinitionInternal + + + + + + + + + + tp + + typeParameters + + + + + + + + t + + typeSpec + + + + + + + + + IDENT + + + LPAREN + + + + param + + parameterDeclarationList + + + + + RPAREN + + + + rt + + declaratorBrackets + + + + + + + + tc + + throwsClause + + + + + + + + + + s2 + + compoundStatement + + + + + SEMI + + + + + + + + + + v + + variableDefinitions + + + + + SEMI + + + + + + + + + + + + + + s4 + + compoundStatement + + + + + + + + compoundStatement + + + + + lc + + LCURLY + + + + + + + statement + + + + + RCURLY + + + + + + statement + + + + compoundStatement + + + + + declaration + + + SEMI + + + + + + + expression + + + SEMI + + + + + + + + m + + modifiers + + + + + classDefinition + + + + + + + IDENT + + + + c + + COLON + + + + + statement + + + + + + + if + + + LPAREN + + + expression + + + RPAREN + + + statement + + + + + + + else + + + statement + + + + + + + + + forStatement + + + + + while + + + LPAREN + + + expression + + + RPAREN + + + statement + + + + + + + do + + + statement + + + while + + + LPAREN + + + expression + + + RPAREN + + + SEMI + + + + + + + break + + + + + IDENT + + + + + SEMI + + + + + + + continue + + + + + IDENT + + + + + SEMI + + + + + + + return + + + + + expression + + + + + SEMI + + + + + + + switch + + + LPAREN + + + expression + + + RPAREN + + + LCURLY + + + + + casesGroup + + + + + RCURLY + + + + + tryBlock + + + + + throw + + + expression + + + SEMI + + + + + + + synchronized + + + LPAREN + + + expression + + + RPAREN + + + compoundStatement + + + + + + + assert + + + expression + + + + + + + COLON + + + expression + + + + + + + SEMI + + + + + + s + + SEMI + + + + + + + + declaration + + + + + m + + modifiers + + + + + + t + + typeSpec + + + + + + v + + variableDefinitions + + + + + + + + COLON + + : + + + + forStatement + + + + + f + + for + + + + + LPAREN + + + + + traditionalForClause + + + forEachClause + + + + + RPAREN + + + statement + + + + + + traditionalForClause + + + + forInit + + + SEMI + + + forCond + + + SEMI + + + forIter + + + + + + forInit + + + + + + declaration + + + expressionList + + + + + + + + forCond + + + + expression + + + + + + forIter + + + + expressionList + + + + + + forEachClause + + + + + p + + parameterDeclaration + + + + + COLON + + + expression + + + + + + casesGroup + + + + + + aCase + + + + + caseSList + + + + + + aCase + + + + + + + + case + + + expression + + + + + default + + + + + COLON + + + + + + caseSList + + + + statement + + + + + + tryBlock + + + + try + + + compoundStatement + + + + + handler + + + + + + + finallyClause + + + + + + + + handler + + + + catch + + + LPAREN + + + parameterDeclaration + + + RPAREN + + + compoundStatement + + + + + + finallyClause + + + + finally + + + compoundStatement + + + + + + annotationDefinition + + + + AT + + + interface + + + IDENT + + + + ab + + annotationBlock + + + + + + + + annotationBlock + + + + LCURLY + + + + + + + annotationField + + + SEMI + + + + + + + RCURLY + + + + + + annotationField + + + + + mods + + modifiers + + + + + + + + td + + typeDefinitionInternal + + + + + + + + t + + typeSpec + + + + + + + + + + i + + IDENT + + + + + LPAREN + + + RPAREN + + + + rt + + declaratorBrackets + + + + + + + + + default + + + + amvi + + annotationMemberValueInitializer + + + + + + + + + SEMI + + + + + + + + v + + variableDefinitions + + + + + SEMI + + + + + + + + + + + + + + ctorHead + + + + IDENT + + + LPAREN + + + parameterDeclarationList + + + RPAREN + + + + + throwsClause + + + + + + + + constructorBody + + + + + lc + + LCURLY + + + + + + + explicitConstructorInvocation + + + + + + + statement + + + + + RCURLY + + + + + + explicitConstructorInvocation + + + + + + typeArguments + + + + + + + + + this + + + + lp1 + + LPAREN + + + + + argList + + + RPAREN + + + SEMI + + + + + + + super + + + + lp2 + + LPAREN + + + + + argList + + + RPAREN + + + SEMI + + + + + + + + + + newArrayDeclarator + + + + + + + lb + + LBRACK + + + + + + + expression + + + + + RBRACK + + + + + + + + STAR + + * + + + + DIV + + / + + + + MOD + + % + + + + SL + + << + + + + LE + + <= + + + + GE + + >= + + + + NOT_EQUAL + + != + + + + EQUAL + + == + + + + BXOR + + ^ + + + + BOR + + | + + + + LAND + + && + + + + LOR + + || + + + + annotationMemberArrayInitializer + + + + + lc + + LCURLY + + + + + + + + + annotationMemberArrayValueInitializer + + + + + + + COMMA + + + annotationMemberArrayValueInitializer + + + + + + + + + COMMA + + + + + + + + + RCURLY + + + + + + annotationMemberArrayValueInitializer + + + + conditionalExpression + + + annotation + + + + + + anntotationMemberValuePairs + + + + annotationMemberValuePair + + + + + + + COMMA + + + annotationMemberValuePair + + + + + + + + + + annotationMemberValuePair + + + + + i + + IDENT + + + + + ASSIGN + + + + v + + annotationMemberValueInitializer + + + + + + + + importDefinition + + + + + i + + import + + + + + + + static + + + + + identifierStar + + + SEMI + + + + + + identifierStar + + + + IDENT + + + + + + + DOT + + + IDENT + + + + + + + + + + + DOT + + + STAR + + + + + + + + + + typeDefinition + + + + + + + m + + modifiers + + + + + typeDefinitionInternal + + + + + SEMI + + + + +