| parseModuleDeclarationRest(Java.Modifier[]) |  | 0% |  | 0% | 12 | 12 | 50 | 50 | 1 | 1 |
| parseAbstractCompilationUnit() |  | 0% |  | 0% | 9 | 9 | 30 | 30 | 1 | 1 |
| parsePackageMemberTypeDeclarationRest(String, Java.Modifier[]) |  | 0% |  | 0% | 9 | 9 | 12 | 12 | 1 | 1 |
| parseLambdaParameters() |   | 13% |   | 8% | 6 | 7 | 11 | 13 | 0 | 1 |
| verifyStringIsConventionalPackageName(String, Location) |  | 0% |  | 0% | 6 | 6 | 9 | 9 | 1 | 1 |
| parseAnnotationTypeDeclarationRest(String, Java.Modifier[], Parser.InterfaceDeclarationContext) |  | 0% |  | 0% | 3 | 3 | 12 | 12 | 1 | 1 |
| parsePackageDeclarationRest(String, Java.Modifier[]) |  | 0% | | n/a | 1 | 1 | 7 | 7 | 1 | 1 |
| parseClassDeclarationRest(String, Java.Modifier[], Parser.ClassDeclarationContext) |   | 74% |   | 80% | 2 | 6 | 3 | 22 | 0 | 1 |
| parseInterfaceDeclarationRest(String, Java.Modifier[], Parser.InterfaceDeclarationContext) |   | 65% |   | 66% | 2 | 4 | 3 | 16 | 0 | 1 |
| parseEnumDeclarationRest(String, Java.Modifier[], Parser.ClassDeclarationContext) |   | 71% |   | 80% | 2 | 6 | 3 | 19 | 0 | 1 |
| packageMemberClassModifiers(Java.Modifier[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseInterfaceBody(Java.InterfaceDeclaration) |   | 94% |   | 76% | 11 | 27 | 4 | 82 | 0 | 1 |
| parseMethodDeclarationRest(String, Java.Modifier[], Java.TypeParameter[], Java.Type, String, boolean, Parser.MethodDeclarationContext) |   | 86% |   | 75% | 5 | 13 | 2 | 28 | 0 | 1 |
| packageMemberInterfaceModifiers(Java.Modifier[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseMethodDeclaration(boolean, Parser.MethodDeclarationContext) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| parseSelector(Java.Atom) |   | 93% |   | 95% | 1 | 12 | 1 | 51 | 0 | 1 |
| parsePrimary() |   | 97% |   | 97% | 2 | 44 | 0 | 125 | 0 | 1 |
| parseVoidOrType() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| annotationTypeElementModifiers(Java.Modifier[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setWarningHandler(WarningHandler) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| parsePackageDeclaration() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parsePackageMemberTypeDeclaration() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| warning(String, String, Location) |  | 40% |   | 50% | 1 | 2 | 1 | 3 | 0 | 1 |
| packageModifiers(Java.Modifier[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseMethodDeclaration() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseType() |  | 96% |   | 91% | 1 | 11 | 1 | 13 | 0 | 1 |
| parseTryStatement() |  | 96% |   | 94% | 1 | 10 | 1 | 25 | 0 | 1 |
| parseAnnotation() |  | 95% |   | 90% | 1 | 6 | 1 | 16 | 0 | 1 |
| parseLiteral() |  | 94% |   | 87% | 1 | 8 | 1 | 10 | 0 | 1 |
| join(String[], String) |  | 88% |   | 66% | 2 | 4 | 0 | 6 | 0 | 1 |
| setSourceVersion(int) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getScanner() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseMethodBody() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseClassBodyDeclaration(Java.AbstractClassDeclaration) |  | 100% |   | 83% | 7 | 22 | 0 | 69 | 0 | 1 |
| parseForStatement() |  | 100% |  | 100% | 0 | 11 | 0 | 55 | 0 | 1 |
| parseRelationalExpression() |  | 100% |  | 100% | 0 | 17 | 0 | 45 | 0 | 1 |
| parseBlockStatement() |  | 100% |   | 94% | 1 | 10 | 0 | 28 | 0 | 1 |
| parseUnaryExpression() |  | 100% |  | 100% | 0 | 9 | 0 | 31 | 0 | 1 |
| parseConstructorDeclarator(String, Java.Modifier[]) |  | 100% |  | 100% | 0 | 7 | 0 | 31 | 0 | 1 |
| checkModifiers(Java.Modifier[], String[]) |  | 100% |  | 100% | 0 | 8 | 0 | 23 | 0 | 1 |
| parseStatement() |  | 100% |  | 100% | 0 | 17 | 0 | 18 | 0 | 1 |
| verifyIdentifierIsConventionalFieldName(String, Location) |  | 100% |  | 100% | 0 | 10 | 0 | 14 | 0 | 1 |
| parseTypeArgument() |  | 100% |  | 100% | 0 | 8 | 0 | 16 | 0 | 1 |
| parseSwitchStatement() |  | 100% |  | 100% | 0 | 6 | 0 | 24 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| parseAssignmentExpression() |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| parseImportDeclarationBody() |  | 100% |  | 100% | 0 | 5 | 0 | 18 | 0 | 1 |
| parseResource() |  | 100% |   | 87% | 1 | 5 | 0 | 14 | 0 | 1 |
| verifyIdentifierIsConventionalClassOrInterfaceName(String, Location) |  | 100% |  | 100% | 0 | 5 | 0 | 9 | 0 | 1 |
| verifyIdentifierIsConventionalMethodName(String, Location) |  | 100% |  | 100% | 0 | 5 | 0 | 9 | 0 | 1 |
| verifyIdentifierIsConventionalLocalVariableOrParameterName(String, Location) |  | 100% |  | 100% | 0 | 5 | 0 | 9 | 0 | 1 |
| parseCatchParameter() |  | 100% |  | 100% | 0 | 2 | 0 | 11 | 0 | 1 |
| parseFormalParameterListRest(Java.Type) |  | 100% |  | 100% | 0 | 3 | 0 | 9 | 0 | 1 |
| parseTypeArgumentsOpt() |  | 100% |  | 100% | 0 | 4 | 0 | 7 | 0 | 1 |
| hasAccessModifierOtherThan(Java.Modifier[], String[]) |  | 100% |  | 100% | 0 | 5 | 0 | 6 | 0 | 1 |
| parseFormalParameterRest(Java.Modifier[], Java.Type, boolean[]) |  | 100% |  | 100% | 0 | 3 | 0 | 9 | 0 | 1 |
| hasAccessModifier(Java.Modifier[], String[]) |  | 100% |  | 100% | 0 | 5 | 0 | 4 | 0 | 1 |
| parseFieldDeclarationRest(String) |  | 100% |  | 100% | 0 | 2 | 0 | 9 | 0 | 1 |
| parseTypeParameter() |  | 100% |  | 100% | 0 | 3 | 0 | 7 | 0 | 1 |
| methodModifiers(Java.Modifier[]) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| parseTypeParametersOpt() |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| parseFormalParameterList() |  | 100% |  | 100% | 0 | 3 | 0 | 8 | 0 | 1 |
| parseArrayInitializer() |  | 100% |  | 100% | 0 | 3 | 0 | 9 | 0 | 1 |
| parseShiftExpression() |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| parseMultiplicativeExpression() |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| peekLiteral() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| parseQualifiedIdentifier() |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| parseElementValueArrayInitializer() |  | 100% |  | 100% | 0 | 3 | 0 | 7 | 0 | 1 |
| parseEnumBody(Java.EnumDeclaration) |  | 100% |  | 100% | 0 | 4 | 0 | 7 | 0 | 1 |
| parseIfStatement() |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| parseEqualityExpression() |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| parseAdditiveExpression() |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| classModifiers(Java.Modifier[]) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| fieldModifiers(Java.Modifier[]) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| parseOptionalModifier() |  | 100% |  | 100% | 0 | 4 | 0 | 6 | 0 | 1 |
| parseConditionalExpression() |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| parseEnumConstant() |  | 100% |  | 100% | 0 | 3 | 0 | 9 | 0 | 1 |
| parseDoStatement() |  | 100% | | n/a | 0 | 1 | 0 | 9 | 0 | 1 |
| parseDimExprs() |  | 100% |  | 100% | 0 | 3 | 0 | 5 | 0 | 1 |
| interfaceModifiers(Java.Modifier[]) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| interfaceMethodModifiers(Java.Modifier[]) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| parseBlockStatements() |  | 100% |  | 100% | 0 | 5 | 0 | 8 | 0 | 1 |
| parseVariableDeclarators() |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| parseAssertStatement() |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| parseReferenceTypeList() |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| parseBreakStatement() |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| parseReturnStatement() |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| parseConditionalOrExpression() |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| parseConditionalAndExpression() |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| parseInclusiveOrExpression() |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| parseExclusiveOrExpression() |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| parseAndExpression() |  | 100% |  | 100% | 0 | 2 | 0 | 8 | 0 | 1 |
| parseFormalParameter(boolean[]) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| parseVariableDeclaratorRest(String) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| parseWhileStatement() |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| parseSynchronizedStatement() |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| parseReferenceType() |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| parseModifiers() |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| parseExpressionOrType() |  | 100% |  | 100% | 0 | 3 | 0 | 4 | 0 | 1 |
| parseFormalParameters() |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| parseBracketsOpt() |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| parseExpressionList() |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| parseArgumentList() |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| parseContinueStatement() |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| parseLambdaExpression() |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| parseElementValue() |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 1 |
| parseBlock() |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| parseThrowStatement() |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| parseArguments() |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| constructorModifiers(Java.Modifier[]) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| constantModifiers(Java.Modifier[]) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| parseLabeledStatement() |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| parseLambdaBody() |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| Parser(Scanner, TokenStream) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| parseExpression() |  | 100% |  | 100% | 0 | 3 | 0 | 2 | 0 | 1 |
| parseElementValuePair() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| parseClassBody(Java.AbstractClassDeclaration) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| parseImportDeclaration() |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| parseEmptyStatement() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| parseReferenceType(Java.Annotation[]) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| parseDimExpr() |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| parseExpressionStatement() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| getSourceVersion() |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| parseVariableInitializer() |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| peekNextButOne(TokenType) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| variableModifiers(Java.Modifier[]) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| enumConstantModifiers(Java.Modifier[]) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| Parser(Scanner) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| doc() |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| warning(String, String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| parseVariableDeclarator() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| compileException(String, Location) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| peek(String) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| peek(String[]) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| peek(TokenType) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| peek(TokenType[]) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| peekNextButOne(String) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| read(String) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| read(String[]) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| read(TokenType) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| peekRead(String) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| peekRead(String[]) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| peekRead(TokenType) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| compileException(String) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| location() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| peek() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| read() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| peekNextButOne() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |