From e5bf0b3f82407e1589a4952e3b7fe2a93d583345 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Sun, 23 Aug 2020 18:33:17 +0200 Subject: [PATCH] Turn ParserCornerTest into a tree dump test --- .../pmd/lang/java/ast/ParserCornersTest.java | 163 +-- .../sourceforge/pmd/lang/java/ast/Bug1429.txt | 100 ++ .../sourceforge/pmd/lang/java/ast/Bug1530.txt | 19 + .../pmd/lang/java/ast/EmptyStmts1.java | 4 + .../pmd/lang/java/ast/EmptyStmts1.txt | 7 + .../pmd/lang/java/ast/EmptyStmts2.java | 4 + .../pmd/lang/java/ast/EmptyStmts2.txt | 6 + .../pmd/lang/java/ast/EmptyStmts3.java | 4 + .../pmd/lang/java/ast/EmptyStmts3.txt | 9 + .../pmd/lang/java/ast/GitHubBug207.txt | 23 + .../pmd/lang/java/ast/GitHubBug208.txt | 26 + .../pmd/lang/java/ast/GitHubBug309.txt | 45 + .../pmd/lang/java/ast/LambdaBug1333.java | 19 + .../pmd/lang/java/ast/LambdaBug1333.txt | 63 + .../pmd/lang/java/ast/LambdaBug1470.txt | 77 ++ .../pmd/lang/java/ast/LambdaBug206.java | 8 + .../pmd/lang/java/ast/LambdaBug206.txt | 19 + .../pmd/lang/java/ast/ParserCornerCases.txt | 639 ++++++++++ .../pmd/lang/java/ast/ParserCornerCases17.txt | 590 +++++++++ .../pmd/lang/java/ast/ParserCornerCases18.txt | 1095 +++++++++++++++++ .../pmd/lang/java/ast/SwitchStatements.txt | 39 + .../lang/java/ast/SwitchWithFallthrough.txt | 22 + .../pmd/lang/ast/test/BaseTreeDumpTest.kt | 3 +- 23 files changed, 2876 insertions(+), 108 deletions(-) create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/Bug1429.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/Bug1530.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts1.java create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts1.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts2.java create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts2.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts3.java create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts3.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/GitHubBug207.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/GitHubBug208.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/GitHubBug309.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug1333.java create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug1333.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug1470.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug206.java create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug206.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/ParserCornerCases.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/ParserCornerCases17.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/ParserCornerCases18.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/SwitchStatements.txt create mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/SwitchWithFallthrough.txt diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/ast/ParserCornersTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/ast/ParserCornersTest.java index 55de83663f..ada51709ee 100644 --- a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/ast/ParserCornersTest.java +++ b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/ast/ParserCornersTest.java @@ -4,34 +4,38 @@ package net.sourceforge.pmd.lang.java.ast; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - import java.util.List; import java.util.Map; +import org.checkerframework.checker.nullness.qual.NonNull; import org.junit.Assert; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import net.sourceforge.pmd.lang.ast.NodeStream; import net.sourceforge.pmd.lang.ast.TokenMgrError; +import net.sourceforge.pmd.lang.ast.test.BaseParsingHelper; +import net.sourceforge.pmd.lang.java.BaseJavaTreeDumpTest; import net.sourceforge.pmd.lang.java.JavaParsingHelper; import net.sourceforge.pmd.lang.symboltable.NameDeclaration; import net.sourceforge.pmd.lang.symboltable.NameOccurrence; -public class ParserCornersTest extends BaseParserTest { - - private static final String MULTICATCH = "public class Foo { public void bar() { " - + "try { System.out.println(); } catch (RuntimeException | IOException e) {} } }"; +public class ParserCornersTest extends BaseJavaTreeDumpTest { + private final JavaParsingHelper java = JavaParsingHelper.WITH_PROCESSING.withResourceContext(getClass()); private final JavaParsingHelper java4 = java.withDefaultVersion("1.4"); private final JavaParsingHelper java7 = java.withDefaultVersion("1.7"); + private final JavaParsingHelper java8 = java.withDefaultVersion("1.8"); + private final JavaParsingHelper java5 = java.withDefaultVersion("1.7"); @Rule public ExpectedException expect = ExpectedException.none(); + @Override + public @NonNull BaseParsingHelper getParser() { + return java4; + } + @Test public void testInvalidUnicodeEscape() { expect.expect(TokenMgrError.class); // previously Error @@ -58,25 +62,25 @@ public class ParserCornersTest extends BaseParserTest { @Test public void testDiamondUsageJava8() { java8.parse("public class PMDExceptionTest {\n" - + " private Component makeUI() {\n" - + " String[] model = {\"123456\", \"7890\"};\n" - + " JComboBox comboBox = new JComboBox<>(model);\n" - + " comboBox.setEditable(true);\n" - + " comboBox.setEditor(new BasicComboBoxEditor() {\n" - + " private Component editorComponent;\n" - + " @Override public Component getEditorComponent() {\n" - + " if (editorComponent == null) {\n" - + " JTextField tc = (JTextField) super.getEditorComponent();\n" - + " editorComponent = new JLayer<>(tc, new ValidationLayerUI<>());\n" - + " }\n" - + " return editorComponent;\n" - + " }\n" - + " });\n" - + " JPanel p = new JPanel();\n" - + " p.add(comboBox);\n" - + " return p;\n" - + " }\n" - + "}"); + + " private Component makeUI() {\n" + + " String[] model = {\"123456\", \"7890\"};\n" + + " JComboBox comboBox = new JComboBox<>(model);\n" + + " comboBox.setEditable(true);\n" + + " comboBox.setEditor(new BasicComboBoxEditor() {\n" + + " private Component editorComponent;\n" + + " @Override public Component getEditorComponent() {\n" + + " if (editorComponent == null) {\n" + + " JTextField tc = (JTextField) super.getEditorComponent();\n" + + " editorComponent = new JLayer<>(tc, new ValidationLayerUI<>());\n" + + " }\n" + + " return editorComponent;\n" + + " }\n" + + " });\n" + + " JPanel p = new JPanel();\n" + + " p.add(comboBox);\n" + + " return p;\n" + + " }\n" + + "}"); } @Test @@ -101,24 +105,17 @@ public class ParserCornersTest extends BaseParserTest { @Test public void testParsersCases15() { - java5.parseResource("ParserCornerCases.java"); + doTest("ParserCornerCases", java5); } @Test public void testParsersCases17() { - java7.parseResource("ParserCornerCases17.java"); + doTest("ParserCornerCases17", java7); } @Test public void testParsersCases18() { - ASTCompilationUnit cu = java8.parseResource("ParserCornerCases18.java"); - - NodeStream formals = cu.descendants(ASTFormalParameter.class) - .crossFindBoundaries() - .cached(); - Assert.assertEquals(21, formals.count()); - Assert.assertEquals(4, formals.filter(ASTFormalParameter::isExplicitReceiverParameter).count()); - Assert.assertEquals(17, formals.filter(it -> !it.isExplicitReceiverParameter()).count()); + doTest("ParserCornerCases18", java8); } /** @@ -126,19 +123,12 @@ public class ParserCornersTest extends BaseParserTest { */ @Test public void testLambdaBug1333() { - java8.parse("final class Bug1333 {\n" - + " private static final Logger LOG = LoggerFactory.getLogger(Foo.class);\n" + "\n" - + " public void deleteDirectoriesByNamePattern() {\n" - + " delete(path -> deleteDirectory(path));\n" + " }\n" + "\n" - + " private void delete(Consumer consumer) {\n" - + " LOG.debug(consumer.toString());\n" + " }\n" + "\n" - + " private void deleteDirectory(String path) {\n" + " LOG.debug(path);\n" + " }\n" - + "}"); + doTest("LambdaBug1333", java8); } @Test public void testLambdaBug1470() { - java8.parseResource("LambdaBug1470.java"); + doTest("LambdaBug1470", java8); } /** @@ -146,96 +136,59 @@ public class ParserCornersTest extends BaseParserTest { */ @Test public void emptyFileJustComment() { - java8.parse("// just a comment"); + getParser().parse("// just a comment"); } - @Test - public void testMultipleExceptionCatchingJava7() { - java7.parse(MULTICATCH); - } - @Test public void testBug1429ParseError() { - java8.parseResource("Bug1429.java"); + doTest("Bug1429", java8); } @Test public void testBug1530ParseError() { - java8.parseResource("Bug1530.java"); + doTest("Bug1530", java8); } @Test public void testGitHubBug207() { - java8.parseResource("GitHubBug207.java"); + doTest("GitHubBug207", java8); } @Test public void testBug206() { - java8.parse("public @interface Foo {" + "\n" - + "static final ThreadLocal> interner =" + "\n" - + " ThreadLocal.withInitial(Interners::newStrongInterner);" + "\n" - + "}"); + doTest("LambdaBug206", java8); } @Test public void testGitHubBug208ParseError() { - java5.parseResource("GitHubBug208.java"); - } - - @Test - public void testGitHubBug257NonExistingCast() { - String code = "public class Test {" + "\n" - + " public static void main(String[] args) {" + "\n" - + " double a = 4.0;" + "\n" - + " double b = 2.0;" + "\n" - + " double result = Math.sqrt((a) - b);" + "\n" - + " System.out.println(result);" + "\n" - + " }" + "\n" - + "}"; - - assertEquals("A cast was found when none expected", - 0, - java5.parse(code).findDescendantsOfType(ASTCastExpression.class).size()); + doTest("GitHubBug208", java5); } @Test public void testGitHubBug309() { - java8.parseResource("GitHubBug309.java"); + doTest("GitHubBug309", java8); } - /** - * This triggered bug #1484 UnusedLocalVariable - false positive - - * parenthesis - */ - @Test - public void stringConcatentationShouldNotBeCast() { - String code = "public class Test {\n" + " public static void main(String[] args) {\n" - + " System.out.println(\"X\" + (args) + \"Y\");\n" + " }\n" + "}"; - Assert.assertEquals(0, java8.parse(code).findDescendantsOfType(ASTCastExpression.class).size()); - } /** * Empty statements should be allowed. - * @throws Exception + * * @see github issue 378 */ @Test - public void testParseEmptyStatements() { - String code = "import a;;import b; public class Foo {}"; - ASTCompilationUnit cu = java8.parse(code); - assertNotNull(cu); - Assert.assertEquals(ASTEmptyDeclaration.class, cu.getChild(1).getClass()); + public void testEmptyStatements1() { + doTest("EmptyStmts1"); + } - String code2 = "package c;; import a; import b; public class Foo {}"; - ASTCompilationUnit cu2 = java8.parse(code2); - assertNotNull(cu2); - Assert.assertEquals(ASTEmptyDeclaration.class, cu2.getChild(1).getClass()); + @Test + public void testEmptyStatements2() { + doTest("EmptyStmts2"); + } - String code3 = "package c; import a; import b; public class Foo {};"; - ASTCompilationUnit cu3 = java8.parse(code3); - assertNotNull(cu3); - Assert.assertEquals(ASTEmptyDeclaration.class, cu3.getChild(4).getClass()); + @Test + public void testEmptyStatements3() { + doTest("EmptyStmts3"); } @Test @@ -261,16 +214,12 @@ public class ParserCornersTest extends BaseParserTest { @Test public void testSwitchWithFallthrough() { - ASTCompilationUnit compilationUnit = java.parseResource("SwitchWithFallthrough.java", "11"); - ASTSwitchStatement switchStatement = compilationUnit.getFirstDescendantOfType(ASTSwitchStatement.class); - Assert.assertEquals(2, switchStatement.findChildrenOfType(ASTSwitchFallthroughBranch.class).size()); + doTest("SwitchWithFallthrough"); } @Test public void testSwitchStatements() { - ASTCompilationUnit compilationUnit = java.parseResource("SwitchStatements.java", "11"); - ASTSwitchStatement switchStatement = compilationUnit.getFirstDescendantOfType(ASTSwitchStatement.class); - Assert.assertEquals(2, switchStatement.findChildrenOfType(ASTSwitchBranch.class).size()); + doTest("SwitchStatements"); } diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/Bug1429.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/Bug1429.txt new file mode 100644 index 0000000000..bda7670c37 --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/Bug1429.txt @@ -0,0 +1,100 @@ ++- CompilationUnit[@PackageName = "", @declarationsAreInDefaultPackage = "true"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "Bug1429", @CanonicalName = "Bug1429", @Enum = "false", @Image = "Bug1429", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "Bug1429", @TopLevel = "true", @Visibility = "public"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- ClassOrInterfaceBody[@Size = "1"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "getAttributeTuples", @MethodName = "getAttributeTuples", @Name = "getAttributeTuples", @Varargs = "false", @Visibility = "public", @Void = "false"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Set", @TypeImage = "Set", @Void = "false"] + | +- TypeArguments[@Diamond = "false", @Size = "1"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + +- FormalParameters[@Size = "0"] + +- Block[@Size = "1", @containsComment = "false"] + +- ReturnStatement[] + +- CastExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Set", @TypeImage = "Set", @Void = "false"] + | +- TypeArguments[@Diamond = "false", @Size = "1"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + +- ConditionalExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "1", @Parenthesized = "true"] + +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "==", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "attributes", @Name = "attributes", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ThisExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- NullLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "false", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "true", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "false"] + +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "emptySet", @MethodName = "emptySet", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "Collections", @Name = "Collections", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "Collections", @Void = "false"] + | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | +- ArgumentList[@Size = "0"] + +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "HashSet", @TypeImage = "HashSet", @Void = "false"] + | +- TypeArguments[@Diamond = "false", @Size = "1"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + +- ArgumentList[@Size = "1"] + +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "collect", @MethodName = "collect", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "CollectionUtils", @Name = "CollectionUtils", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "CollectionUtils", @Void = "false"] + +- ArgumentList[@Size = "2"] + +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "keySet", @MethodName = "keySet", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "attributes", @Name = "attributes", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ThisExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ArgumentList[@Size = "0"] + +- ConstructorCall[@AnonymousClass = "true", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Transformer", @TypeImage = "Transformer", @Void = "false"] + +- ArgumentList[@Size = "0"] + +- AnonymousClassDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "true", @BinaryName = "Bug1429$1", @CanonicalName = null, @Enum = "false", @Image = "", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @Record = "false", @RegularClass = "false", @SimpleName = "", @TopLevel = "false", @Visibility = "anonymous"] + +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + +- ClassOrInterfaceBody[@Size = "1"] + +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "transform", @MethodName = "transform", @Name = "transform", @Varargs = "false", @Visibility = "public", @Void = "false"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- Annotation[@AnnotationName = "Override", @SimpleName = "Override"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Override", @TypeImage = "Override", @Void = "false"] + +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + +- FormalParameters[@Size = "1"] + | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | +- ModifierList[@EffectiveModifiers = "{final}", @ExplicitModifiers = "{final}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "obj", @LambdaParameter = "false", @LocalVariable = "false", @Name = "obj", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "obj", @Visibility = "package"] + +- Block[@Size = "5", @containsComment = "false"] + +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | +- ModifierList[@EffectiveModifiers = "{final}", @ExplicitModifiers = "{final}"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | +- VariableDeclarator[@Initializer = "true", @Name = "key"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "key", @LambdaParameter = "false", @LocalVariable = "true", @Name = "key", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "key", @Visibility = "package"] + | +- CastExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "obj", @Name = "obj", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | +- ModifierList[@EffectiveModifiers = "{final}", @ExplicitModifiers = "{final}"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | +- VariableDeclarator[@Initializer = "true", @Name = "value"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "value", @LambdaParameter = "false", @LocalVariable = "true", @Name = "value", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "value", @Visibility = "package"] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "get", @MethodName = "get", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "attributes", @Name = "attributes", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ThisExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "HGXLIFFTypeConfiguration", @TypeImage = "HGXLIFFTypeConfiguration", @Void = "false"] + | +- ArgumentList[@Size = "1"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "key", @Name = "key", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | +- VariableDeclarator[@Initializer = "true", @Name = "result"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "result", @LambdaParameter = "false", @LocalVariable = "true", @Name = "result", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "result", @Visibility = "package"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "key", @Name = "key", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- IfStatement[@Else = "false"] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "isNotEmpty", @MethodName = "isNotEmpty", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "StringUtils", @Name = "StringUtils", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "StringUtils", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "value", @Name = "value", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ExpressionStatement[] + | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "result", @Name = "result", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "concat", @MethodName = "concat", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "concat", @MethodName = "concat", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "result", @Name = "result", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = ":", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "":"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- ArgumentList[@Size = "1"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "value", @Name = "value", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- ReturnStatement[] + +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "result", @Name = "result", @ParenthesisDepth = "0", @Parenthesized = "false"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/Bug1530.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/Bug1530.txt new file mode 100644 index 0000000000..7c67d9a7e9 --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/Bug1530.txt @@ -0,0 +1,19 @@ ++- CompilationUnit[@PackageName = "", @declarationsAreInDefaultPackage = "true"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "Bug1530", @CanonicalName = "Bug1530", @Enum = "false", @Image = "Bug1530", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "Bug1530", @TopLevel = "true", @Visibility = "public"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- ClassOrInterfaceBody[@Size = "1"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "incChild", @MethodName = "incChild", @Name = "incChild", @Varargs = "false", @Visibility = "public", @Void = "true"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + +- FormalParameters[@Size = "0"] + +- Block[@Size = "1", @containsComment = "false"] + +- ExpressionStatement[] + +- UnaryExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "++", @ParenthesisDepth = "0", @Parenthesized = "false", @Prefix = "false"] + +- FieldAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "currentChild", @Name = "currentChild", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- CastExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "1", @Parenthesized = "true"] + +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "PathElement", @TypeImage = "PathElement", @Void = "false"] + +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getUserObject", @MethodName = "getUserObject", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getLastLeaf", @MethodName = "getLastLeaf", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "stack", @Name = "stack", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "stack", @Void = "false"] + | +- ArgumentList[@Size = "0"] + +- ArgumentList[@Size = "0"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts1.java b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts1.java new file mode 100644 index 0000000000..aedb1e19a3 --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts1.java @@ -0,0 +1,4 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ +import a;;import b; public class Foo {} diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts1.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts1.txt new file mode 100644 index 0000000000..44bb389197 --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts1.txt @@ -0,0 +1,7 @@ ++- CompilationUnit[@PackageName = "", @declarationsAreInDefaultPackage = "true"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "a", @ImportedSimpleName = "a", @PackageName = "", @Static = "false"] + +- EmptyDeclaration[] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "b", @ImportedSimpleName = "b", @PackageName = "", @Static = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "Foo", @CanonicalName = "Foo", @Enum = "false", @Image = "Foo", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "Foo", @TopLevel = "true", @Visibility = "public"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- ClassOrInterfaceBody[@Size = "0"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts2.java b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts2.java new file mode 100644 index 0000000000..590700f0e8 --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts2.java @@ -0,0 +1,4 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ +package c;; import a; import b; diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts2.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts2.txt new file mode 100644 index 0000000000..d6dbb9ae1f --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts2.txt @@ -0,0 +1,6 @@ ++- CompilationUnit[@PackageName = "c", @declarationsAreInDefaultPackage = "false"] + +- PackageDeclaration[@PackageNameImage = "c"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + +- EmptyDeclaration[] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "a", @ImportedSimpleName = "a", @PackageName = "", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "b", @ImportedSimpleName = "b", @PackageName = "", @Static = "false"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts3.java b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts3.java new file mode 100644 index 0000000000..fd8cad38c2 --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts3.java @@ -0,0 +1,4 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ +package c; import a; public class Foo {};; diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts3.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts3.txt new file mode 100644 index 0000000000..da8838440c --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/EmptyStmts3.txt @@ -0,0 +1,9 @@ ++- CompilationUnit[@PackageName = "c", @declarationsAreInDefaultPackage = "false"] + +- PackageDeclaration[@PackageNameImage = "c"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "a", @ImportedSimpleName = "a", @PackageName = "", @Static = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "c.Foo", @CanonicalName = "c.Foo", @Enum = "false", @Image = "Foo", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "c", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "Foo", @TopLevel = "true", @Visibility = "public"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- ClassOrInterfaceBody[@Size = "0"] + +- EmptyDeclaration[] + +- EmptyDeclaration[] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/GitHubBug207.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/GitHubBug207.txt new file mode 100644 index 0000000000..b2287ef397 --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/GitHubBug207.txt @@ -0,0 +1,23 @@ ++- CompilationUnit[@PackageName = "", @declarationsAreInDefaultPackage = "true"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "GitHubBug207", @CanonicalName = "GitHubBug207", @Enum = "false", @Image = "GitHubBug207", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "GitHubBug207", @TopLevel = "true", @Visibility = "public"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- ClassOrInterfaceBody[@Size = "1"] + +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "resourceHttpMessageWriter", @MethodName = "resourceHttpMessageWriter", @Name = "resourceHttpMessageWriter", @Varargs = "false", @Visibility = "private", @Void = "false"] + +- ModifierList[@EffectiveModifiers = "{private, static}", @ExplicitModifiers = "{private, static}"] + +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "HttpMessageWriter", @TypeImage = "HttpMessageWriter", @Void = "false"] + | +- TypeArguments[@Diamond = "false", @Size = "1"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Resource", @TypeImage = "Resource", @Void = "false"] + +- FormalParameters[@Size = "1"] + | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "true", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Context", @TypeImage = "Context", @Void = "false"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "context", @LambdaParameter = "false", @LocalVariable = "false", @Name = "context", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "context", @Visibility = "package"] + +- Block[@Size = "1", @containsComment = "false"] + +- ReturnStatement[] + +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "map", @MethodName = "map", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "context", @Name = "context", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- ArgumentList[@Size = "1"] + +- MethodReference[@CompileTimeConstant = "false", @ConstructorReference = "false", @Expression = "true", @MethodName = "cast", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "BodyInserters", @Name = "BodyInserters", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "BodyInserters", @Void = "false"] + +- TypeArguments[@Diamond = "false", @Size = "1"] + +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Resource", @TypeImage = "Resource", @Void = "false"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/GitHubBug208.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/GitHubBug208.txt new file mode 100644 index 0000000000..24b289038c --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/GitHubBug208.txt @@ -0,0 +1,26 @@ ++- CompilationUnit[@PackageName = "", @declarationsAreInDefaultPackage = "true"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "GitHubBug208", @CanonicalName = "GitHubBug208", @Enum = "false", @Image = "GitHubBug208", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "GitHubBug208", @TopLevel = "true", @Visibility = "public"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- ClassOrInterfaceBody[@Size = "1"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "testMethod", @MethodName = "testMethod", @Name = "testMethod", @Varargs = "false", @Visibility = "public", @Void = "true"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + +- FormalParameters[@Size = "0"] + +- Block[@Size = "1", @containsComment = "false"] + +- LocalClassStatement[] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "GitHubBug208$1LocalClass", @CanonicalName = null, @Enum = "false", @Image = "LocalClass", @Interface = "false", @Local = "true", @Nested = "false", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "LocalClass", @TopLevel = "false", @Visibility = "local"] + +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- Annotation[@AnnotationName = "Lazy", @SimpleName = "Lazy"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Lazy", @TypeImage = "Lazy", @Void = "false"] + | +- Annotation[@AnnotationName = "Configuration", @SimpleName = "Configuration"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Configuration", @TypeImage = "Configuration", @Void = "false"] + +- ClassOrInterfaceBody[@Size = "1"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "foo", @MethodName = "foo", @Name = "foo", @Varargs = "false", @Visibility = "package", @Void = "false"] + +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- Annotation[@AnnotationName = "Bean", @SimpleName = "Bean"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Bean", @TypeImage = "Bean", @Void = "false"] + +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + +- FormalParameters[@Size = "0"] + +- Block[@Size = "1", @containsComment = "false"] + +- ReturnStatement[] + +- NullLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "false", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "true", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "false"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/GitHubBug309.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/GitHubBug309.txt new file mode 100644 index 0000000000..21c600174e --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/GitHubBug309.txt @@ -0,0 +1,45 @@ ++- CompilationUnit[@PackageName = "", @declarationsAreInDefaultPackage = "true"] + +- ImportDeclaration[@ImportOnDemand = "true", @ImportedName = "java.util", @ImportedSimpleName = null, @PackageName = "java.util", @Static = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "GitHubBug309", @CanonicalName = "GitHubBug309", @Enum = "false", @Image = "GitHubBug309", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "GitHubBug309", @TopLevel = "true", @Visibility = "public"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- ClassOrInterfaceBody[@Size = "1"] + +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "main", @MethodName = "main", @Name = "main", @Varargs = "false", @Visibility = "public", @Void = "true"] + +- ModifierList[@EffectiveModifiers = "{public, static}", @ExplicitModifiers = "{public, static}"] + +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + +- FormalParameters[@Size = "1"] + | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "String", @Void = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- ArrayDimensions[@Size = "1"] + | | +- ArrayTypeDim[@Varargs = "false"] + | +- VariableDeclaratorId[@ArrayType = "true", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "args", @LambdaParameter = "false", @LocalVariable = "false", @Name = "args", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "args", @Visibility = "package"] + +- Block[@Size = "2", @containsComment = "true"] + +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Runnable", @TypeImage = "Runnable", @Void = "false"] + | +- VariableDeclarator[@Initializer = "true", @Name = "r11"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "r11", @LambdaParameter = "false", @LocalVariable = "true", @Name = "r11", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "r11", @Visibility = "package"] + | +- MethodReference[@CompileTimeConstant = "false", @ConstructorReference = "true", @Expression = "true", @MethodName = "new", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Main", @TypeImage = "Main", @Void = "false"] + | +- TypeArguments[@Diamond = "false", @Size = "1"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "IntFunction", @TypeImage = "IntFunction", @Void = "false"] + | +- TypeArguments[@Diamond = "false", @Size = "1"] + | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "int", @Void = "false"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | +- ArrayDimensions[@Size = "1"] + | +- ArrayTypeDim[@Varargs = "false"] + +- VariableDeclarator[@Initializer = "true", @Name = "r13"] + +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "r13", @LambdaParameter = "false", @LocalVariable = "true", @Name = "r13", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "r13", @Visibility = "package"] + +- MethodReference[@CompileTimeConstant = "false", @ConstructorReference = "true", @Expression = "true", @MethodName = "new", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "int", @Void = "false"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | +- ArrayDimensions[@Size = "1"] + | +- ArrayTypeDim[@Varargs = "false"] + +- TypeArguments[@Diamond = "false", @Size = "1"] + +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug1333.java b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug1333.java new file mode 100644 index 0000000000..4e0ae79fcc --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug1333.java @@ -0,0 +1,19 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +final class Bug1333 { + private static final Logger LOG = LoggerFactory.getLogger(Foo.class); + + public void deleteDirectoriesByNamePattern() { + delete(path -> deleteDirectory(path)); + } + + private void delete(Consumer consumer) { + LOG.debug(consumer.toString()); + } + + private void deleteDirectory(String path) { + LOG.debug(path); + } +} diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug1333.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug1333.txt new file mode 100644 index 0000000000..43ed8a1197 --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug1333.txt @@ -0,0 +1,63 @@ ++- CompilationUnit[@PackageName = "", @declarationsAreInDefaultPackage = "true"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "Bug1333", @CanonicalName = "Bug1333", @Enum = "false", @Image = "Bug1333", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "Bug1333", @TopLevel = "true", @Visibility = "package"] + +- ModifierList[@EffectiveModifiers = "{final}", @ExplicitModifiers = "{final}"] + +- ClassOrInterfaceBody[@Size = "4"] + +- FieldDeclaration[@VariableName = "LOG", @Visibility = "private"] + | +- ModifierList[@EffectiveModifiers = "{private, static, final}", @ExplicitModifiers = "{private, static, final}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Logger", @TypeImage = "Logger", @Void = "false"] + | +- VariableDeclarator[@Initializer = "true", @Name = "LOG"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "true", @FormalParameter = "false", @Image = "LOG", @LambdaParameter = "false", @LocalVariable = "false", @Name = "LOG", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "LOG", @Visibility = "private"] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getLogger", @MethodName = "getLogger", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "LoggerFactory", @Name = "LoggerFactory", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "LoggerFactory", @Void = "false"] + | +- ArgumentList[@Size = "1"] + | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Foo", @TypeImage = "Foo", @Void = "false"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "deleteDirectoriesByNamePattern", @MethodName = "deleteDirectoriesByNamePattern", @Name = "deleteDirectoriesByNamePattern", @Varargs = "false", @Visibility = "public", @Void = "true"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ExpressionStatement[] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "delete", @MethodName = "delete", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ArgumentList[@Size = "1"] + | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- LambdaParameterList[@Size = "1"] + | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "path", @LambdaParameter = "true", @LocalVariable = "false", @Name = "path", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "path", @Visibility = "package"] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "deleteDirectory", @MethodName = "deleteDirectory", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ArgumentList[@Size = "1"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "path", @Name = "path", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "delete", @MethodName = "delete", @Name = "delete", @Varargs = "false", @Visibility = "private", @Void = "true"] + | +- ModifierList[@EffectiveModifiers = "{private}", @ExplicitModifiers = "{private}"] + | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | +- FormalParameters[@Size = "1"] + | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Consumer", @TypeImage = "Consumer", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- WildcardType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @LowerBound = "true", @PrimitiveType = "false", @TypeImage = "?", @UpperBound = "false", @Void = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "consumer", @LambdaParameter = "false", @LocalVariable = "false", @Name = "consumer", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "consumer", @Visibility = "package"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ExpressionStatement[] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "debug", @MethodName = "debug", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "LOG", @Name = "LOG", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ArgumentList[@Size = "1"] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "toString", @MethodName = "toString", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "consumer", @Name = "consumer", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ArgumentList[@Size = "0"] + +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "deleteDirectory", @MethodName = "deleteDirectory", @Name = "deleteDirectory", @Varargs = "false", @Visibility = "private", @Void = "true"] + +- ModifierList[@EffectiveModifiers = "{private}", @ExplicitModifiers = "{private}"] + +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + +- FormalParameters[@Size = "1"] + | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "path", @LambdaParameter = "false", @LocalVariable = "false", @Name = "path", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "path", @Visibility = "package"] + +- Block[@Size = "1", @containsComment = "false"] + +- ExpressionStatement[] + +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "debug", @MethodName = "debug", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "LOG", @Name = "LOG", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- ArgumentList[@Size = "1"] + +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "path", @Name = "path", @ParenthesisDepth = "0", @Parenthesized = "false"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug1470.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug1470.txt new file mode 100644 index 0000000000..a084cab4b1 --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug1470.txt @@ -0,0 +1,77 @@ ++- CompilationUnit[@PackageName = "com.sample.test", @declarationsAreInDefaultPackage = "false"] + +- PackageDeclaration[@PackageNameImage = "com.sample.test"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "rx.Observable", @ImportedSimpleName = "Observable", @PackageName = "rx", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "rx.Subscriber", @ImportedSimpleName = "Subscriber", @PackageName = "rx", @Static = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "com.sample.test.pmdTest", @CanonicalName = "com.sample.test.pmdTest", @Enum = "false", @Image = "pmdTest", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "com.sample.test", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "pmdTest", @TopLevel = "true", @Visibility = "public"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- ClassOrInterfaceBody[@Size = "3"] + +- FieldDeclaration[@VariableName = "stuff", @Visibility = "private"] + | +- ModifierList[@EffectiveModifiers = "{private}", @ExplicitModifiers = "{private}"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "true", @ClassOrInterfaceType = "false", @Image = "boolean", @ModelConstant = "boolean", @PrimitiveType = "true", @TypeImage = "boolean", @Void = "false"] + | +- VariableDeclarator[@Initializer = "false", @Name = "stuff"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "true", @FormalParameter = "false", @Image = "stuff", @LambdaParameter = "false", @LocalVariable = "false", @Name = "stuff", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "stuff", @Visibility = "private"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "testSuper", @MethodName = "testSuper", @Name = "testSuper", @Varargs = "false", @Visibility = "public", @Void = "false"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Observable", @TypeImage = "Observable", @Void = "false"] + | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Boolean", @TypeImage = "Boolean", @Void = "false"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ReturnStatement[] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "map", @MethodName = "map", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "create", @MethodName = "create", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Observable", @TypeImage = "Observable", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LambdaParameterList[@Size = "1"] + | | | +- LambdaParameter[@TypeInferred = "false", @Visibility = "package"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Subscriber", @TypeImage = "Subscriber", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | | +- WildcardType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @LowerBound = "true", @PrimitiveType = "false", @TypeImage = "?", @UpperBound = "false", @Void = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "subscriber", @LambdaParameter = "true", @LocalVariable = "false", @Name = "subscriber", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "subscriber", @Visibility = "package"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ExpressionStatement[] + | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "stuff", @Name = "stuff", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- BooleanLiteral[@BooleanLiteral = "true", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "false", @True = "true"] + | +- ArgumentList[@Size = "1"] + | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- LambdaParameterList[@Size = "1"] + | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "authToken", @LambdaParameter = "true", @LocalVariable = "false", @Name = "authToken", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "authToken", @Visibility = "package"] + | +- BooleanLiteral[@BooleanLiteral = "true", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "false", @True = "false"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "testSuper2", @MethodName = "testSuper2", @Name = "testSuper2", @Varargs = "false", @Visibility = "public", @Void = "false"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Observable", @TypeImage = "Observable", @Void = "false"] + | +- TypeArguments[@Diamond = "false", @Size = "1"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Boolean", @TypeImage = "Boolean", @Void = "false"] + +- FormalParameters[@Size = "0"] + +- Block[@Size = "1", @containsComment = "false"] + +- ReturnStatement[] + +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "map", @MethodName = "map", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "create", @MethodName = "create", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Observable", @TypeImage = "Observable", @Void = "false"] + | +- ArgumentList[@Size = "1"] + | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- LambdaParameterList[@Size = "1"] + | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "subscriber", @LambdaParameter = "true", @LocalVariable = "false", @Name = "subscriber", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "subscriber", @Visibility = "package"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ExpressionStatement[] + | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "stuff", @Name = "stuff", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- BooleanLiteral[@BooleanLiteral = "true", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "false", @True = "true"] + +- ArgumentList[@Size = "1"] + +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- LambdaParameterList[@Size = "1"] + | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "authToken", @LambdaParameter = "true", @LocalVariable = "false", @Name = "authToken", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "authToken", @Visibility = "package"] + +- BooleanLiteral[@BooleanLiteral = "true", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "false", @True = "false"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug206.java b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug206.java new file mode 100644 index 0000000000..64707ff60d --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug206.java @@ -0,0 +1,8 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +public @interface Foo { + static final ThreadLocal> interner = + ThreadLocal.withInitial(Interners::newStrongInterner); +} diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug206.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug206.txt new file mode 100644 index 0000000000..afaca146a7 --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/LambdaBug206.txt @@ -0,0 +1,19 @@ ++- CompilationUnit[@PackageName = "", @declarationsAreInDefaultPackage = "true"] + +- AnnotationTypeDeclaration[@Abstract = "true", @Annotation = "true", @Anonymous = "false", @BinaryName = "Foo", @CanonicalName = "Foo", @Enum = "false", @Image = "Foo", @Interface = "true", @Local = "false", @Nested = "false", @PackageName = "", @Record = "false", @RegularClass = "false", @SimpleName = "Foo", @TopLevel = "true", @Visibility = "public"] + +- ModifierList[@EffectiveModifiers = "{public, abstract}", @ExplicitModifiers = "{public}"] + +- AnnotationTypeBody[@Size = "1"] + +- FieldDeclaration[@VariableName = "interner", @Visibility = "public"] + +- ModifierList[@EffectiveModifiers = "{public, static, final}", @ExplicitModifiers = "{static, final}"] + +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ThreadLocal", @TypeImage = "ThreadLocal", @Void = "false"] + | +- TypeArguments[@Diamond = "false", @Size = "1"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Interner", @TypeImage = "Interner", @Void = "false"] + | +- TypeArguments[@Diamond = "false", @Size = "1"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + +- VariableDeclarator[@Initializer = "true", @Name = "interner"] + +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "true", @FormalParameter = "false", @Image = "interner", @LambdaParameter = "false", @LocalVariable = "false", @Name = "interner", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "interner", @Visibility = "public"] + +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "withInitial", @MethodName = "withInitial", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ThreadLocal", @TypeImage = "ThreadLocal", @Void = "false"] + +- ArgumentList[@Size = "1"] + +- MethodReference[@CompileTimeConstant = "false", @ConstructorReference = "false", @Expression = "true", @MethodName = "newStrongInterner", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "Interners", @Name = "Interners", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "Interners", @Void = "false"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/ParserCornerCases.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/ParserCornerCases.txt new file mode 100644 index 0000000000..753bec6b71 --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/ParserCornerCases.txt @@ -0,0 +1,639 @@ ++- CompilationUnit[@PackageName = "", @declarationsAreInDefaultPackage = "true"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "Superclass", @CanonicalName = "Superclass", @Enum = "false", @Image = "Superclass", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "Superclass", @TopLevel = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "3"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "0", @Image = "Superclass", @Name = "Superclass", @Varargs = "false", @Visibility = "public", @containsComment = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "0", @containsComment = "false"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "1", @Image = "Superclass", @Name = "Superclass", @Varargs = "false", @Visibility = "public", @containsComment = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- TypeParameters[@Size = "1"] + | | | +- TypeParameter[@Image = "V", @ParameterName = "V", @TypeBound = "false"] + | | +- FormalParameters[@Size = "1"] + | | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Class", @TypeImage = "Class", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "V", @TypeImage = "V", @Void = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "clazz", @LambdaParameter = "false", @LocalVariable = "false", @Name = "clazz", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "clazz", @Visibility = "package"] + | | +- Block[@Size = "0", @containsComment = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "doStuff", @MethodName = "doStuff", @Name = "doStuff", @Varargs = "false", @Visibility = "package", @Void = "false"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- TypeParameters[@Size = "1"] + | | +- TypeParameter[@Image = "T", @ParameterName = "T", @TypeBound = "false"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "T", @TypeImage = "T", @Void = "false"] + | +- FormalParameters[@Size = "1"] + | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "T", @TypeImage = "T", @Void = "false"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "s", @LambdaParameter = "false", @LocalVariable = "false", @Name = "s", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "s", @Visibility = "package"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ReturnStatement[] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "s", @Name = "s", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "Outer", @CanonicalName = "Outer", @Enum = "false", @Image = "Outer", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "Outer", @TopLevel = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "2"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "0", @Image = "Outer", @Name = "Outer", @Varargs = "false", @Visibility = "package", @containsComment = "false"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ExpressionStatement[] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "println", @MethodName = "println", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "out", @Name = "out", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Outer constructor", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Outer constructor"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "Outer$Inner", @CanonicalName = "Outer.Inner", @Enum = "false", @Image = "Inner", @Interface = "false", @Local = "false", @Nested = "true", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "Inner", @TopLevel = "false", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "0", @Image = "Inner", @Name = "Inner", @Varargs = "false", @Visibility = "package", @containsComment = "false"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ExpressionStatement[] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "println", @MethodName = "println", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "out", @Name = "out", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + | +- ArgumentList[@Size = "1"] + | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Inner constructor", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Inner constructor"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "Child", @CanonicalName = "Child", @Enum = "false", @Image = "Child", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "Child", @TopLevel = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ExtendsList[@Size = "1"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Inner", @TypeImage = "Outer.Inner", @Void = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Outer", @TypeImage = "Outer", @Void = "false"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "1", @Image = "Child", @Name = "Child", @Varargs = "false", @Visibility = "package", @containsComment = "false"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- FormalParameters[@Size = "1"] + | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Outer", @TypeImage = "Outer", @Void = "false"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "o", @LambdaParameter = "false", @LocalVariable = "false", @Name = "o", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "o", @Visibility = "package"] + | +- Block[@Size = "2", @containsComment = "false"] + | +- ExplicitConstructorInvocation[@ArgumentCount = "0", @Qualified = "true", @Super = "true", @This = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "o", @Name = "o", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArgumentList[@Size = "0"] + | +- ExpressionStatement[] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "println", @MethodName = "println", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "out", @Name = "out", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + | +- ArgumentList[@Size = "1"] + | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Child constructor", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Child constructor"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "ParserCornerCases", @CanonicalName = "ParserCornerCases", @Enum = "false", @Image = "ParserCornerCases", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "ParserCornerCases", @TopLevel = "true", @Visibility = "public"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- ExtendsList[@Size = "1"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Superclass", @TypeImage = "Superclass", @Void = "false"] + | +- ClassOrInterfaceBody[@Size = "8"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "0", @Image = "ParserCornerCases", @Name = "ParserCornerCases", @Varargs = "false", @Visibility = "public", @containsComment = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ExplicitConstructorInvocation[@ArgumentCount = "0", @Qualified = "false", @Super = "true", @This = "false"] + | | +- ArgumentList[@Size = "0"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "1", @Image = "ParserCornerCases", @Name = "ParserCornerCases", @Varargs = "false", @Visibility = "public", @containsComment = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- FormalParameters[@Size = "1"] + | | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "a", @LambdaParameter = "false", @LocalVariable = "false", @Name = "a", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "a", @Visibility = "package"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ExplicitConstructorInvocation[@ArgumentCount = "2", @Qualified = "false", @Super = "false", @This = "true"] + | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | | +- ArgumentList[@Size = "2"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "a", @Name = "a", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "2", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "2.0", @ValueAsFloat = "2.0", @ValueAsInt = "2", @ValueAsLong = "2"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "2", @Image = "ParserCornerCases", @Name = "ParserCornerCases", @Varargs = "false", @Visibility = "public", @containsComment = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- TypeParameters[@Size = "1"] + | | | +- TypeParameter[@Image = "W", @ParameterName = "W", @TypeBound = "false"] + | | +- FormalParameters[@Size = "2"] + | | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "a", @LambdaParameter = "false", @LocalVariable = "false", @Name = "a", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "a", @Visibility = "package"] + | | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "b", @LambdaParameter = "false", @LocalVariable = "false", @Name = "b", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "b", @Visibility = "package"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ExplicitConstructorInvocation[@ArgumentCount = "1", @Qualified = "false", @Super = "true", @This = "false"] + | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "1", @Image = "ParserCornerCases", @Name = "ParserCornerCases", @Varargs = "false", @Visibility = "public", @containsComment = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- FormalParameters[@Size = "1"] + | | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "title", @LambdaParameter = "false", @LocalVariable = "false", @Name = "title", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "title", @Visibility = "package"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ExplicitConstructorInvocation[@ArgumentCount = "0", @Qualified = "false", @Super = "false", @This = "true"] + | | +- ArgumentList[@Size = "0"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "testGeneric", @MethodName = "testGeneric", @Name = "testGeneric", @Varargs = "false", @Visibility = "public", @Void = "true"] + | | +- ModifierList[@EffectiveModifiers = "{public, strictfp}", @ExplicitModifiers = "{public, strictfp}"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "2", @containsComment = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "o"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "o", @LambdaParameter = "false", @LocalVariable = "true", @Name = "o", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "o", @Visibility = "package"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "doStuff", @MethodName = "doStuff", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- SuperExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "foo", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""foo"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "v"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "v", @LambdaParameter = "false", @LocalVariable = "true", @Name = "v", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "v", @Visibility = "package"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "thisGeneric", @MethodName = "thisGeneric", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ThisExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "bar", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""bar"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "thisGeneric", @MethodName = "thisGeneric", @Name = "thisGeneric", @Varargs = "false", @Visibility = "package", @Void = "false"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- TypeParameters[@Size = "1"] + | | | +- TypeParameter[@Image = "X", @ParameterName = "X", @TypeBound = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "X", @TypeImage = "X", @Void = "false"] + | | +- FormalParameters[@Size = "1"] + | | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "X", @TypeImage = "X", @Void = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "x", @LambdaParameter = "false", @LocalVariable = "false", @Name = "x", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "x", @Visibility = "package"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "x", @Name = "x", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "getByteArrayClass", @MethodName = "getByteArrayClass", @Name = "getByteArrayClass", @Varargs = "false", @Visibility = "package", @Void = "false"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Class", @TypeImage = "Class", @Void = "false"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "1", @Parenthesized = "true"] + | | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "byte", @Void = "false"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "byte", @ModelConstant = "byte", @PrimitiveType = "true", @TypeImage = "byte", @Void = "false"] + | | +- ArrayDimensions[@Size = "1"] + | | +- ArrayTypeDim[@Varargs = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "bitwiseOperator", @MethodName = "bitwiseOperator", @Name = "bitwiseOperator", @Varargs = "false", @Visibility = "public", @Void = "true"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- IfStatement[@Else = "false"] + | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "!=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "&", @ParenthesisDepth = "1", @Parenthesized = "true"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "modifiers", @Name = "modifiers", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "SHIFT_DOWN_MASK", @Name = "SHIFT_DOWN_MASK", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "InputEvent", @Name = "InputEvent", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "InputEvent", @Void = "false"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "0.0", @ValueAsFloat = "0.0", @ValueAsInt = "0", @ValueAsLong = "0"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ExpressionStatement[] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "append", @MethodName = "append", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "buf", @Name = "buf", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "buf", @Void = "false"] + | +- ArgumentList[@Size = "1"] + | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "shift ", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""shift "", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "PmdTestParent", @CanonicalName = "PmdTestParent", @Enum = "false", @Image = "PmdTestParent", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "PmdTestParent", @TopLevel = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "1", @Image = "PmdTestParent", @Name = "PmdTestParent", @Varargs = "false", @Visibility = "public", @containsComment = "false"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- FormalParameters[@Size = "1"] + | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "obj", @LambdaParameter = "false", @LocalVariable = "false", @Name = "obj", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "obj", @Visibility = "package"] + | +- Block[@Size = "0", @containsComment = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "PmdTestChild", @CanonicalName = "PmdTestChild", @Enum = "false", @Image = "PmdTestChild", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "PmdTestChild", @TopLevel = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ExtendsList[@Size = "1"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "PmdTestParent", @TypeImage = "PmdTestParent", @Void = "false"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "0", @Image = "PmdTestChild", @Name = "PmdTestChild", @Varargs = "false", @Visibility = "public", @containsComment = "false"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ExplicitConstructorInvocation[@ArgumentCount = "1", @Qualified = "false", @Super = "true", @This = "false"] + | +- ArgumentList[@Size = "1"] + | +- ConstructorCall[@AnonymousClass = "true", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | +- ArgumentList[@Size = "0"] + | +- AnonymousClassDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "true", @BinaryName = "PmdTestChild$1", @CanonicalName = null, @Enum = "false", @Image = "", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @Record = "false", @RegularClass = "false", @SimpleName = "", @TopLevel = "false", @Visibility = "anonymous"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "create", @MethodName = "create", @Name = "create", @Varargs = "false", @Visibility = "public", @Void = "false"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "3", @containsComment = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "memoryMonitor"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "memoryMonitor", @LambdaParameter = "false", @LocalVariable = "true", @Name = "memoryMonitor", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "memoryMonitor", @Visibility = "package"] + | | +- NullLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "false", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "true", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "false"] + | +- IfStatement[@Else = "false"] + | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "==", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "memoryMonitor", @Name = "memoryMonitor", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- NullLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "false", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "true", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "false"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ExpressionStatement[] + | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "memoryMonitor", @Name = "memoryMonitor", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | | +- ArgumentList[@Size = "0"] + | +- ReturnStatement[] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "memoryMonitor", @Name = "memoryMonitor", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "SimpleBean", @CanonicalName = "SimpleBean", @Enum = "false", @Image = "SimpleBean", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "SimpleBean", @TopLevel = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- FieldDeclaration[@VariableName = "name", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | +- VariableDeclarator[@Initializer = "false", @Name = "name"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "true", @FormalParameter = "false", @Image = "name", @LambdaParameter = "false", @LocalVariable = "false", @Name = "name", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "name", @Visibility = "package"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "SimpleBeanUser", @CanonicalName = "SimpleBeanUser", @Enum = "false", @Image = "SimpleBeanUser", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "SimpleBeanUser", @TopLevel = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "2"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "1", @Image = "SimpleBeanUser", @Name = "SimpleBeanUser", @Varargs = "false", @Visibility = "package", @containsComment = "false"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- FormalParameters[@Size = "1"] + | | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "SimpleBean", @TypeImage = "SimpleBean", @Void = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "o", @LambdaParameter = "false", @LocalVariable = "false", @Name = "o", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "o", @Visibility = "package"] + | | +- Block[@Size = "0", @containsComment = "false"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "0", @Image = "SimpleBeanUser", @Name = "SimpleBeanUser", @Varargs = "false", @Visibility = "package", @containsComment = "false"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ExplicitConstructorInvocation[@ArgumentCount = "1", @Qualified = "false", @Super = "false", @This = "true"] + | +- ArgumentList[@Size = "1"] + | +- ConstructorCall[@AnonymousClass = "true", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "SimpleBean", @TypeImage = "SimpleBean", @Void = "false"] + | +- ArgumentList[@Size = "0"] + | +- AnonymousClassDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "true", @BinaryName = "SimpleBeanUser$1", @CanonicalName = null, @Enum = "false", @Image = "", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @Record = "false", @RegularClass = "false", @SimpleName = "", @TopLevel = "false", @Visibility = "anonymous"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- Initializer[@Static = "false"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ExpressionStatement[] + | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "name", @Name = "name", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "test", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""test"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "SimpleBeanUser2", @CanonicalName = "SimpleBeanUser2", @Enum = "false", @Image = "SimpleBeanUser2", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "SimpleBeanUser2", @TopLevel = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ExtendsList[@Size = "1"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "SimpleBeanUser", @TypeImage = "SimpleBeanUser", @Void = "false"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "0", @Image = "SimpleBeanUser2", @Name = "SimpleBeanUser2", @Varargs = "false", @Visibility = "package", @containsComment = "false"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ExplicitConstructorInvocation[@ArgumentCount = "1", @Qualified = "false", @Super = "true", @This = "false"] + | +- ArgumentList[@Size = "1"] + | +- ConstructorCall[@AnonymousClass = "true", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "SimpleBean", @TypeImage = "SimpleBean", @Void = "false"] + | +- ArgumentList[@Size = "0"] + | +- AnonymousClassDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "true", @BinaryName = "SimpleBeanUser2$1", @CanonicalName = null, @Enum = "false", @Image = "", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @Record = "false", @RegularClass = "false", @SimpleName = "", @TopLevel = "false", @Visibility = "anonymous"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- Initializer[@Static = "false"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ExpressionStatement[] + | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "name", @Name = "name", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "test2", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""test2"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "TestParseAnnototation", @CanonicalName = "TestParseAnnototation", @Enum = "false", @Image = "TestParseAnnototation", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "TestParseAnnototation", @TopLevel = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "parse", @MethodName = "parse", @Name = "parse", @Varargs = "false", @Visibility = "package", @Void = "true"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "4", @containsComment = "false"] + | +- ForStatement[] + | | +- ForInit[] + | | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- Annotation[@AnnotationName = "SuppressWarnings", @SimpleName = "SuppressWarnings"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "SuppressWarnings", @TypeImage = "SuppressWarnings", @Void = "false"] + | | | | +- AnnotationMemberList[@Size = "1"] + | | | | +- MemberValuePair[@Image = "value", @Name = "value", @Shorthand = "true"] + | | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "unchecked", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""unchecked"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "i"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "i", @LambdaParameter = "false", @LocalVariable = "true", @Name = "i", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "i", @Visibility = "package"] + | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "0.0", @ValueAsFloat = "0.0", @ValueAsInt = "0", @ValueAsLong = "0"] + | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "<", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "i", @Name = "i", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "10", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "10.0", @ValueAsFloat = "10.0", @ValueAsInt = "10", @ValueAsLong = "10"] + | | +- ForUpdate[] + | | | +- StatementExpressionList[] + | | | +- UnaryExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "++", @ParenthesisDepth = "0", @Parenthesized = "false", @Prefix = "false"] + | | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "i", @Name = "i", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- Block[@Size = "0", @containsComment = "false"] + | +- ForStatement[] + | | +- ForInit[] + | | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- Annotation[@AnnotationName = "SuppressWarnings", @SimpleName = "SuppressWarnings"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "SuppressWarnings", @TypeImage = "SuppressWarnings", @Void = "false"] + | | | | +- AnnotationMemberList[@Size = "1"] + | | | | +- MemberValuePair[@Image = "value", @Name = "value", @Shorthand = "true"] + | | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "unchecked", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""unchecked"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Iterator", @TypeImage = "Iterator", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "it"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "it", @LambdaParameter = "false", @LocalVariable = "true", @Name = "it", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "it", @Visibility = "package"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "iterator", @MethodName = "iterator", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "values", @MethodName = "values", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "Fachabteilung", @Name = "Fachabteilung", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "Fachabteilung", @Void = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- ArgumentList[@Size = "0"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "hasNext", @MethodName = "hasNext", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "it", @Name = "it", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- Block[@Size = "0", @containsComment = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "List", @TypeImage = "List", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "l"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "l", @LambdaParameter = "false", @LocalVariable = "true", @Name = "l", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "l", @Visibility = "package"] + | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ArrayList", @TypeImage = "ArrayList", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- ArgumentList[@Size = "0"] + | +- ForeachStatement[] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- Annotation[@AnnotationName = "SuppressWarnings", @SimpleName = "SuppressWarnings"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "SuppressWarnings", @TypeImage = "SuppressWarnings", @Void = "false"] + | | | +- AnnotationMemberList[@Size = "1"] + | | | +- MemberValuePair[@Image = "value", @Name = "value", @Shorthand = "true"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "unchecked", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""unchecked"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "false", @Name = "s"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "s", @LambdaParameter = "false", @LocalVariable = "true", @Name = "s", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "s", @Visibility = "package"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "l", @Name = "l", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- Block[@Size = "0", @containsComment = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "FooBlock", @CanonicalName = "FooBlock", @Enum = "false", @Image = "FooBlock", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "FooBlock", @TopLevel = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "0"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "MyFoo", @CanonicalName = "MyFoo", @Enum = "false", @Image = "MyFoo", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "MyFoo", @TopLevel = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "1", @Image = "MyFoo", @Name = "MyFoo", @Varargs = "false", @Visibility = "package", @containsComment = "false"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- FormalParameters[@Size = "1"] + | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "FooBlock", @TypeImage = "FooBlock", @Void = "false"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "b", @LambdaParameter = "false", @LocalVariable = "false", @Name = "b", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "b", @Visibility = "package"] + | +- Block[@Size = "0", @containsComment = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "Foo", @CanonicalName = "Foo", @Enum = "false", @Image = "Foo", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "Foo", @TopLevel = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ExtendsList[@Size = "1"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "MyFoo", @TypeImage = "MyFoo", @Void = "false"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "0", @Image = "Foo", @Name = "Foo", @Varargs = "false", @Visibility = "public", @containsComment = "false"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ExplicitConstructorInvocation[@ArgumentCount = "1", @Qualified = "false", @Super = "true", @This = "false"] + | +- ArgumentList[@Size = "1"] + | +- ConstructorCall[@AnonymousClass = "true", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "FooBlock", @TypeImage = "FooBlock", @Void = "false"] + | +- ArgumentList[@Size = "0"] + | +- AnonymousClassDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "true", @BinaryName = "Foo$1", @CanonicalName = null, @Enum = "false", @Image = "", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @Record = "false", @RegularClass = "false", @SimpleName = "", @TopLevel = "false", @Visibility = "anonymous"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "valueOf", @MethodName = "valueOf", @Name = "valueOf", @Varargs = "false", @Visibility = "public", @Void = "false"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | +- FormalParameters[@Size = "1"] + | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "object", @LambdaParameter = "false", @LocalVariable = "false", @Name = "object", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "object", @Visibility = "package"] + | +- Block[@Size = "2", @containsComment = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "fish"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "fish", @LambdaParameter = "false", @LocalVariable = "true", @Name = "fish", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "fish", @Visibility = "package"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "salmon", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""salmon"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- ReturnStatement[] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "fish", @Name = "fish", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "SuperTest", @CanonicalName = "SuperTest", @Enum = "false", @Image = "SuperTest", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "SuperTest", @TopLevel = "true", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "iterator", @MethodName = "iterator", @Name = "iterator", @Varargs = "false", @Visibility = "public", @Void = "false"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Iterator", @TypeImage = "Iterator", @Void = "false"] + | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "E", @TypeImage = "E", @Void = "false"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "2", @containsComment = "false"] + | +- IfStatement[@Else = "false"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "contains", @MethodName = "contains", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "mods", @Name = "mods", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ThisExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "Iterator", @Name = "Iterator", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "Modification", @Name = "Modification", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "Modification", @Void = "false"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- ConstructorCall[@AnonymousClass = "true", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Iterator", @TypeImage = "Iterator", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "E", @TypeImage = "E", @Void = "false"] + | | +- ArgumentList[@Size = "0"] + | | +- AnonymousClassDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "true", @BinaryName = "SuperTest$1", @CanonicalName = null, @Enum = "false", @Image = "", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @Record = "false", @RegularClass = "false", @SimpleName = "", @TopLevel = "false", @Visibility = "anonymous"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceBody[@Size = "4"] + | | +- FieldDeclaration[@VariableName = "wrapped", @Visibility = "package"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Iterator", @TypeImage = "Iterator", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "E", @TypeImage = "E", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "wrapped"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "true", @FormalParameter = "false", @Image = "wrapped", @LambdaParameter = "false", @LocalVariable = "false", @Name = "wrapped", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "wrapped", @Visibility = "package"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "iterator", @MethodName = "iterator", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- SuperExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ImmutableSet", @TypeImage = "ImmutableSet", @Void = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "hasNext", @MethodName = "hasNext", @Name = "hasNext", @Varargs = "false", @Visibility = "public", @Void = "false"] + | | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "true", @ClassOrInterfaceType = "false", @Image = "boolean", @ModelConstant = "boolean", @PrimitiveType = "true", @TypeImage = "boolean", @Void = "false"] + | | | +- FormalParameters[@Size = "0"] + | | | +- Block[@Size = "1", @containsComment = "false"] + | | | +- ReturnStatement[] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "hasNext", @MethodName = "hasNext", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "wrapped", @Name = "wrapped", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ThisExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "next", @MethodName = "next", @Name = "next", @Varargs = "false", @Visibility = "public", @Void = "false"] + | | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "E", @TypeImage = "E", @Void = "false"] + | | | +- FormalParameters[@Size = "0"] + | | | +- Block[@Size = "1", @containsComment = "false"] + | | | +- ReturnStatement[] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "next", @MethodName = "next", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "wrapped", @Name = "wrapped", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ThisExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "remove", @MethodName = "remove", @Name = "remove", @Varargs = "false", @Visibility = "public", @Void = "true"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "2", @containsComment = "false"] + | | +- IfStatement[@Else = "false"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "contains", @MethodName = "contains", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "mods", @Name = "mods", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- ThisExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ImmutableSet", @TypeImage = "ImmutableSet", @Void = "false"] + | | | | +- ArgumentList[@Size = "1"] + | | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "RemoveIter", @Name = "RemoveIter", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "Modification", @Name = "Modification", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "Modification", @Void = "false"] + | | | +- Block[@Size = "1", @containsComment = "false"] + | | | +- ExpressionStatement[] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "remove", @MethodName = "remove", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "wrapped", @Name = "wrapped", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ThisExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- ThrowStatement[] + | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "UnsupportedOperationException", @TypeImage = "UnsupportedOperationException", @Void = "false"] + | | +- ArgumentList[@Size = "0"] + | +- ThrowStatement[] + | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "UnsupportedOperationException", @TypeImage = "UnsupportedOperationException", @Void = "false"] + | +- ArgumentList[@Size = "0"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "ClazzPropertyOfPrimitiveTypes", @CanonicalName = "ClazzPropertyOfPrimitiveTypes", @Enum = "false", @Image = "ClazzPropertyOfPrimitiveTypes", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "ClazzPropertyOfPrimitiveTypes", @TopLevel = "true", @Visibility = "package"] + +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + +- ClassOrInterfaceBody[@Size = "1"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "test", @MethodName = "test", @Name = "test", @Varargs = "false", @Visibility = "public", @Void = "true"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + +- FormalParameters[@Size = "0"] + +- Block[@Size = "11", @containsComment = "false"] + +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Class", @TypeImage = "Class", @Void = "false"] + | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | +- WildcardType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @LowerBound = "false", @PrimitiveType = "false", @TypeImage = "?", @UpperBound = "false", @Void = "false"] + | +- VariableDeclarator[@Initializer = "true", @Name = "c"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "c", @LambdaParameter = "false", @LocalVariable = "true", @Name = "c", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "c", @Visibility = "package"] + | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + +- ExpressionStatement[] + | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "short", @ModelConstant = "short", @PrimitiveType = "true", @TypeImage = "short", @Void = "false"] + +- ExpressionStatement[] + | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "long", @ModelConstant = "long", @PrimitiveType = "true", @TypeImage = "long", @Void = "false"] + +- ExpressionStatement[] + | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "float", @ModelConstant = "float", @PrimitiveType = "true", @TypeImage = "float", @Void = "false"] + +- ExpressionStatement[] + | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "double", @ModelConstant = "double", @PrimitiveType = "true", @TypeImage = "double", @Void = "false"] + +- ExpressionStatement[] + | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "char", @ModelConstant = "char", @PrimitiveType = "true", @TypeImage = "char", @Void = "false"] + +- ExpressionStatement[] + | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "byte", @ModelConstant = "byte", @PrimitiveType = "true", @TypeImage = "byte", @Void = "false"] + +- ExpressionStatement[] + | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + +- IfStatement[@Else = "false"] + | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "||", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "||", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "||", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "||", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "||", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "||", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "==", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | | | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | | | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "==", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "short", @ModelConstant = "short", @PrimitiveType = "true", @TypeImage = "short", @Void = "false"] + | | | | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "==", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "long", @ModelConstant = "long", @PrimitiveType = "true", @TypeImage = "long", @Void = "false"] + | | | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "==", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "double", @ModelConstant = "double", @PrimitiveType = "true", @TypeImage = "double", @Void = "false"] + | | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "==", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "char", @ModelConstant = "char", @PrimitiveType = "true", @TypeImage = "char", @Void = "false"] + | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "==", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "byte", @ModelConstant = "byte", @PrimitiveType = "true", @TypeImage = "byte", @Void = "false"] + | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "==", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "c", @Name = "c", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | +- Block[@Size = "0", @containsComment = "false"] + +- IfStatement[@Else = "false"] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "equals", @MethodName = "equals", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "a", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""a"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getName", @MethodName = "getName", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "1", @Parenthesized = "true"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- ArgumentList[@Size = "0"] + | +- Block[@Size = "0", @containsComment = "false"] + +- IfStatement[@Else = "false"] + +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "||", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "equals", @MethodName = "equals", @ParenthesisDepth = "1", @Parenthesized = "true"] + | | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "clazz", @Name = "clazz", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "equals", @MethodName = "equals", @ParenthesisDepth = "1", @Parenthesized = "true"] + | +- ClassLiteral[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | +- ArgumentList[@Size = "1"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "clazz", @Name = "clazz", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- Block[@Size = "0", @containsComment = "false"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/ParserCornerCases17.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/ParserCornerCases17.txt new file mode 100644 index 0000000000..46fe967170 --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/ParserCornerCases17.txt @@ -0,0 +1,590 @@ ++- CompilationUnit[@PackageName = "", @declarationsAreInDefaultPackage = "true"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.io.BufferedReader", @ImportedSimpleName = "BufferedReader", @PackageName = "java.io", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.io.File", @ImportedSimpleName = "File", @PackageName = "java.io", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.io.FileReader", @ImportedSimpleName = "FileReader", @PackageName = "java.io", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.io.IOException", @ImportedSimpleName = "IOException", @PackageName = "java.io", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.sql.SQLException", @ImportedSimpleName = "SQLException", @PackageName = "java.sql", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.util.ArrayList", @ImportedSimpleName = "ArrayList", @PackageName = "java.util", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.util.Enumeration", @ImportedSimpleName = "Enumeration", @PackageName = "java.util", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.util.HashMap", @ImportedSimpleName = "HashMap", @PackageName = "java.util", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.util.List", @ImportedSimpleName = "List", @PackageName = "java.util", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.util.Map", @ImportedSimpleName = "Map", @PackageName = "java.util", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.util.zip.ZipEntry", @ImportedSimpleName = "ZipEntry", @PackageName = "java.util.zip", @Static = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "ParserCornerCases17", @CanonicalName = "ParserCornerCases17", @Enum = "false", @Image = "ParserCornerCases17", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "ParserCornerCases17", @TopLevel = "true", @Visibility = "public"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- ClassOrInterfaceBody[@Size = "9"] + +- ConstructorDeclaration[@Abstract = "false", @Arity = "0", @Image = "ParserCornerCases17", @Name = "ParserCornerCases17", @Varargs = "false", @Visibility = "public", @containsComment = "false"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ExplicitConstructorInvocation[@ArgumentCount = "0", @Qualified = "false", @Super = "true", @This = "false"] + | +- ArgumentList[@Size = "0"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "binaryLiterals", @MethodName = "binaryLiterals", @Name = "binaryLiterals", @Varargs = "false", @Visibility = "public", @Void = "true"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "9", @containsComment = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "byte", @ModelConstant = "byte", @PrimitiveType = "true", @TypeImage = "byte", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "aByte"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "aByte", @LambdaParameter = "false", @LocalVariable = "true", @Name = "aByte", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "aByte", @Visibility = "package"] + | | +- CastExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "byte", @ModelConstant = "byte", @PrimitiveType = "true", @TypeImage = "byte", @Void = "false"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b00100001", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "33.0", @ValueAsFloat = "33.0", @ValueAsInt = "33", @ValueAsLong = "33"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "short", @ModelConstant = "short", @PrimitiveType = "true", @TypeImage = "short", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "aShort"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "aShort", @LambdaParameter = "false", @LocalVariable = "true", @Name = "aShort", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "aShort", @Visibility = "package"] + | | +- CastExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "short", @ModelConstant = "short", @PrimitiveType = "true", @TypeImage = "short", @Void = "false"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b1010000101000101", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "41285.0", @ValueAsFloat = "41285.0", @ValueAsInt = "41285", @ValueAsLong = "41285"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "anInt1"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "anInt1", @LambdaParameter = "false", @LocalVariable = "true", @Name = "anInt1", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "anInt1", @Visibility = "package"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b10100001010001011010000101000101", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "2.705695045E9", @ValueAsFloat = "2.70569498E9", @ValueAsInt = "-1589272251", @ValueAsLong = "2705695045"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "anInt2"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "anInt2", @LambdaParameter = "false", @LocalVariable = "true", @Name = "anInt2", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "anInt2", @Visibility = "package"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b101", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "5.0", @ValueAsFloat = "5.0", @ValueAsInt = "5", @ValueAsLong = "5"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "anInt3"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "anInt3", @LambdaParameter = "false", @LocalVariable = "true", @Name = "anInt3", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "anInt3", @Visibility = "package"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0B101", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "5.0", @ValueAsFloat = "5.0", @ValueAsInt = "5", @ValueAsLong = "5"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "long", @ModelConstant = "long", @PrimitiveType = "true", @TypeImage = "long", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "aLong"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "aLong", @LambdaParameter = "false", @LocalVariable = "true", @Name = "aLong", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "aLong", @Visibility = "package"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b1010000101000101101000010100010110100001010001011010000101000101L", @IntLiteral = "false", @Integral = "true", @LongLiteral = "true", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "long", @StringLiteral = "false", @ValueAsDouble = "-6.8258723397796086E18", @ValueAsFloat = "-6.8258721E18", @ValueAsInt = "-1589272251", @ValueAsLong = "-6825872339779608251"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "int", @Void = "false"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | +- ArrayDimensions[@Size = "1"] + | | | +- ArrayTypeDim[@Varargs = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "phases"] + | | +- VariableDeclaratorId[@ArrayType = "true", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "phases", @LambdaParameter = "false", @LocalVariable = "true", @Name = "phases", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "phases", @Visibility = "package"] + | | +- ArrayInitializer[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b00110001", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "49.0", @ValueAsFloat = "49.0", @ValueAsInt = "49", @ValueAsLong = "49"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b01100010", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "98.0", @ValueAsFloat = "98.0", @ValueAsInt = "98", @ValueAsLong = "98"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b11000100", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "196.0", @ValueAsFloat = "196.0", @ValueAsInt = "196", @ValueAsLong = "196"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b10001001", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "137.0", @ValueAsFloat = "137.0", @ValueAsInt = "137", @ValueAsLong = "137"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b00010011", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "19.0", @ValueAsFloat = "19.0", @ValueAsInt = "19", @ValueAsLong = "19"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b00100110", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "38.0", @ValueAsFloat = "38.0", @ValueAsInt = "38", @ValueAsLong = "38"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b01001100", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "76.0", @ValueAsFloat = "76.0", @ValueAsInt = "76", @ValueAsLong = "76"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b10011000", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "152.0", @ValueAsFloat = "152.0", @ValueAsInt = "152", @ValueAsLong = "152"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "instruction"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "instruction", @LambdaParameter = "false", @LocalVariable = "true", @Name = "instruction", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "instruction", @Visibility = "package"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "0.0", @ValueAsFloat = "0.0", @ValueAsInt = "0", @ValueAsLong = "0"] + | +- IfStatement[@Else = "false"] + | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "==", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "&", @ParenthesisDepth = "1", @Parenthesized = "true"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "instruction", @Name = "instruction", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b11100000", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "224.0", @ValueAsFloat = "224.0", @ValueAsInt = "224", @ValueAsLong = "224"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b00000000", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "0.0", @ValueAsFloat = "0.0", @ValueAsInt = "0", @ValueAsLong = "0"] + | +- Block[@Size = "2", @containsComment = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{final}", @ExplicitModifiers = "{final}"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "register"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "register", @LambdaParameter = "false", @LocalVariable = "true", @Name = "register", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "register", @Visibility = "package"] + | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "&", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "instruction", @Name = "instruction", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b00001111", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "15.0", @ValueAsFloat = "15.0", @ValueAsInt = "15", @ValueAsLong = "15"] + | +- SwitchStatement[@DefaultCase = "true", @ExhaustiveEnumSwitch = "false"] + | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "&", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "instruction", @Name = "instruction", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b11110000", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "240.0", @ValueAsFloat = "240.0", @ValueAsInt = "240", @ValueAsLong = "240"] + | +- SwitchFallthroughBranch[] + | | +- SwitchLabel[@Default = "false"] + | | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b00000000", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "0.0", @ValueAsFloat = "0.0", @ValueAsInt = "0", @ValueAsLong = "0"] + | | +- BreakStatement[@Label = null] + | +- SwitchFallthroughBranch[] + | | +- SwitchLabel[@Default = "false"] + | | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b00010000", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "16.0", @ValueAsFloat = "16.0", @ValueAsInt = "16", @ValueAsLong = "16"] + | | +- BreakStatement[@Label = null] + | +- SwitchFallthroughBranch[] + | | +- SwitchLabel[@Default = "false"] + | | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b00100000", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "32.0", @ValueAsFloat = "32.0", @ValueAsInt = "32", @ValueAsLong = "32"] + | | +- BreakStatement[@Label = null] + | +- SwitchFallthroughBranch[] + | | +- SwitchLabel[@Default = "false"] + | | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b00110000", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "48.0", @ValueAsFloat = "48.0", @ValueAsInt = "48", @ValueAsLong = "48"] + | | +- BreakStatement[@Label = null] + | +- SwitchFallthroughBranch[] + | | +- SwitchLabel[@Default = "false"] + | | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b01000000", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "64.0", @ValueAsFloat = "64.0", @ValueAsInt = "64", @ValueAsLong = "64"] + | | +- BreakStatement[@Label = null] + | +- SwitchFallthroughBranch[] + | | +- SwitchLabel[@Default = "false"] + | | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b01010000", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "80.0", @ValueAsFloat = "80.0", @ValueAsInt = "80", @ValueAsLong = "80"] + | | +- BreakStatement[@Label = null] + | +- SwitchFallthroughBranch[] + | | +- SwitchLabel[@Default = "false"] + | | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b01100000", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "96.0", @ValueAsFloat = "96.0", @ValueAsInt = "96", @ValueAsLong = "96"] + | | +- BreakStatement[@Label = null] + | +- SwitchFallthroughBranch[] + | | +- SwitchLabel[@Default = "false"] + | | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b01110000", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "112.0", @ValueAsFloat = "112.0", @ValueAsInt = "112", @ValueAsLong = "112"] + | | +- BreakStatement[@Label = null] + | +- SwitchFallthroughBranch[] + | +- SwitchLabel[@Default = "true"] + | +- ThrowStatement[] + | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "IllegalArgumentException", @TypeImage = "IllegalArgumentException", @Void = "false"] + | +- ArgumentList[@Size = "0"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "underscoreInNumericLiterals", @MethodName = "underscoreInNumericLiterals", @Name = "underscoreInNumericLiterals", @Varargs = "false", @Visibility = "public", @Void = "true"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "15", @containsComment = "true"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "long", @ModelConstant = "long", @PrimitiveType = "true", @TypeImage = "long", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "creditCardNumber"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "creditCardNumber", @LambdaParameter = "false", @LocalVariable = "true", @Name = "creditCardNumber", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "creditCardNumber", @Visibility = "package"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "1234_5678_9012_3456L", @IntLiteral = "false", @Integral = "true", @LongLiteral = "true", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "long", @StringLiteral = "false", @ValueAsDouble = "1.234567890123456E15", @ValueAsFloat = "1.23456795E15", @ValueAsInt = "1015724736", @ValueAsLong = "1234567890123456"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "long", @ModelConstant = "long", @PrimitiveType = "true", @TypeImage = "long", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "socialSecurityNumber"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "socialSecurityNumber", @LambdaParameter = "false", @LocalVariable = "true", @Name = "socialSecurityNumber", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "socialSecurityNumber", @Visibility = "package"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "999_99_9999L", @IntLiteral = "false", @Integral = "true", @LongLiteral = "true", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "long", @StringLiteral = "false", @ValueAsDouble = "9.99999999E8", @ValueAsFloat = "1.0E9", @ValueAsInt = "999999999", @ValueAsLong = "999999999"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "float", @ModelConstant = "float", @PrimitiveType = "true", @TypeImage = "float", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "pi"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "pi", @LambdaParameter = "false", @LocalVariable = "true", @Name = "pi", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "pi", @Visibility = "package"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "true", @Image = "3.14_15F", @IntLiteral = "false", @Integral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "float", @StringLiteral = "false", @ValueAsDouble = "3.1415", @ValueAsFloat = "3.1415", @ValueAsInt = "3", @ValueAsLong = "3"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "long", @ModelConstant = "long", @PrimitiveType = "true", @TypeImage = "long", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "hexBytes"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "hexBytes", @LambdaParameter = "false", @LocalVariable = "true", @Name = "hexBytes", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "hexBytes", @Visibility = "package"] + | | +- NumericLiteral[@Base = "16", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0xFF_EC_DE_5E", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "4.293713502E9", @ValueAsFloat = "4.29371341E9", @ValueAsInt = "-1253794", @ValueAsLong = "4293713502"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "long", @ModelConstant = "long", @PrimitiveType = "true", @TypeImage = "long", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "hexWords"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "hexWords", @LambdaParameter = "false", @LocalVariable = "true", @Name = "hexWords", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "hexWords", @Visibility = "package"] + | | +- NumericLiteral[@Base = "16", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0xCAFE_BABE", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "3.405691582E9", @ValueAsFloat = "3.40569165E9", @ValueAsInt = "-889275714", @ValueAsLong = "3405691582"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "long", @ModelConstant = "long", @PrimitiveType = "true", @TypeImage = "long", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "maxLong"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "maxLong", @LambdaParameter = "false", @LocalVariable = "true", @Name = "maxLong", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "maxLong", @Visibility = "package"] + | | +- NumericLiteral[@Base = "16", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0x7fff_ffff_ffff_ffffL", @IntLiteral = "false", @Integral = "true", @LongLiteral = "true", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "long", @StringLiteral = "false", @ValueAsDouble = "9.223372036854776E18", @ValueAsFloat = "9.223372E18", @ValueAsInt = "-1", @ValueAsLong = "9223372036854775807"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "byte", @ModelConstant = "byte", @PrimitiveType = "true", @TypeImage = "byte", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "nybbles"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "nybbles", @LambdaParameter = "false", @LocalVariable = "true", @Name = "nybbles", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "nybbles", @Visibility = "package"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b0010_0101", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "37.0", @ValueAsFloat = "37.0", @ValueAsInt = "37", @ValueAsLong = "37"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "long", @ModelConstant = "long", @PrimitiveType = "true", @TypeImage = "long", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "bytes"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "bytes", @LambdaParameter = "false", @LocalVariable = "true", @Name = "bytes", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "bytes", @Visibility = "package"] + | | +- NumericLiteral[@Base = "2", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0b11010010_01101001_10010100_10010010", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "3.530134674E9", @ValueAsFloat = "3.53013478E9", @ValueAsInt = "-764832622", @ValueAsLong = "3530134674"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "_52"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "_52", @LambdaParameter = "false", @LocalVariable = "true", @Name = "_52", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "_52", @Visibility = "package"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "1", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "1.0", @ValueAsFloat = "1.0", @ValueAsInt = "1", @ValueAsLong = "1"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "x1"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "x1", @LambdaParameter = "false", @LocalVariable = "true", @Name = "x1", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "x1", @Visibility = "package"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "_52", @Name = "_52", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "x2"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "x2", @LambdaParameter = "false", @LocalVariable = "true", @Name = "x2", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "x2", @Visibility = "package"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "5_2", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "52.0", @ValueAsFloat = "52.0", @ValueAsInt = "52", @ValueAsLong = "52"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "x4"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "x4", @LambdaParameter = "false", @LocalVariable = "true", @Name = "x4", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "x4", @Visibility = "package"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "5_______2", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "52.0", @ValueAsFloat = "52.0", @ValueAsInt = "52", @ValueAsLong = "52"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "x7"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "x7", @LambdaParameter = "false", @LocalVariable = "true", @Name = "x7", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "x7", @Visibility = "package"] + | | +- NumericLiteral[@Base = "16", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0x5_2", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "82.0", @ValueAsFloat = "82.0", @ValueAsInt = "82", @ValueAsLong = "82"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "x9"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "x9", @LambdaParameter = "false", @LocalVariable = "true", @Name = "x9", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "x9", @Visibility = "package"] + | | +- NumericLiteral[@Base = "8", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0_52", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "42.0", @ValueAsFloat = "42.0", @ValueAsInt = "42", @ValueAsLong = "42"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | +- VariableDeclarator[@Initializer = "true", @Name = "x10"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "x10", @LambdaParameter = "false", @LocalVariable = "true", @Name = "x10", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "x10", @Visibility = "package"] + | +- NumericLiteral[@Base = "8", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "05_2", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "42.0", @ValueAsFloat = "42.0", @ValueAsInt = "42", @ValueAsLong = "42"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "stringsInSwitchStatements", @MethodName = "stringsInSwitchStatements", @Name = "stringsInSwitchStatements", @Varargs = "false", @Visibility = "public", @Void = "false"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "4", @containsComment = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "dayOfWeekArg"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "dayOfWeekArg", @LambdaParameter = "false", @LocalVariable = "true", @Name = "dayOfWeekArg", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "dayOfWeekArg", @Visibility = "package"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Wednesday", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Wednesday"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "false", @Name = "typeOfDay"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "typeOfDay", @LambdaParameter = "false", @LocalVariable = "true", @Name = "typeOfDay", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "typeOfDay", @Visibility = "package"] + | +- SwitchStatement[@DefaultCase = "true", @ExhaustiveEnumSwitch = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "dayOfWeekArg", @Name = "dayOfWeekArg", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- SwitchFallthroughBranch[] + | | | +- SwitchLabel[@Default = "false"] + | | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Monday", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Monday"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | | +- ExpressionStatement[] + | | | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "typeOfDay", @Name = "typeOfDay", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Start of work week", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Start of work week"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | | +- BreakStatement[@Label = null] + | | +- SwitchFallthroughBranch[] + | | | +- SwitchLabel[@Default = "false"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Tuesday", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Tuesday"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- SwitchFallthroughBranch[] + | | | +- SwitchLabel[@Default = "false"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Wednesday", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Wednesday"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- SwitchFallthroughBranch[] + | | | +- SwitchLabel[@Default = "false"] + | | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Thursday", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Thursday"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | | +- ExpressionStatement[] + | | | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "typeOfDay", @Name = "typeOfDay", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Midweek", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Midweek"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | | +- BreakStatement[@Label = null] + | | +- SwitchFallthroughBranch[] + | | | +- SwitchLabel[@Default = "false"] + | | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Friday", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Friday"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | | +- ExpressionStatement[] + | | | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "typeOfDay", @Name = "typeOfDay", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "End of work week", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""End of work week"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | | +- BreakStatement[@Label = null] + | | +- SwitchFallthroughBranch[] + | | | +- SwitchLabel[@Default = "false"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Saturday", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Saturday"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- SwitchFallthroughBranch[] + | | | +- SwitchLabel[@Default = "false"] + | | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Sunday", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Sunday"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | | +- ExpressionStatement[] + | | | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "typeOfDay", @Name = "typeOfDay", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Weekend", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Weekend"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | | +- BreakStatement[@Label = null] + | | +- SwitchFallthroughBranch[] + | | +- SwitchLabel[@Default = "true"] + | | +- ThrowStatement[] + | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "IllegalArgumentException", @TypeImage = "IllegalArgumentException", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "+", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "Invalid day of the week: ", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""Invalid day of the week: "", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "dayOfWeekArg", @Name = "dayOfWeekArg", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ReturnStatement[] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "typeOfDay", @Name = "typeOfDay", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "ParserCornerCases17$MyClass", @CanonicalName = "ParserCornerCases17.MyClass", @Enum = "false", @Image = "MyClass", @Interface = "false", @Local = "false", @Nested = "true", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "MyClass", @TopLevel = "false", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- TypeParameters[@Size = "1"] + | | +- TypeParameter[@Image = "X", @ParameterName = "X", @TypeBound = "false"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "1", @Image = "MyClass", @Name = "MyClass", @Varargs = "false", @Visibility = "package", @containsComment = "false"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- TypeParameters[@Size = "1"] + | | +- TypeParameter[@Image = "T", @ParameterName = "T", @TypeBound = "false"] + | +- FormalParameters[@Size = "1"] + | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "T", @TypeImage = "T", @Void = "false"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "t", @LambdaParameter = "false", @LocalVariable = "false", @Name = "t", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "t", @Visibility = "package"] + | +- Block[@Size = "0", @containsComment = "false"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "typeInferenceForGenericInstanceCreation", @MethodName = "typeInferenceForGenericInstanceCreation", @Name = "typeInferenceForGenericInstanceCreation", @Varargs = "false", @Visibility = "public", @Void = "true"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | +- FormalParameters[@Size = "0"] + | +- Block[@Size = "6", @containsComment = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Map", @TypeImage = "Map", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "2"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "List", @TypeImage = "List", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "myMap"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "myMap", @LambdaParameter = "false", @LocalVariable = "true", @Name = "myMap", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "myMap", @Visibility = "package"] + | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "true", @DiamondTypeArgs = "true", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "HashMap", @TypeImage = "HashMap", @Void = "false"] + | | | +- TypeArguments[@Diamond = "true", @Size = "0"] + | | +- ArgumentList[@Size = "0"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "List", @TypeImage = "List", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "list"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "list", @LambdaParameter = "false", @LocalVariable = "true", @Name = "list", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "list", @Visibility = "package"] + | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "true", @DiamondTypeArgs = "true", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ArrayList", @TypeImage = "ArrayList", @Void = "false"] + | | | +- TypeArguments[@Diamond = "true", @Size = "0"] + | | +- ArgumentList[@Size = "0"] + | +- ExpressionStatement[] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "add", @MethodName = "add", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "list", @Name = "list", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "A", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""A"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "List", @TypeImage = "List", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- WildcardType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @LowerBound = "false", @PrimitiveType = "false", @TypeImage = "?", @UpperBound = "true", @Void = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "list2"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "list2", @LambdaParameter = "false", @LocalVariable = "true", @Name = "list2", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "list2", @Visibility = "package"] + | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "true", @DiamondTypeArgs = "true", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ArrayList", @TypeImage = "ArrayList", @Void = "false"] + | | | +- TypeArguments[@Diamond = "true", @Size = "0"] + | | +- ArgumentList[@Size = "0"] + | +- ExpressionStatement[] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "addAll", @MethodName = "addAll", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "list", @Name = "list", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "list2", @Name = "list2", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "MyClass", @TypeImage = "MyClass", @Void = "false"] + | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | +- VariableDeclarator[@Initializer = "true", @Name = "myObject"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "myObject", @LambdaParameter = "false", @LocalVariable = "true", @Name = "myObject", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "myObject", @Visibility = "package"] + | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "true", @DiamondTypeArgs = "true", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "MyClass", @TypeImage = "MyClass", @Void = "false"] + | | +- TypeArguments[@Diamond = "true", @Size = "0"] + | +- ArgumentList[@Size = "1"] + | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = """", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "theTryWithResourcesStatement", @MethodName = "theTryWithResourcesStatement", @Name = "theTryWithResourcesStatement", @Varargs = "false", @Visibility = "public", @Void = "true"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | +- FormalParameters[@Size = "0"] + | +- ThrowsList[@Size = "1"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "IOException", @TypeImage = "IOException", @Void = "false"] + | +- Block[@Size = "7", @containsComment = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "path"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "path", @LambdaParameter = "false", @LocalVariable = "true", @Name = "path", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "path", @Visibility = "package"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "/foo", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""/foo"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- TryStatement[@TryWithResources = "true"] + | | +- ResourceList[@Size = "1", @TrailingSemiColon = "false"] + | | | +- Resource[@ConciseResource = "false", @StableName = "br"] + | | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{final}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "BufferedReader", @TypeImage = "BufferedReader", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "br"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "br", @LambdaParameter = "false", @LocalVariable = "true", @Name = "br", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "br", @Visibility = "package"] + | | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "BufferedReader", @TypeImage = "BufferedReader", @Void = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "FileReader", @TypeImage = "FileReader", @Void = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "path", @Name = "path", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "first"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "first", @LambdaParameter = "false", @LocalVariable = "true", @Name = "first", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "first", @Visibility = "package"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "readLine", @MethodName = "readLine", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "br", @Name = "br", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArgumentList[@Size = "0"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "outputFileName"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "outputFileName", @LambdaParameter = "false", @LocalVariable = "true", @Name = "outputFileName", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "outputFileName", @Visibility = "package"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "/foo-out", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""/foo-out"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "zipFileName"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "zipFileName", @LambdaParameter = "false", @LocalVariable = "true", @Name = "zipFileName", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "zipFileName", @Visibility = "package"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "/foo.zip", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""/foo.zip"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "true", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Charset", @TypeImage = "Charset", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "charset"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "charset", @LambdaParameter = "false", @LocalVariable = "true", @Name = "charset", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "charset", @Visibility = "package"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "forName", @MethodName = "forName", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "true", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Charset", @TypeImage = "Charset", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "US-ASCII", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""US-ASCII"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "true", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Path", @TypeImage = "Path", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "outputFilePath"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "outputFilePath", @LambdaParameter = "false", @LocalVariable = "true", @Name = "outputFilePath", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "outputFilePath", @Visibility = "package"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "get", @MethodName = "get", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "true", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Paths", @TypeImage = "Paths", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "outputFileName", @Name = "outputFileName", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- TryStatement[@TryWithResources = "true"] + | +- ResourceList[@Size = "2", @TrailingSemiColon = "false"] + | | +- Resource[@ConciseResource = "false", @StableName = "zf"] + | | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{final}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "true", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ZipFile", @TypeImage = "ZipFile", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "zf"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "zf", @LambdaParameter = "false", @LocalVariable = "true", @Name = "zf", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "zf", @Visibility = "package"] + | | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "true", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ZipFile", @TypeImage = "ZipFile", @Void = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "zipFileName", @Name = "zipFileName", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- Resource[@ConciseResource = "false", @StableName = "writer"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{final}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "true", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "BufferedWriter", @TypeImage = "BufferedWriter", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "writer"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "writer", @LambdaParameter = "false", @LocalVariable = "true", @Name = "writer", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "writer", @Visibility = "package"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "newBufferedWriter", @MethodName = "newBufferedWriter", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "true", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Files", @TypeImage = "Files", @Void = "false"] + | | +- ArgumentList[@Size = "2"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "outputFilePath", @Name = "outputFilePath", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "charset", @Name = "charset", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ForStatement[] + | +- ForInit[] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Enumeration", @TypeImage = "Enumeration", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- WildcardType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @LowerBound = "false", @PrimitiveType = "false", @TypeImage = "?", @UpperBound = "true", @Void = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ZipEntry", @TypeImage = "ZipEntry", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "entries"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "entries", @LambdaParameter = "false", @LocalVariable = "true", @Name = "entries", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "entries", @Visibility = "package"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "entries", @MethodName = "entries", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "zf", @Name = "zf", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArgumentList[@Size = "0"] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "hasMoreElements", @MethodName = "hasMoreElements", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "entries", @Name = "entries", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArgumentList[@Size = "0"] + | +- Block[@Size = "3", @containsComment = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "newLine"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "newLine", @LambdaParameter = "false", @LocalVariable = "true", @Name = "newLine", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "newLine", @Visibility = "package"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getProperty", @MethodName = "getProperty", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "line.separator", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""line.separator"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "zipEntryName"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "zipEntryName", @LambdaParameter = "false", @LocalVariable = "true", @Name = "zipEntryName", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "zipEntryName", @Visibility = "package"] + | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "+", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getName", @MethodName = "getName", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- CastExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "1", @Parenthesized = "true"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "true", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ZipEntry", @TypeImage = "ZipEntry", @Void = "false"] + | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "nextElement", @MethodName = "nextElement", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "entries", @Name = "entries", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- ArgumentList[@Size = "0"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "newLine", @Name = "newLine", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ExpressionStatement[] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "write", @MethodName = "write", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "writer", @Name = "writer", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ArgumentList[@Size = "3"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "zipEntryName", @Name = "zipEntryName", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "0.0", @ValueAsFloat = "0.0", @ValueAsInt = "0", @ValueAsLong = "0"] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "length", @MethodName = "length", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "zipEntryName", @Name = "zipEntryName", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ArgumentList[@Size = "0"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "catchingMultipleExceptionTypes", @MethodName = "catchingMultipleExceptionTypes", @Name = "catchingMultipleExceptionTypes", @Varargs = "false", @Visibility = "public", @Void = "true"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | +- FormalParameters[@Size = "0"] + | +- ThrowsList[@Size = "2"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "IOException", @TypeImage = "IOException", @Void = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "SQLException", @TypeImage = "SQLException", @Void = "false"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- TryStatement[@TryWithResources = "false"] + | +- Block[@Size = "1", @containsComment = "false"] + | | +- IfStatement[@Else = "false"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "createNewFile", @MethodName = "createNewFile", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "File", @TypeImage = "File", @Void = "false"] + | | | | +- ArgumentList[@Size = "1"] + | | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "foo", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""foo"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ThrowStatement[] + | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "SQLException", @TypeImage = "SQLException", @Void = "false"] + | | +- ArgumentList[@Size = "0"] + | +- CatchClause[] + | +- CatchParameter[@Multicatch = "true", @Name = "ex", @Visibility = "package"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- UnionType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "IOException | SQLException", @Void = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "IOException", @TypeImage = "IOException", @Void = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "SQLException", @TypeImage = "SQLException", @Void = "false"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "true", @Field = "false", @FormalParameter = "false", @Image = "ex", @LambdaParameter = "false", @LocalVariable = "false", @Name = "ex", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "ex", @Visibility = "package"] + | +- Block[@Size = "2", @containsComment = "false"] + | +- ExpressionStatement[] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "printStackTrace", @MethodName = "printStackTrace", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "ex", @Name = "ex", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArgumentList[@Size = "0"] + | +- ThrowStatement[] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "ex", @Name = "ex", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "expressionInCastExpression", @MethodName = "expressionInCastExpression", @Name = "expressionInCastExpression", @Varargs = "false", @Visibility = "public", @Void = "true"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + +- FormalParameters[@Size = "0"] + +- Block[@Size = "1", @containsComment = "false"] + +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + +- VariableDeclarator[@Initializer = "true", @Name = "initialSizeGlobal"] + +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "initialSizeGlobal", @LambdaParameter = "false", @LocalVariable = "true", @Name = "initialSizeGlobal", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "initialSizeGlobal", @Visibility = "package"] + +- CastExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "*", @ParenthesisDepth = "1", @Parenthesized = "true"] + +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "size", @MethodName = "size", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "profilingContext.m_profileItems", @Name = "profilingContext.m_profileItems", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "profilingContext.m_profileItems", @Void = "false"] + | +- ArgumentList[@Size = "0"] + +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "*", @ParenthesisDepth = "1", @Parenthesized = "true"] + +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "true", @Expression = "true", @FloatLiteral = "false", @Image = "150.0", @IntLiteral = "false", @Integral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "double", @StringLiteral = "false", @ValueAsDouble = "150.0", @ValueAsFloat = "150.0", @ValueAsInt = "150", @ValueAsLong = "150"] + +- NumericLiteral[@Base = "8", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "true", @Expression = "true", @FloatLiteral = "false", @Image = "0.30", @IntLiteral = "false", @Integral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "double", @StringLiteral = "false", @ValueAsDouble = "0.3", @ValueAsFloat = "0.3", @ValueAsInt = "0", @ValueAsLong = "0"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/ParserCornerCases18.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/ParserCornerCases18.txt new file mode 100644 index 0000000000..c9fea67c45 --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/ParserCornerCases18.txt @@ -0,0 +1,1095 @@ ++- CompilationUnit[@PackageName = "", @declarationsAreInDefaultPackage = "true"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.awt.Button", @ImportedSimpleName = "Button", @PackageName = "java.awt", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.io.File", @ImportedSimpleName = "File", @PackageName = "java.io", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.io.FileFilter", @ImportedSimpleName = "FileFilter", @PackageName = "java.io", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.security.PrivilegedAction", @ImportedSimpleName = "PrivilegedAction", @PackageName = "java.security", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.util.Comparator", @ImportedSimpleName = "Comparator", @PackageName = "java.util", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.util.concurrent.Callable", @ImportedSimpleName = "Callable", @PackageName = "java.util.concurrent", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.util.function.Function", @ImportedSimpleName = "Function", @PackageName = "java.util.function", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.util.function.IntFunction", @ImportedSimpleName = "IntFunction", @PackageName = "java.util.function", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.util.function.Supplier", @ImportedSimpleName = "Supplier", @PackageName = "java.util.function", @Static = "false"] + +- ImportDeclaration[@ImportOnDemand = "false", @ImportedName = "java.util.stream.Stream", @ImportedSimpleName = "Stream", @PackageName = "java.util.stream", @Static = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "ParserCornerCases18", @CanonicalName = "ParserCornerCases18", @Enum = "false", @Image = "ParserCornerCases18", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "ParserCornerCases18", @TopLevel = "true", @Visibility = "public"] + | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | +- ClassOrInterfaceBody[@Size = "26"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "lambdas", @MethodName = "lambdas", @Name = "lambdas", @Varargs = "false", @Visibility = "public", @Void = "true"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "24", @containsComment = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "FileFilter", @TypeImage = "FileFilter", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "java"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "java", @LambdaParameter = "false", @LocalVariable = "true", @Name = "java", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "java", @Visibility = "package"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "1"] + | | | | +- LambdaParameter[@TypeInferred = "false", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "File", @TypeImage = "File", @Void = "false"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "f", @LambdaParameter = "true", @LocalVariable = "false", @Name = "f", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "f", @Visibility = "package"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "endsWith", @MethodName = "endsWith", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getName", @MethodName = "getName", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "f", @Name = "f", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- ArgumentList[@Size = "1"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = ".java", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "".java"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "FileFilter", @TypeImage = "FileFilter", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "java2"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "java2", @LambdaParameter = "false", @LocalVariable = "true", @Name = "java2", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "java2", @Visibility = "package"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "1"] + | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "f", @LambdaParameter = "true", @LocalVariable = "false", @Name = "f", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "f", @Visibility = "package"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "endsWith", @MethodName = "endsWith", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getName", @MethodName = "getName", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "f", @Name = "f", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- ArgumentList[@Size = "1"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = ".java", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "".java"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "FileFilter", @TypeImage = "FileFilter", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "java3"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "java3", @LambdaParameter = "false", @LocalVariable = "true", @Name = "java3", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "java3", @Visibility = "package"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "1"] + | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "f", @LambdaParameter = "true", @LocalVariable = "false", @Name = "f", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "f", @Visibility = "package"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "endsWith", @MethodName = "endsWith", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getName", @MethodName = "getName", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "f", @Name = "f", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- ArgumentList[@Size = "1"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = ".java", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "".java"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "FileFilter", @TypeImage = "FileFilter", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "java4"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "java4", @LambdaParameter = "false", @LocalVariable = "true", @Name = "java4", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "java4", @Visibility = "package"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "1", @Parenthesized = "true"] + | | | +- LambdaParameterList[@Size = "1"] + | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "f", @LambdaParameter = "true", @LocalVariable = "false", @Name = "f", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "f", @Visibility = "package"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "endsWith", @MethodName = "endsWith", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getName", @MethodName = "getName", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "f", @Name = "f", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- ArgumentList[@Size = "1"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = ".java", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "".java"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- ExpressionStatement[] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "forEach", @MethodName = "forEach", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "parallel", @MethodName = "parallel", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "range", @MethodName = "range", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "IntStream", @Name = "IntStream", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "IntStream", @Void = "false"] + | | | | | +- ArgumentList[@Size = "2"] + | | | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "0.0", @ValueAsFloat = "0.0", @ValueAsInt = "0", @ValueAsLong = "0"] + | | | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "length", @Name = "length", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "array", @Name = "array", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "array", @Void = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- ArgumentList[@Size = "1"] + | | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "1"] + | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "i", @LambdaParameter = "true", @LocalVariable = "false", @Name = "i", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "i", @Visibility = "package"] + | | | +- Block[@Size = "1", @containsComment = "false"] + | | | +- ExpressionStatement[] + | | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArrayAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "array", @Name = "array", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "i", @Name = "i", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "apply", @MethodName = "apply", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "generator", @Name = "generator", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "generator", @Void = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "i", @Name = "i", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "FileFilter", @Void = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "FileFilter", @TypeImage = "FileFilter", @Void = "false"] + | | | | +- ArrayDimensions[@Size = "1"] + | | | | +- ArrayTypeDim[@Varargs = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "filters"] + | | | +- VariableDeclaratorId[@ArrayType = "true", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "filters", @LambdaParameter = "false", @LocalVariable = "true", @Name = "filters", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "filters", @Visibility = "package"] + | | | +- ArrayAllocation[@ArrayDepth = "1", @CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "FileFilter", @Void = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "FileFilter", @TypeImage = "FileFilter", @Void = "false"] + | | | | +- ArrayDimensions[@Size = "1"] + | | | | +- ArrayTypeDim[@Varargs = "false"] + | | | +- ArrayInitializer[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- LambdaParameterList[@Size = "1"] + | | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "f", @LambdaParameter = "true", @LocalVariable = "false", @Name = "f", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "f", @Visibility = "package"] + | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "exists", @MethodName = "exists", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "f", @Name = "f", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- LambdaParameterList[@Size = "1"] + | | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "f", @LambdaParameter = "true", @LocalVariable = "false", @Name = "f", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "f", @Visibility = "package"] + | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "canRead", @MethodName = "canRead", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "f", @Name = "f", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "1"] + | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "f", @LambdaParameter = "true", @LocalVariable = "false", @Name = "f", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "f", @Visibility = "package"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "startsWith", @MethodName = "startsWith", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getName", @MethodName = "getName", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "f", @Name = "f", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- ArgumentList[@Size = "1"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "q", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""q"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- ExpressionStatement[] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "filterFiles", @MethodName = "filterFiles", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- ArrayAllocation[@ArrayDepth = "1", @CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "FileFilter", @Void = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "FileFilter", @TypeImage = "FileFilter", @Void = "false"] + | | | | +- ArrayDimensions[@Size = "1"] + | | | | +- ArrayTypeDim[@Varargs = "false"] + | | | +- ArrayInitializer[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- LambdaParameterList[@Size = "1"] + | | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "f", @LambdaParameter = "true", @LocalVariable = "false", @Name = "f", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "f", @Visibility = "package"] + | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "exists", @MethodName = "exists", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "f", @Name = "f", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- LambdaParameterList[@Size = "1"] + | | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "f", @LambdaParameter = "true", @LocalVariable = "false", @Name = "f", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "f", @Visibility = "package"] + | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "canRead", @MethodName = "canRead", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "f", @Name = "f", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "1"] + | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "f", @LambdaParameter = "true", @LocalVariable = "false", @Name = "f", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "f", @Visibility = "package"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "startsWith", @MethodName = "startsWith", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getName", @MethodName = "getName", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "f", @Name = "f", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- ArgumentList[@Size = "1"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "q", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""q"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "user"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "user", @LambdaParameter = "false", @LocalVariable = "true", @Name = "user", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "user", @Visibility = "package"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "doPrivileged", @MethodName = "doPrivileged", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "0"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getProperty", @MethodName = "getProperty", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "user.name", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""user.name"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Callable", @TypeImage = "Callable", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "c"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "c", @LambdaParameter = "false", @LocalVariable = "true", @Name = "c", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "c", @Visibility = "package"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "0"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "done", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""done"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Runnable", @TypeImage = "Runnable", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "r"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "r", @LambdaParameter = "false", @LocalVariable = "true", @Name = "r", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "r", @Visibility = "package"] + | | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "0"] + | | | +- Block[@Size = "1", @containsComment = "false"] + | | | +- ExpressionStatement[] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "println", @MethodName = "println", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "out", @Name = "out", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "done", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""done"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Supplier", @TypeImage = "Supplier", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Runnable", @TypeImage = "Runnable", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "sup"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "sup", @LambdaParameter = "false", @LocalVariable = "true", @Name = "sup", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "sup", @Visibility = "package"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "0"] + | | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "0"] + | | | +- Block[@Size = "1", @containsComment = "false"] + | | | +- ExpressionStatement[] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "println", @MethodName = "println", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "out", @Name = "out", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "hi", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""hi"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "true", @ClassOrInterfaceType = "false", @Image = "boolean", @ModelConstant = "boolean", @PrimitiveType = "true", @TypeImage = "boolean", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "flag"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "flag", @LambdaParameter = "false", @LocalVariable = "true", @Name = "flag", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "flag", @Visibility = "package"] + | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = ">", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "1", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "1.0", @ValueAsFloat = "1.0", @ValueAsInt = "1", @ValueAsLong = "1"] + | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "2", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "2.0", @ValueAsFloat = "2.0", @ValueAsInt = "2", @ValueAsLong = "2"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Callable", @TypeImage = "Callable", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "c2"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "c2", @LambdaParameter = "false", @LocalVariable = "true", @Name = "c2", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "c2", @Visibility = "package"] + | | | +- ConditionalExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "flag", @Name = "flag", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "1", @Parenthesized = "true"] + | | | | +- LambdaParameterList[@Size = "0"] + | | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "23", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "23.0", @ValueAsFloat = "23.0", @ValueAsInt = "23", @ValueAsLong = "23"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "1", @Parenthesized = "true"] + | | | +- LambdaParameterList[@Size = "0"] + | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "42", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "42.0", @ValueAsFloat = "42.0", @ValueAsInt = "42", @ValueAsLong = "42"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "o"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "o", @LambdaParameter = "false", @LocalVariable = "true", @Name = "o", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "o", @Visibility = "package"] + | | | +- CastExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Runnable", @TypeImage = "Runnable", @Void = "false"] + | | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "0"] + | | | +- Block[@Size = "1", @containsComment = "false"] + | | | +- ExpressionStatement[] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "println", @MethodName = "println", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "out", @Name = "out", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "hi", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""hi"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | | +- ExpressionStatement[] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "run", @MethodName = "run", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "r1", @Name = "r1", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ParserCornerCases18", @TypeImage = "ParserCornerCases18", @Void = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- ArgumentList[@Size = "0"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Comparator", @TypeImage = "Comparator", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "comparer"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "comparer", @LambdaParameter = "false", @LocalVariable = "true", @Name = "comparer", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "comparer", @Visibility = "package"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "2"] + | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "s1", @LambdaParameter = "true", @LocalVariable = "false", @Name = "s1", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "s1", @Visibility = "package"] + | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "s2", @LambdaParameter = "true", @LocalVariable = "false", @Name = "s2", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "s2", @Visibility = "package"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "compareToIgnoreCase", @MethodName = "compareToIgnoreCase", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "s1", @Name = "s1", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "s2", @Name = "s2", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ExpressionStatement[] + | | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "comparer", @Name = "comparer", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "2"] + | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "s1", @LambdaParameter = "true", @LocalVariable = "false", @Name = "s1", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "s1", @Visibility = "package"] + | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "s2", @LambdaParameter = "true", @LocalVariable = "false", @Name = "s2", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "s2", @Visibility = "package"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "compareToIgnoreCase", @MethodName = "compareToIgnoreCase", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "s1", @Name = "s1", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "s2", @Name = "s2", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Button", @TypeImage = "Button", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "button"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "button", @LambdaParameter = "false", @LocalVariable = "true", @Name = "button", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "button", @Visibility = "package"] + | | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Button", @TypeImage = "Button", @Void = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- ExpressionStatement[] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "addActionListener", @MethodName = "addActionListener", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "button", @Name = "button", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "1"] + | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "e", @LambdaParameter = "true", @LocalVariable = "false", @Name = "e", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "e", @Visibility = "package"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "println", @MethodName = "println", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "out", @Name = "out", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + | | | +- ArgumentList[@Size = "1"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getModifiers", @MethodName = "getModifiers", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "e", @Name = "e", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "initialSizeGlobal"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "initialSizeGlobal", @LambdaParameter = "false", @LocalVariable = "true", @Name = "initialSizeGlobal", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "initialSizeGlobal", @Visibility = "package"] + | | | +- CastExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "*", @ParenthesisDepth = "1", @Parenthesized = "true"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "size", @MethodName = "size", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "profilingContext.m_profileItems", @Name = "profilingContext.m_profileItems", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "profilingContext.m_profileItems", @Void = "false"] + | | | | +- ArgumentList[@Size = "0"] + | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "*", @ParenthesisDepth = "1", @Parenthesized = "true"] + | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "true", @Expression = "true", @FloatLiteral = "false", @Image = "150.0", @IntLiteral = "false", @Integral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "double", @StringLiteral = "false", @ValueAsDouble = "150.0", @ValueAsFloat = "150.0", @ValueAsInt = "150", @ValueAsLong = "150"] + | | | +- NumericLiteral[@Base = "8", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "true", @Expression = "true", @FloatLiteral = "false", @Image = "0.30", @IntLiteral = "false", @Integral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "double", @StringLiteral = "false", @ValueAsDouble = "0.3", @ValueAsFloat = "0.3", @ValueAsInt = "0", @ValueAsLong = "0"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "BiConsumer", @TypeImage = "BiConsumer", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "2"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "lambda2"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "lambda2", @LambdaParameter = "false", @LocalVariable = "true", @Name = "lambda2", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "lambda2", @Visibility = "package"] + | | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "2"] + | | | | +- LambdaParameter[@TypeInferred = "false", @Visibility = "package"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "s", @LambdaParameter = "true", @LocalVariable = "false", @Name = "s", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "s", @Visibility = "package"] + | | | | +- LambdaParameter[@TypeInferred = "false", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "i", @LambdaParameter = "true", @LocalVariable = "false", @Name = "i", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "i", @Visibility = "package"] + | | | +- Block[@Size = "1", @containsComment = "false"] + | | | +- ExpressionStatement[] + | | | +- UnaryExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "++", @ParenthesisDepth = "0", @Parenthesized = "false", @Prefix = "false"] + | | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "i", @Name = "i", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "BiConsumer", @TypeImage = "BiConsumer", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "2"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "lambda2a"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "lambda2a", @LambdaParameter = "false", @LocalVariable = "true", @Name = "lambda2a", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "lambda2a", @Visibility = "package"] + | | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "2"] + | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "s", @LambdaParameter = "true", @LocalVariable = "false", @Name = "s", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "s", @Visibility = "package"] + | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "i", @LambdaParameter = "true", @LocalVariable = "false", @Name = "i", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "i", @Visibility = "package"] + | | | +- Block[@Size = "1", @containsComment = "false"] + | | | +- ExpressionStatement[] + | | | +- UnaryExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "++", @ParenthesisDepth = "0", @Parenthesized = "false", @Prefix = "false"] + | | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "i", @Name = "i", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "TriConsumer", @TypeImage = "TriConsumer", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "3"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Double", @TypeImage = "Double", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "lambda3"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "lambda3", @LambdaParameter = "false", @LocalVariable = "true", @Name = "lambda3", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "lambda3", @Visibility = "package"] + | | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- LambdaParameterList[@Size = "3"] + | | | | +- LambdaParameter[@TypeInferred = "false", @Visibility = "package"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "s", @LambdaParameter = "true", @LocalVariable = "false", @Name = "s", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "s", @Visibility = "package"] + | | | | +- LambdaParameter[@TypeInferred = "false", @Visibility = "package"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "i", @LambdaParameter = "true", @LocalVariable = "false", @Name = "i", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "i", @Visibility = "package"] + | | | | +- LambdaParameter[@TypeInferred = "false", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Double", @TypeImage = "Double", @Void = "false"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "d", @LambdaParameter = "true", @LocalVariable = "false", @Name = "d", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "d", @Visibility = "package"] + | | | +- Block[@Size = "1", @containsComment = "false"] + | | | +- ExpressionStatement[] + | | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "true", @Expression = "true", @Operator = "+=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "d", @Name = "d", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "i", @Name = "i", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "TriConsumer", @TypeImage = "TriConsumer", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "3"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Double", @TypeImage = "Double", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "lambda3a"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "lambda3a", @LambdaParameter = "false", @LocalVariable = "true", @Name = "lambda3a", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "lambda3a", @Visibility = "package"] + | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LambdaParameterList[@Size = "3"] + | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "s", @LambdaParameter = "true", @LocalVariable = "false", @Name = "s", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "s", @Visibility = "package"] + | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "i", @LambdaParameter = "true", @LocalVariable = "false", @Name = "i", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "i", @Visibility = "package"] + | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "d", @LambdaParameter = "true", @LocalVariable = "false", @Name = "d", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "d", @Visibility = "package"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ExpressionStatement[] + | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "true", @Expression = "true", @Operator = "+=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "d", @Name = "d", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "i", @Name = "i", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ClassOrInterfaceDeclaration[@Abstract = "true", @Annotation = "false", @Anonymous = "false", @BinaryName = "ParserCornerCases18$TriConsumer", @CanonicalName = "ParserCornerCases18.TriConsumer", @Enum = "false", @Image = "TriConsumer", @Interface = "true", @Local = "false", @Nested = "true", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "false", @SimpleName = "TriConsumer", @TopLevel = "false", @Visibility = "public"] + | | +- ModifierList[@EffectiveModifiers = "{public, abstract, static}", @ExplicitModifiers = "{public}"] + | | | +- Annotation[@AnnotationName = "FunctionalInterface", @SimpleName = "FunctionalInterface"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "FunctionalInterface", @TypeImage = "FunctionalInterface", @Void = "false"] + | | +- TypeParameters[@Size = "3"] + | | | +- TypeParameter[@Image = "A", @ParameterName = "A", @TypeBound = "false"] + | | | +- TypeParameter[@Image = "B", @ParameterName = "B", @TypeBound = "false"] + | | | +- TypeParameter[@Image = "C", @ParameterName = "C", @TypeBound = "false"] + | | +- ClassOrInterfaceBody[@Size = "1"] + | | +- MethodDeclaration[@Abstract = "true", @Arity = "3", @Image = "accept", @MethodName = "accept", @Name = "accept", @Varargs = "false", @Visibility = "public", @Void = "true"] + | | +- ModifierList[@EffectiveModifiers = "{public, abstract}", @ExplicitModifiers = "{}"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | +- FormalParameters[@Size = "3"] + | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "A", @TypeImage = "A", @Void = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "a", @LambdaParameter = "false", @LocalVariable = "false", @Name = "a", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "a", @Visibility = "package"] + | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "B", @TypeImage = "B", @Void = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "b", @LambdaParameter = "false", @LocalVariable = "false", @Name = "b", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "b", @Visibility = "package"] + | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "C", @TypeImage = "C", @Void = "false"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "c", @LambdaParameter = "false", @LocalVariable = "false", @Name = "c", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "c", @Visibility = "package"] + | +- FieldDeclaration[@VariableName = "r1", @Visibility = "package"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Runnable", @TypeImage = "Runnable", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "r1"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "true", @FormalParameter = "false", @Image = "r1", @LambdaParameter = "false", @LocalVariable = "false", @Name = "r1", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "r1", @Visibility = "package"] + | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LambdaParameterList[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ExpressionStatement[] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "println", @MethodName = "println", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "out", @Name = "out", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- ThisExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "toDoLater", @MethodName = "toDoLater", @Name = "toDoLater", @Varargs = "false", @Visibility = "public", @Void = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Runnable", @TypeImage = "Runnable", @Void = "false"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LambdaParameterList[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ExpressionStatement[] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "println", @MethodName = "println", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "out", @Name = "out", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "later", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""later"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "doPrivileged", @MethodName = "doPrivileged", @Name = "doPrivileged", @Varargs = "false", @Visibility = "private", @Void = "false"] + | | +- ModifierList[@EffectiveModifiers = "{private}", @ExplicitModifiers = "{private}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | +- FormalParameters[@Size = "1"] + | | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "PrivilegedAction", @TypeImage = "PrivilegedAction", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "action", @LambdaParameter = "false", @LocalVariable = "false", @Name = "action", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "action", @Visibility = "package"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "run", @MethodName = "run", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "action", @Name = "action", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArgumentList[@Size = "0"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "filterFiles", @MethodName = "filterFiles", @Name = "filterFiles", @Varargs = "false", @Visibility = "private", @Void = "true"] + | | +- ModifierList[@EffectiveModifiers = "{private}", @ExplicitModifiers = "{private}"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | +- FormalParameters[@Size = "1"] + | | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "FileFilter", @Void = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "FileFilter", @TypeImage = "FileFilter", @Void = "false"] + | | | | +- ArrayDimensions[@Size = "1"] + | | | | +- ArrayTypeDim[@Varargs = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "true", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "filters", @LambdaParameter = "false", @LocalVariable = "false", @Name = "filters", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "filters", @Visibility = "package"] + | | +- Block[@Size = "0", @containsComment = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "comparingByKey", @MethodName = "comparingByKey", @Name = "comparingByKey", @Varargs = "false", @Visibility = "public", @Void = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public, static}", @ExplicitModifiers = "{public, static}"] + | | +- TypeParameters[@Size = "2"] + | | | +- TypeParameter[@Image = "K", @ParameterName = "K", @TypeBound = "true"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Comparable", @TypeImage = "Comparable", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | | +- WildcardType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @LowerBound = "true", @PrimitiveType = "false", @TypeImage = "?", @UpperBound = "false", @Void = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "K", @TypeImage = "K", @Void = "false"] + | | | +- TypeParameter[@Image = "V", @ParameterName = "V", @TypeBound = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Comparator", @TypeImage = "Comparator", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "true", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Entry", @TypeImage = "Entry", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "2"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "K", @TypeImage = "K", @Void = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "V", @TypeImage = "V", @Void = "false"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- CastExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- IntersectionType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "Comparator", @Void = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Comparator", @TypeImage = "Comparator", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "true", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Entry", @TypeImage = "Entry", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "2"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "K", @TypeImage = "K", @Void = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "V", @TypeImage = "V", @Void = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Serializable", @TypeImage = "Serializable", @Void = "false"] + | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LambdaParameterList[@Size = "2"] + | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "c1", @LambdaParameter = "true", @LocalVariable = "false", @Name = "c1", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "c1", @Visibility = "package"] + | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "c2", @LambdaParameter = "true", @LocalVariable = "false", @Name = "c2", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "c2", @Visibility = "package"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "compareTo", @MethodName = "compareTo", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getKey", @MethodName = "getKey", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "c1", @Name = "c1", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- ArgumentList[@Size = "1"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "getKey", @MethodName = "getKey", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "c2", @Name = "c2", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArgumentList[@Size = "0"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "methodReferences", @MethodName = "methodReferences", @Name = "methodReferences", @Varargs = "false", @Visibility = "public", @Void = "true"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "8", @containsComment = "true"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Runnable", @TypeImage = "Runnable", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "r"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "r", @LambdaParameter = "false", @LocalVariable = "true", @Name = "r", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "r", @Visibility = "package"] + | | | +- MethodReference[@CompileTimeConstant = "false", @ConstructorReference = "false", @Expression = "true", @MethodName = "toDoLater", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ParserCornerCases18", @TypeImage = "ParserCornerCases18", @Void = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Runnable", @TypeImage = "Runnable", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "r1"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "r1", @LambdaParameter = "false", @LocalVariable = "true", @Name = "r1", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "r1", @Visibility = "package"] + | | | +- MethodReference[@CompileTimeConstant = "false", @ConstructorReference = "false", @Expression = "true", @MethodName = "toDoLater", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ThisExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ParserCornerCases18", @TypeImage = "ParserCornerCases18", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "pc"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "pc", @LambdaParameter = "false", @LocalVariable = "true", @Name = "pc", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "pc", @Visibility = "package"] + | | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ParserCornerCases18", @TypeImage = "ParserCornerCases18", @Void = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Runnable", @TypeImage = "Runnable", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "r11"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "r11", @LambdaParameter = "false", @LocalVariable = "true", @Name = "r11", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "r11", @Visibility = "package"] + | | | +- MethodReference[@CompileTimeConstant = "false", @ConstructorReference = "false", @Expression = "true", @MethodName = "toDoLater", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "pc", @Name = "pc", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Supplier", @TypeImage = "Supplier", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "s"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "s", @LambdaParameter = "false", @LocalVariable = "true", @Name = "s", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "s", @Visibility = "package"] + | | | +- MethodReference[@CompileTimeConstant = "false", @ConstructorReference = "false", @Expression = "true", @MethodName = "toString", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- SuperExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Runnable", @TypeImage = "Runnable", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "r2"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "r2", @LambdaParameter = "false", @LocalVariable = "true", @Name = "r2", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "r2", @Visibility = "package"] + | | | +- MethodReference[@CompileTimeConstant = "false", @ConstructorReference = "false", @Expression = "true", @MethodName = "staticMethod", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ParserCornerCases18", @TypeImage = "ParserCornerCases18", @Void = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "IntFunction", @TypeImage = "IntFunction", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "int", @Void = "false"] + | | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | | +- ArrayDimensions[@Size = "1"] + | | | | +- ArrayTypeDim[@Varargs = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "arrayMaker"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "arrayMaker", @LambdaParameter = "false", @LocalVariable = "true", @Name = "arrayMaker", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "arrayMaker", @Visibility = "package"] + | | | +- MethodReference[@CompileTimeConstant = "false", @ConstructorReference = "true", @Expression = "true", @MethodName = "new", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "int", @Void = "false"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | +- ArrayDimensions[@Size = "1"] + | | | +- ArrayTypeDim[@Varargs = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "int", @Void = "false"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | +- ArrayDimensions[@Size = "1"] + | | | +- ArrayTypeDim[@Varargs = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "array"] + | | +- VariableDeclaratorId[@ArrayType = "true", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "array", @LambdaParameter = "false", @LocalVariable = "true", @Name = "array", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "array", @Visibility = "package"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "apply", @MethodName = "apply", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "arrayMaker", @Name = "arrayMaker", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "10", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "10.0", @ValueAsFloat = "10.0", @ValueAsInt = "10", @ValueAsLong = "10"] + | +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "ParserCornerCases18$PmdMethodReferenceTest", @CanonicalName = "ParserCornerCases18.PmdMethodReferenceTest", @Enum = "false", @Image = "PmdMethodReferenceTest", @Interface = "false", @Local = "false", @Nested = "true", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "PmdMethodReferenceTest", @TopLevel = "false", @Visibility = "public"] + | | +- ModifierList[@EffectiveModifiers = "{public, static}", @ExplicitModifiers = "{public, static}"] + | | +- ClassOrInterfaceBody[@Size = "3"] + | | +- FieldDeclaration[@VariableName = "theFunction", @Visibility = "package"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Function", @TypeImage = "Function", @Void = "false"] + | | | | +- TypeArguments[@Diamond = "false", @Size = "2"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "false", @Name = "theFunction"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "true", @FormalParameter = "false", @Image = "theFunction", @LambdaParameter = "false", @LocalVariable = "false", @Name = "theFunction", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "theFunction", @Visibility = "package"] + | | +- ConstructorDeclaration[@Abstract = "false", @Arity = "0", @Image = "PmdTest", @Name = "PmdTest", @Varargs = "false", @Visibility = "public", @containsComment = "false"] + | | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | | +- FormalParameters[@Size = "0"] + | | | +- Block[@Size = "1", @containsComment = "false"] + | | | +- ExpressionStatement[] + | | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "theFunction", @Name = "theFunction", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- MethodReference[@CompileTimeConstant = "false", @ConstructorReference = "false", @Expression = "true", @MethodName = "foo", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ThisExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "foo", @MethodName = "foo", @Name = "foo", @Varargs = "false", @Visibility = "private", @Void = "false"] + | | +- ModifierList[@EffectiveModifiers = "{private}", @ExplicitModifiers = "{private}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- FormalParameters[@Size = "1"] + | | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "i", @LambdaParameter = "false", @LocalVariable = "false", @Name = "i", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "i", @Visibility = "package"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "i", @Name = "i", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "staticMethod", @MethodName = "staticMethod", @Name = "staticMethod", @Varargs = "false", @Visibility = "public", @Void = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public, static}", @ExplicitModifiers = "{public, static}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Runnable", @TypeImage = "Runnable", @Void = "false"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- LambdaExpression[@BlockBody = "false", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LambdaParameterList[@Size = "0"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "println", @MethodName = "println", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "out", @Name = "out", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "run", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""run"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "typeAnnotations", @MethodName = "typeAnnotations", @Name = "typeAnnotations", @Varargs = "false", @Visibility = "public", @Void = "true"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "2", @containsComment = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "myString"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "myString", @LambdaParameter = "false", @LocalVariable = "true", @Name = "myString", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "myString", @Visibility = "package"] + | | | +- CastExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | | +- Annotation[@AnnotationName = "NonNull", @SimpleName = "NonNull"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "NonNull", @TypeImage = "NonNull", @Void = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "str", @Name = "str", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "o"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "o", @LambdaParameter = "false", @LocalVariable = "true", @Name = "o", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "o", @Visibility = "package"] + | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "MyObject", @TypeImage = "MyObject", @Void = "false"] + | | | +- Annotation[@AnnotationName = "Interned", @SimpleName = "Interned"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Interned", @TypeImage = "Interned", @Void = "false"] + | | +- ArgumentList[@Size = "0"] + | +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "ParserCornerCases18$UnmodifiableList", @CanonicalName = "ParserCornerCases18.UnmodifiableList", @Enum = "false", @Image = "UnmodifiableList", @Interface = "false", @Local = "false", @Nested = "true", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "UnmodifiableList", @TopLevel = "false", @Visibility = "package"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- TypeParameters[@Size = "1"] + | | | +- TypeParameter[@Image = "T", @ParameterName = "T", @TypeBound = "false"] + | | +- ImplementsList[@Size = "1"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "List", @TypeImage = "List", @Void = "false"] + | | | +- Annotation[@AnnotationName = "Readonly", @SimpleName = "Readonly"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Readonly", @TypeImage = "Readonly", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "T", @TypeImage = "T", @Void = "false"] + | | | +- Annotation[@AnnotationName = "Readonly", @SimpleName = "Readonly"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Readonly", @TypeImage = "Readonly", @Void = "false"] + | | +- ClassOrInterfaceBody[@Size = "0"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "monitorTemperature", @MethodName = "monitorTemperature", @Name = "monitorTemperature", @Varargs = "false", @Visibility = "package", @Void = "true"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | +- FormalParameters[@Size = "0"] + | | +- ThrowsList[@Size = "1"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "TemperatureException", @TypeImage = "TemperatureException", @Void = "false"] + | | | +- Annotation[@AnnotationName = "Critical", @SimpleName = "Critical"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Critical", @TypeImage = "Critical", @Void = "false"] + | | +- Block[@Size = "0", @containsComment = "false"] + | +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "ParserCornerCases18$X", @CanonicalName = "ParserCornerCases18.X", @Enum = "false", @Image = "X", @Interface = "false", @Local = "false", @Nested = "true", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "X", @TopLevel = "false", @Visibility = "public"] + | | +- ModifierList[@EffectiveModifiers = "{public, static}", @ExplicitModifiers = "{public, static}"] + | | +- ClassOrInterfaceBody[@Size = "3"] + | | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "lambaWithIf", @MethodName = "lambaWithIf", @Name = "lambaWithIf", @Varargs = "false", @Visibility = "public", @Void = "true"] + | | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | | +- FormalParameters[@Size = "0"] + | | | +- Block[@Size = "1", @containsComment = "false"] + | | | +- ExpressionStatement[] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "count", @MethodName = "count", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "sorted", @MethodName = "sorted", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "of", @MethodName = "of", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Stream", @TypeImage = "Stream", @Void = "false"] + | | | | | +- ArgumentList[@Size = "3"] + | | | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "1", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "1.0", @ValueAsFloat = "1.0", @ValueAsInt = "1", @ValueAsLong = "1"] + | | | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "2", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "2.0", @ValueAsFloat = "2.0", @ValueAsInt = "2", @ValueAsLong = "2"] + | | | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "3", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "3.0", @ValueAsFloat = "3.0", @ValueAsInt = "3", @ValueAsLong = "3"] + | | | | +- ArgumentList[@Size = "1"] + | | | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- LambdaParameterList[@Size = "2"] + | | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "a", @LambdaParameter = "true", @LocalVariable = "false", @Name = "a", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "a", @Visibility = "package"] + | | | | | +- LambdaParameter[@TypeInferred = "true", @Visibility = "package"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "b", @LambdaParameter = "true", @LocalVariable = "false", @Name = "b", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "true", @VariableName = "b", @Visibility = "package"] + | | | | +- Block[@Size = "3", @containsComment = "false"] + | | | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | | | +- VariableDeclarator[@Initializer = "true", @Name = "x"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "x", @LambdaParameter = "false", @LocalVariable = "true", @Name = "x", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "x", @Visibility = "package"] + | | | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "-", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "hashCode", @MethodName = "hashCode", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "a", @Name = "a", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- ArgumentList[@Size = "0"] + | | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "hashCode", @MethodName = "hashCode", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "b", @Name = "b", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- ArgumentList[@Size = "0"] + | | | | +- IfStatement[@Else = "false"] + | | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "equals", @MethodName = "equals", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "a", @Name = "a", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- ArgumentList[@Size = "1"] + | | | | | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "X", @TypeImage = "X", @Void = "false"] + | | | | | | +- ArgumentList[@Size = "0"] + | | | | | +- ExpressionStatement[] + | | | | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "x", @Name = "x", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "1", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "1.0", @ValueAsFloat = "1.0", @ValueAsInt = "1", @ValueAsLong = "1"] + | | | | +- ReturnStatement[] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "x", @Name = "x", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "lambaWithIf2", @MethodName = "lambaWithIf2", @Name = "lambaWithIf2", @Varargs = "false", @Visibility = "public", @Void = "true"] + | | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | | +- FormalParameters[@Size = "0"] + | | | +- Block[@Size = "1", @containsComment = "false"] + | | | +- ExpressionStatement[] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "count", @MethodName = "count", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "sorted", @MethodName = "sorted", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "of", @MethodName = "of", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Stream", @TypeImage = "Stream", @Void = "false"] + | | | | | +- ArgumentList[@Size = "3"] + | | | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "1", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "1.0", @ValueAsFloat = "1.0", @ValueAsInt = "1", @ValueAsLong = "1"] + | | | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "2", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "2.0", @ValueAsFloat = "2.0", @ValueAsInt = "2", @ValueAsLong = "2"] + | | | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "3", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "3.0", @ValueAsFloat = "3.0", @ValueAsInt = "3", @ValueAsLong = "3"] + | | | | +- ArgumentList[@Size = "1"] + | | | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | +- LambdaParameterList[@Size = "2"] + | | | | | +- LambdaParameter[@TypeInferred = "false", @Visibility = "package"] + | | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "a", @LambdaParameter = "true", @LocalVariable = "false", @Name = "a", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "a", @Visibility = "package"] + | | | | | +- LambdaParameter[@TypeInferred = "false", @Visibility = "package"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Integer", @TypeImage = "Integer", @Void = "false"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "b", @LambdaParameter = "true", @LocalVariable = "false", @Name = "b", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "b", @Visibility = "package"] + | | | | +- Block[@Size = "3", @containsComment = "false"] + | | | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | | | | +- VariableDeclarator[@Initializer = "true", @Name = "x"] + | | | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "x", @LambdaParameter = "false", @LocalVariable = "true", @Name = "x", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "x", @Visibility = "package"] + | | | | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "-", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "hashCode", @MethodName = "hashCode", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "a", @Name = "a", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- ArgumentList[@Size = "0"] + | | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "hashCode", @MethodName = "hashCode", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "b", @Name = "b", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- ArgumentList[@Size = "0"] + | | | | +- IfStatement[@Else = "false"] + | | | | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "equals", @MethodName = "equals", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "a", @Name = "a", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | | +- ArgumentList[@Size = "1"] + | | | | | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "X", @TypeImage = "X", @Void = "false"] + | | | | | | +- ArgumentList[@Size = "0"] + | | | | | +- ExpressionStatement[] + | | | | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "x", @Name = "x", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "1", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "1.0", @ValueAsFloat = "1.0", @ValueAsInt = "1", @ValueAsLong = "1"] + | | | | +- ReturnStatement[] + | | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "x", @Name = "x", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "lambdaWithPropertyAssignment", @MethodName = "lambdaWithPropertyAssignment", @Name = "lambdaWithPropertyAssignment", @Varargs = "false", @Visibility = "public", @Void = "true"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ExpressionStatement[] + | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- FieldAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "event", @Name = "event", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "object", @Name = "object", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "object", @Void = "false"] + | | +- LambdaExpression[@BlockBody = "true", @CompileTimeConstant = "false", @Expression = "true", @ExpressionBody = "false", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- LambdaParameterList[@Size = "0"] + | | +- Block[@Size = "2", @containsComment = "true"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Request", @TypeImage = "Request", @Void = "false"] + | | | +- VariableDeclarator[@Initializer = "true", @Name = "request"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "request", @LambdaParameter = "false", @LocalVariable = "true", @Name = "request", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "request", @Visibility = "package"] + | | | +- ConstructorCall[@AnonymousClass = "false", @CompileTimeConstant = "false", @Diamond = "false", @DiamondTypeArgs = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @QualifiedInstanceCreation = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Request", @TypeImage = "Request", @Void = "false"] + | | | +- ArgumentList[@Size = "0"] + | | +- ExpressionStatement[] + | | +- AssignmentExpression[@CompileTimeConstant = "false", @Compound = "false", @Expression = "true", @Operator = "=", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- FieldAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "id", @Name = "id", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "request", @Name = "request", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "42", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "42.0", @ValueAsFloat = "42.0", @ValueAsInt = "42", @ValueAsLong = "42"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "testWildCardWithAnnotation", @MethodName = "testWildCardWithAnnotation", @Name = "testWildCardWithAnnotation", @Varargs = "false", @Visibility = "public", @Void = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "List", @TypeImage = "List", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- WildcardType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @LowerBound = "true", @PrimitiveType = "false", @TypeImage = "?", @UpperBound = "false", @Void = "false"] + | | | +- Annotation[@AnnotationName = "AnnotatedUsage", @SimpleName = "AnnotatedUsage"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "AnnotatedUsage", @TypeImage = "AnnotatedUsage", @Void = "false"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- NullLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "false", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "true", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "testAnnotationsToArrayElements", @MethodName = "testAnnotationsToArrayElements", @Name = "testAnnotationsToArrayElements", @Varargs = "false", @Visibility = "public", @Void = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "Object", @Void = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | | | +- ArrayDimensions[@Size = "1"] + | | | +- ArrayTypeDim[@Varargs = "false"] + | | | +- Annotation[@AnnotationName = "Nullable", @SimpleName = "Nullable"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Nullable", @TypeImage = "Nullable", @Void = "false"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- NullLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "false", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "true", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "getBytes", @MethodName = "getBytes", @Name = "getBytes", @Varargs = "false", @Visibility = "private", @Void = "false"] + | | +- ModifierList[@EffectiveModifiers = "{private}", @ExplicitModifiers = "{private}"] + | | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "byte", @Void = "false"] + | | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "byte", @ModelConstant = "byte", @PrimitiveType = "true", @TypeImage = "byte", @Void = "false"] + | | | +- ArrayDimensions[@Size = "1"] + | | | +- ArrayTypeDim[@Varargs = "false"] + | | | +- Annotation[@AnnotationName = "Nullable", @SimpleName = "Nullable"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Nullable", @TypeImage = "Nullable", @Void = "false"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- NullLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "false", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "true", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "getEnum", @MethodName = "getEnum", @Name = "getEnum", @Varargs = "false", @Visibility = "public", @Void = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public, static}", @ExplicitModifiers = "{public, static}"] + | | +- TypeParameters[@Size = "1"] + | | | +- TypeParameter[@Image = "T", @ParameterName = "T", @TypeBound = "true"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Enum", @TypeImage = "Enum", @Void = "false"] + | | | +- Annotation[@AnnotationName = "NonNull", @SimpleName = "NonNull"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "NonNull", @TypeImage = "NonNull", @Void = "false"] + | | | +- TypeArguments[@Diamond = "false", @Size = "1"] + | | | +- WildcardType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @LowerBound = "false", @PrimitiveType = "false", @TypeImage = "?", @UpperBound = "false", @Void = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "T", @TypeImage = "T", @Void = "false"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- NullLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "false", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "true", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "getNullableEnum", @MethodName = "getNullableEnum", @Name = "getNullableEnum", @Varargs = "false", @Visibility = "public", @Void = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public, static}", @ExplicitModifiers = "{public, static}"] + | | +- TypeParameters[@Size = "1"] + | | | +- TypeParameter[@Image = "T", @ParameterName = "T", @TypeBound = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "T", @TypeImage = "T", @Void = "false"] + | | | +- Annotation[@AnnotationName = "Nullable", @SimpleName = "Nullable"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Nullable", @TypeImage = "Nullable", @Void = "false"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- NullLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "false", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "true", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "createNonNullArray", @MethodName = "createNonNullArray", @Name = "createNonNullArray", @Varargs = "false", @Visibility = "public", @Void = "false"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "Object", @Void = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | | | +- ArrayDimensions[@Size = "1"] + | | | +- ArrayTypeDim[@Varargs = "false"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- ReturnStatement[] + | | +- ArrayAllocation[@ArrayDepth = "1", @CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArrayType[@ArrayDepth = "1", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "Object", @Void = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | | +- ArrayDimensions[@Size = "1"] + | | +- ArrayDimExpr[@Varargs = "false"] + | | +- Annotation[@AnnotationName = "NonNull", @SimpleName = "NonNull"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "NonNull", @TypeImage = "NonNull", @Void = "false"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "0.0", @ValueAsFloat = "0.0", @ValueAsInt = "0", @ValueAsLong = "0"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "testMultiDimArrayWithAnnotations", @MethodName = "testMultiDimArrayWithAnnotations", @Name = "testMultiDimArrayWithAnnotations", @Varargs = "false", @Visibility = "private", @Void = "true"] + | | +- ModifierList[@EffectiveModifiers = "{private, static}", @ExplicitModifiers = "{private, static}"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | +- FormalParameters[@Size = "0"] + | | +- Block[@Size = "1", @containsComment = "false"] + | | +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | | +- VariableDeclarator[@Initializer = "true", @Name = "x"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "x", @LambdaParameter = "false", @LocalVariable = "true", @Name = "x", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "x", @Visibility = "package"] + | | +- ArrayAllocation[@ArrayDepth = "3", @CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArrayType[@ArrayDepth = "3", @ArrayType = "true", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "Object", @Void = "false"] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Object", @TypeImage = "Object", @Void = "false"] + | | +- ArrayDimensions[@Size = "3"] + | | +- ArrayDimExpr[@Varargs = "false"] + | | | +- Annotation[@AnnotationName = "NonNull", @SimpleName = "NonNull"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "NonNull", @TypeImage = "NonNull", @Void = "false"] + | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "2", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "2.0", @ValueAsFloat = "2.0", @ValueAsInt = "2", @ValueAsLong = "2"] + | | +- ArrayDimExpr[@Varargs = "false"] + | | | +- Annotation[@AnnotationName = "Nullable", @SimpleName = "Nullable"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Nullable", @TypeImage = "Nullable", @Void = "false"] + | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "1", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "1.0", @ValueAsFloat = "1.0", @ValueAsInt = "1", @ValueAsLong = "1"] + | | +- ArrayDimExpr[@Varargs = "false"] + | | +- Annotation[@AnnotationName = "NonNull", @SimpleName = "NonNull"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "NonNull", @TypeImage = "NonNull", @Void = "false"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "3", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "3.0", @ValueAsFloat = "3.0", @ValueAsInt = "3", @ValueAsLong = "3"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "methodWithReceiverParameter", @MethodName = "methodWithReceiverParameter", @Name = "methodWithReceiverParameter", @Varargs = "false", @Visibility = "public", @Void = "true"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | +- FormalParameters[@Size = "0"] + | | | +- ReceiverParameter[] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ParserCornerCases18", @TypeImage = "ParserCornerCases18", @Void = "false"] + | | +- Block[@Size = "0", @containsComment = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "methodWithReceiverAndOtherParameters", @MethodName = "methodWithReceiverAndOtherParameters", @Name = "methodWithReceiverAndOtherParameters", @Varargs = "false", @Visibility = "public", @Void = "true"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | +- FormalParameters[@Size = "1"] + | | | +- ReceiverParameter[] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ParserCornerCases18", @TypeImage = "ParserCornerCases18", @Void = "false"] + | | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "other", @LambdaParameter = "false", @LocalVariable = "false", @Name = "other", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "other", @Visibility = "package"] + | | +- Block[@Size = "0", @containsComment = "false"] + | +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "methodWithReceiverParameterWithAnnotation", @MethodName = "methodWithReceiverParameterWithAnnotation", @Name = "methodWithReceiverParameterWithAnnotation", @Varargs = "false", @Visibility = "public", @Void = "true"] + | | +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + | | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | | +- FormalParameters[@Size = "1"] + | | | +- ReceiverParameter[] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ParserCornerCases18", @TypeImage = "ParserCornerCases18", @Void = "false"] + | | | | +- Annotation[@AnnotationName = "AnnotatedUsage", @SimpleName = "AnnotatedUsage"] + | | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "AnnotatedUsage", @TypeImage = "AnnotatedUsage", @Void = "false"] + | | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "String", @TypeImage = "String", @Void = "false"] + | | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "other", @LambdaParameter = "false", @LocalVariable = "false", @Name = "other", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "other", @Visibility = "package"] + | | +- Block[@Size = "0", @containsComment = "false"] + | +- AnnotationTypeDeclaration[@Abstract = "true", @Annotation = "true", @Anonymous = "false", @BinaryName = "ParserCornerCases18$AnnotatedUsage", @CanonicalName = "ParserCornerCases18.AnnotatedUsage", @Enum = "false", @Image = "AnnotatedUsage", @Interface = "true", @Local = "false", @Nested = "true", @PackageName = "", @Record = "false", @RegularClass = "false", @SimpleName = "AnnotatedUsage", @TopLevel = "false", @Visibility = "public"] + | | +- ModifierList[@EffectiveModifiers = "{public, abstract, static}", @ExplicitModifiers = "{public}"] + | | | +- Annotation[@AnnotationName = "Target", @SimpleName = "Target"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "Target", @TypeImage = "Target", @Void = "false"] + | | | +- AnnotationMemberList[@Size = "1"] + | | | +- MemberValuePair[@Image = "value", @Name = "value", @Shorthand = "true"] + | | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "TYPE_USE", @Name = "TYPE_USE", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- AmbiguousName[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @CompileTimeConstant = "false", @Expression = "true", @Image = "ElementType", @Name = "ElementType", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "false", @TypeImage = "ElementType", @Void = "false"] + | | +- AnnotationTypeBody[@Size = "0"] + | +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "ParserCornerCases18$Inner", @CanonicalName = "ParserCornerCases18.Inner", @Enum = "false", @Image = "Inner", @Interface = "false", @Local = "false", @Nested = "true", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "true", @SimpleName = "Inner", @TopLevel = "false", @Visibility = "package"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceBody[@Size = "1"] + | +- ConstructorDeclaration[@Abstract = "false", @Arity = "0", @Image = "Inner", @Name = "Inner", @Varargs = "false", @Visibility = "package", @containsComment = "false"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- FormalParameters[@Size = "0"] + | | +- ReceiverParameter[] + | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "ParserCornerCases18", @TypeImage = "ParserCornerCases18", @Void = "false"] + | +- Block[@Size = "0", @containsComment = "false"] + +- ClassOrInterfaceDeclaration[@Abstract = "true", @Annotation = "false", @Anonymous = "false", @BinaryName = "DefaultIterator", @CanonicalName = "DefaultIterator", @Enum = "false", @Image = "DefaultIterator", @Interface = "true", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "true", @Record = "false", @RegularClass = "false", @SimpleName = "DefaultIterator", @TopLevel = "true", @Visibility = "package"] + +- ModifierList[@EffectiveModifiers = "{abstract}", @ExplicitModifiers = "{}"] + +- TypeParameters[@Size = "1"] + | +- TypeParameter[@Image = "E", @ParameterName = "E", @TypeBound = "false"] + +- ClassOrInterfaceBody[@Size = "5"] + +- MethodDeclaration[@Abstract = "true", @Arity = "0", @Image = "hasNext", @MethodName = "hasNext", @Name = "hasNext", @Varargs = "false", @Visibility = "public", @Void = "false"] + | +- ModifierList[@EffectiveModifiers = "{public, abstract}", @ExplicitModifiers = "{}"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "true", @ClassOrInterfaceType = "false", @Image = "boolean", @ModelConstant = "boolean", @PrimitiveType = "true", @TypeImage = "boolean", @Void = "false"] + | +- FormalParameters[@Size = "0"] + +- MethodDeclaration[@Abstract = "true", @Arity = "0", @Image = "next", @MethodName = "next", @Name = "next", @Varargs = "false", @Visibility = "public", @Void = "false"] + | +- ModifierList[@EffectiveModifiers = "{public, abstract}", @ExplicitModifiers = "{}"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "E", @TypeImage = "E", @Void = "false"] + | +- FormalParameters[@Size = "0"] + +- MethodDeclaration[@Abstract = "true", @Arity = "0", @Image = "remove", @MethodName = "remove", @Name = "remove", @Varargs = "false", @Visibility = "public", @Void = "true"] + | +- ModifierList[@EffectiveModifiers = "{public, abstract}", @ExplicitModifiers = "{}"] + | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | +- FormalParameters[@Size = "0"] + +- MethodDeclaration[@Abstract = "false", @Arity = "1", @Image = "skip", @MethodName = "skip", @Name = "skip", @Varargs = "false", @Visibility = "public", @Void = "true"] + | +- ModifierList[@EffectiveModifiers = "{public, default}", @ExplicitModifiers = "{default}"] + | +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + | +- FormalParameters[@Size = "1"] + | | +- FormalParameter[@Varargs = "false", @Visibility = "local"] + | | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "true", @Image = "i", @LambdaParameter = "false", @LocalVariable = "false", @Name = "i", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "i", @Visibility = "package"] + | +- Block[@Size = "1", @containsComment = "false"] + | +- ForStatement[] + | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "&&", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- InfixExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = ">", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "i", @Name = "i", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "0", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "0.0", @ValueAsFloat = "0.0", @ValueAsInt = "0", @ValueAsLong = "0"] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "hasNext", @MethodName = "hasNext", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- ArgumentList[@Size = "0"] + | +- ForUpdate[] + | | +- StatementExpressionList[] + | | +- UnaryExpression[@CompileTimeConstant = "false", @Expression = "true", @Operator = "--", @ParenthesisDepth = "0", @Parenthesized = "false", @Prefix = "false"] + | | +- VariableAccess[@AccessType = "WRITE", @CompileTimeConstant = "false", @Expression = "true", @Image = "i", @Name = "i", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ExpressionStatement[] + | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "next", @MethodName = "next", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ArgumentList[@Size = "0"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "staticInterfaceMethods", @MethodName = "staticInterfaceMethods", @Name = "staticInterfaceMethods", @Varargs = "false", @Visibility = "public", @Void = "true"] + +- ModifierList[@EffectiveModifiers = "{public, static}", @ExplicitModifiers = "{static}"] + +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + +- FormalParameters[@Size = "0"] + +- Block[@Size = "1", @containsComment = "false"] + +- ExpressionStatement[] + +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "println", @MethodName = "println", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "out", @Name = "out", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + +- ArgumentList[@Size = "1"] + +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = """", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/SwitchStatements.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/SwitchStatements.txt new file mode 100644 index 0000000000..7d65bf067d --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/SwitchStatements.txt @@ -0,0 +1,39 @@ ++- CompilationUnit[@PackageName = "", @declarationsAreInDefaultPackage = "true"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "SwitchStatements", @CanonicalName = "SwitchStatements", @Enum = "false", @Image = "SwitchStatements", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "SwitchStatements", @TopLevel = "true", @Visibility = "public"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- ClassOrInterfaceBody[@Size = "1"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "myMethod", @MethodName = "myMethod", @Name = "myMethod", @Varargs = "false", @Visibility = "public", @Void = "true"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + +- FormalParameters[@Size = "0"] + +- Block[@Size = "4", @containsComment = "false"] + +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | +- VariableDeclarator[@Initializer = "true", @Name = "a"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "a", @LambdaParameter = "false", @LocalVariable = "true", @Name = "a", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "a", @Visibility = "package"] + | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "1", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "1.0", @ValueAsFloat = "1.0", @ValueAsInt = "1", @ValueAsLong = "1"] + +- SwitchStatement[@DefaultCase = "true", @ExhaustiveEnumSwitch = "false"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "a", @Name = "a", @ParenthesisDepth = "0", @Parenthesized = "false"] + | +- SwitchFallthroughBranch[] + | | +- SwitchLabel[@Default = "false"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "1", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "1.0", @ValueAsFloat = "1.0", @ValueAsInt = "1", @ValueAsLong = "1"] + | +- SwitchFallthroughBranch[] + | +- SwitchLabel[@Default = "true"] + +- SwitchStatement[@DefaultCase = "false", @ExhaustiveEnumSwitch = "false"] + | +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "a", @Name = "a", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- SwitchStatement[@DefaultCase = "true", @ExhaustiveEnumSwitch = "false"] + +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "a", @Name = "a", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- SwitchFallthroughBranch[] + | +- SwitchLabel[@Default = "false"] + | | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "1", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "1.0", @ValueAsFloat = "1.0", @ValueAsInt = "1", @ValueAsLong = "1"] + | +- ExpressionStatement[] + | | +- MethodCall[@CompileTimeConstant = "false", @Expression = "true", @Image = "println", @MethodName = "println", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | +- FieldAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "out", @Name = "out", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- TypeExpression[@CompileTimeConstant = "false", @Expression = "true", @ParenthesisDepth = "0", @Parenthesized = "false"] + | | | +- ClassOrInterfaceType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "true", @FullyQualified = "false", @PrimitiveType = "false", @ReferenceToClassSameCompilationUnit = "false", @SimpleName = "System", @TypeImage = "System", @Void = "false"] + | | +- ArgumentList[@Size = "1"] + | | +- StringLiteral[@BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @ConstValue = "1", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = ""1"", @IntLiteral = "false", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "false", @ParenthesisDepth = "0", @Parenthesized = "false", @StringLiteral = "true", @TextBlock = "false"] + | +- BreakStatement[@Label = null] + +- SwitchFallthroughBranch[] + +- SwitchLabel[@Default = "true"] diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/SwitchWithFallthrough.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/SwitchWithFallthrough.txt new file mode 100644 index 0000000000..5699336fec --- /dev/null +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/SwitchWithFallthrough.txt @@ -0,0 +1,22 @@ ++- CompilationUnit[@PackageName = "", @declarationsAreInDefaultPackage = "true"] + +- ClassOrInterfaceDeclaration[@Abstract = "false", @Annotation = "false", @Anonymous = "false", @BinaryName = "SwitchWithFallthrough", @CanonicalName = "SwitchWithFallthrough", @Enum = "false", @Image = "SwitchWithFallthrough", @Interface = "false", @Local = "false", @Nested = "false", @PackageName = "", @PackagePrivate = "false", @Record = "false", @RegularClass = "true", @SimpleName = "SwitchWithFallthrough", @TopLevel = "true", @Visibility = "public"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- ClassOrInterfaceBody[@Size = "1"] + +- MethodDeclaration[@Abstract = "false", @Arity = "0", @Image = "myMethod", @MethodName = "myMethod", @Name = "myMethod", @Varargs = "false", @Visibility = "public", @Void = "true"] + +- ModifierList[@EffectiveModifiers = "{public}", @ExplicitModifiers = "{public}"] + +- VoidType[@ArrayDepth = "0", @ArrayType = "false", @ClassOrInterfaceType = "false", @PrimitiveType = "false", @TypeImage = "void", @Void = "true"] + +- FormalParameters[@Size = "0"] + +- Block[@Size = "2", @containsComment = "false"] + +- LocalVariableDeclaration[@TypeInferred = "false", @Visibility = "local"] + | +- ModifierList[@EffectiveModifiers = "{}", @ExplicitModifiers = "{}"] + | +- PrimitiveType[@ArrayDepth = "0", @ArrayType = "false", @Boolean = "false", @ClassOrInterfaceType = "false", @Image = "int", @ModelConstant = "int", @PrimitiveType = "true", @TypeImage = "int", @Void = "false"] + | +- VariableDeclarator[@Initializer = "true", @Name = "a"] + | +- VariableDeclaratorId[@ArrayType = "false", @EnumConstant = "false", @ExceptionBlockParameter = "false", @Field = "false", @FormalParameter = "false", @Image = "a", @LambdaParameter = "false", @LocalVariable = "true", @Name = "a", @PatternBinding = "false", @RecordComponent = "false", @ResourceDeclaration = "false", @TypeInferred = "false", @VariableName = "a", @Visibility = "package"] + | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "1", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "1.0", @ValueAsFloat = "1.0", @ValueAsInt = "1", @ValueAsLong = "1"] + +- SwitchStatement[@DefaultCase = "true", @ExhaustiveEnumSwitch = "false"] + +- VariableAccess[@AccessType = "READ", @CompileTimeConstant = "false", @Expression = "true", @Image = "a", @Name = "a", @ParenthesisDepth = "0", @Parenthesized = "false"] + +- SwitchFallthroughBranch[] + | +- SwitchLabel[@Default = "false"] + | +- NumericLiteral[@Base = "10", @BooleanLiteral = "false", @CharLiteral = "false", @CompileTimeConstant = "true", @DoubleLiteral = "false", @Expression = "true", @FloatLiteral = "false", @Image = "1", @IntLiteral = "true", @Integral = "true", @LongLiteral = "false", @NullLiteral = "false", @NumericLiteral = "true", @ParenthesisDepth = "0", @Parenthesized = "false", @PrimitiveType = "int", @StringLiteral = "false", @ValueAsDouble = "1.0", @ValueAsFloat = "1.0", @ValueAsInt = "1", @ValueAsLong = "1"] + +- SwitchFallthroughBranch[] + +- SwitchLabel[@Default = "true"] diff --git a/pmd-lang-test/src/main/kotlin/net/sourceforge/pmd/lang/ast/test/BaseTreeDumpTest.kt b/pmd-lang-test/src/main/kotlin/net/sourceforge/pmd/lang/ast/test/BaseTreeDumpTest.kt index 2a1614151c..2201b384a8 100644 --- a/pmd-lang-test/src/main/kotlin/net/sourceforge/pmd/lang/ast/test/BaseTreeDumpTest.kt +++ b/pmd-lang-test/src/main/kotlin/net/sourceforge/pmd/lang/ast/test/BaseTreeDumpTest.kt @@ -30,7 +30,8 @@ abstract class BaseTreeDumpTest( /** * @see BaseTextComparisonTest.doTest */ - fun doTest(fileBaseName: String) { + @JvmOverloads + fun doTest(fileBaseName: String, parser: BaseParsingHelper<*, *> = this.parser) { super.doTest(fileBaseName, "") { sourceText -> buildString { printer.renderSubtree(parser.parse(sourceText), this)