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
+
+
+
+
+