+- CompilationUnit[@Compact = false, @PackageName = ""]
   +- ImportDeclaration[@ImportOnDemand = false, @ImportedName = "java.math.BigInteger", @ImportedSimpleName = "BigInteger", @ModuleImport = false, @PackageName = "java.math", @Static = false]
   +- ImportDeclaration[@ImportOnDemand = false, @ImportedName = "java.security.cert.Certificate", @ImportedSimpleName = "Certificate", @ModuleImport = false, @PackageName = "java.security.cert", @Static = false]
   +- ImportDeclaration[@ImportOnDemand = false, @ImportedName = "java.security.interfaces.DSAPublicKey", @ImportedSimpleName = "DSAPublicKey", @ModuleImport = false, @PackageName = "java.security.interfaces", @Static = false]
   +- ImportDeclaration[@ImportOnDemand = false, @ImportedName = "java.security.interfaces.RSAKey", @ImportedSimpleName = "RSAKey", @ModuleImport = false, @PackageName = "java.security.interfaces", @Static = false]
   +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep513_FlexibleConstructorBodies", @CanonicalName = "Jep513_FlexibleConstructorBodies", @EffectiveVisibility = Visibility.V_PUBLIC, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = false, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "Jep513_FlexibleConstructorBodies", @Static = false, @TopLevel = true, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PUBLIC]
      +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
      +- ClassBody[@Empty = false, @Size = 9]
         +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep513_FlexibleConstructorBodies$PositiveBigInteger", @CanonicalName = "Jep513_FlexibleConstructorBodies.PositiveBigInteger", @EffectiveVisibility = Visibility.V_PUBLIC, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "PositiveBigInteger", @Static = false, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PUBLIC]
         |  +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
         |  +- ExtendsList[@Empty = false, @Size = 1]
         |  |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "BigInteger"]
         |  +- ClassBody[@Empty = false, @Size = 1]
         |     +- ConstructorDeclaration[@Abstract = false, @Arity = 1, @EffectiveVisibility = Visibility.V_PUBLIC, @Final = false, @Image = "PositiveBigInteger", @Name = "PositiveBigInteger", @Static = false, @Varargs = false, @Visibility = Visibility.V_PUBLIC, @containsComment = false]
         |        +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
         |        +- FormalParameters[@Empty = false, @Size = 1]
         |        |  +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
         |        |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        |     +- PrimitiveType[@Kind = PrimitiveTypeKind.LONG]
         |        |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "value", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |        +- Block[@Empty = false, @Size = 2, @containsComment = false]
         |           +- IfStatement[@Else = false]
         |           |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.LE, @ParenthesisDepth = 0, @Parenthesized = false]
         |           |  |  +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "value", @Name = "value", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |  |  +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "0", @IntLiteral = true, @Integral = true, @LiteralText = "0", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 0.0, @ValueAsFloat = 0.0, @ValueAsInt = 0, @ValueAsLong = 0]
         |           |  +- ThrowStatement[]
         |           |     +- ConstructorCall[@AnonymousClass = false, @CompileTimeConstant = false, @DiamondTypeArgs = false, @MethodName = "new", @ParenthesisDepth = 0, @Parenthesized = false, @QualifiedInstanceCreation = false]
         |           |        +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "IllegalArgumentException"]
         |           |        +- ArgumentList[@Empty = false, @Size = 1]
         |           |           +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "value must be positive", @Empty = false, @Image = "\"value must be positive\"", @Length = 22, @LiteralText = "\"value must be positive\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |           +- ExplicitConstructorInvocation[@ArgumentCount = 1, @MethodName = "new", @Qualified = false, @Super = true, @This = false]
         |              +- ArgumentList[@Empty = false, @Size = 1]
         |                 +- MethodCall[@CompileTimeConstant = false, @Image = "valueOf", @MethodName = "valueOf", @ParenthesisDepth = 0, @Parenthesized = false]
         |                    +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |                    |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "String"]
         |                    +- ArgumentList[@Empty = false, @Size = 1]
         |                       +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "value", @Name = "value", @ParenthesisDepth = 0, @Parenthesized = false]
         +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep513_FlexibleConstructorBodies$Super", @CanonicalName = "Jep513_FlexibleConstructorBodies.Super", @EffectiveVisibility = Visibility.V_PUBLIC, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "Super", @Static = false, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PUBLIC]
         |  +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
         |  +- ClassBody[@Empty = false, @Size = 1]
         |     +- ConstructorDeclaration[@Abstract = false, @Arity = 1, @EffectiveVisibility = Visibility.V_PUBLIC, @Final = false, @Image = "Super", @Name = "Super", @Static = false, @Varargs = false, @Visibility = Visibility.V_PUBLIC, @containsComment = false]
         |        +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
         |        +- FormalParameters[@Empty = false, @Size = 1]
         |        |  +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
         |        |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        |     +- ArrayType[@ArrayDepth = 1]
         |        |     |  +- PrimitiveType[@Kind = PrimitiveTypeKind.BYTE]
         |        |     |  +- ArrayDimensions[@Empty = false, @Size = 1]
         |        |     |     +- ArrayTypeDim[@Varargs = false]
         |        |     +- VariableId[@ArrayType = true, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "bytes", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |        +- Block[@Empty = true, @Size = 0, @containsComment = false]
         +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep513_FlexibleConstructorBodies$Sub", @CanonicalName = "Jep513_FlexibleConstructorBodies.Sub", @EffectiveVisibility = Visibility.V_PUBLIC, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "Sub", @Static = false, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PUBLIC]
         |  +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
         |  +- ExtendsList[@Empty = false, @Size = 1]
         |  |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Super"]
         |  +- ClassBody[@Empty = false, @Size = 1]
         |     +- ConstructorDeclaration[@Abstract = false, @Arity = 1, @EffectiveVisibility = Visibility.V_PUBLIC, @Final = false, @Image = "Sub", @Name = "Sub", @Static = false, @Varargs = false, @Visibility = Visibility.V_PUBLIC, @containsComment = false]
         |        +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
         |        +- FormalParameters[@Empty = false, @Size = 1]
         |        |  +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
         |        |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Certificate"]
         |        |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "certificate", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |        +- Block[@Empty = false, @Size = 4, @containsComment = false]
         |           +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = true, @Visibility = Visibility.V_LOCAL]
         |           |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |           |  +- VariableDeclarator[@Initializer = true, @Name = "publicKey"]
         |           |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "publicKey", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |           |     +- MethodCall[@CompileTimeConstant = false, @Image = "getPublicKey", @MethodName = "getPublicKey", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "certificate", @Name = "certificate", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |        +- ArgumentList[@Empty = true, @Size = 0]
         |           +- IfStatement[@Else = false]
         |           |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.EQ, @ParenthesisDepth = 0, @Parenthesized = false]
         |           |  |  +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "publicKey", @Name = "publicKey", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |  |  +- NullLiteral[@CompileTimeConstant = false, @LiteralText = "null", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |  +- ThrowStatement[]
         |           |     +- ConstructorCall[@AnonymousClass = false, @CompileTimeConstant = false, @DiamondTypeArgs = false, @MethodName = "new", @ParenthesisDepth = 0, @Parenthesized = false, @QualifiedInstanceCreation = false]
         |           |        +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "NullPointerException"]
         |           |        +- ArgumentList[@Empty = true, @Size = 0]
         |           +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |           |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |           |  +- ArrayType[@ArrayDepth = 1]
         |           |  |  +- PrimitiveType[@Kind = PrimitiveTypeKind.BYTE]
         |           |  |  +- ArrayDimensions[@Empty = false, @Size = 1]
         |           |  |     +- ArrayTypeDim[@Varargs = false]
         |           |  +- VariableDeclarator[@Initializer = true, @Name = "certBytes"]
         |           |     +- VariableId[@ArrayType = true, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "certBytes", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |           |     +- SwitchExpression[@CompileTimeConstant = false, @DefaultCase = true, @EnumSwitch = false, @Exhaustive = false, @ExhaustiveEnumSwitch = false, @FallthroughSwitch = false, @NullTolerant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |           |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "publicKey", @Name = "publicKey", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |        +- SwitchArrowBranch[@Default = false]
         |           |        |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = true]
         |           |        |  |  +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |           |        |  |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |           |        |  |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "RSAKey"]
         |           |        |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "rsaKey", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |           |        |  +- MethodCall[@CompileTimeConstant = false, @Image = "toByteArray", @MethodName = "toByteArray", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |        |     +- MethodCall[@CompileTimeConstant = false, @Image = "getModulus", @MethodName = "getModulus", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |        |     |  +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "rsaKey", @Name = "rsaKey", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |        |     |  +- ArgumentList[@Empty = true, @Size = 0]
         |           |        |     +- ArgumentList[@Empty = true, @Size = 0]
         |           |        +- SwitchArrowBranch[@Default = false]
         |           |        |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = true]
         |           |        |  |  +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |           |        |  |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |           |        |  |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "DSAPublicKey"]
         |           |        |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "dsaKey", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |           |        |  +- MethodCall[@CompileTimeConstant = false, @Image = "toByteArray", @MethodName = "toByteArray", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |        |     +- MethodCall[@CompileTimeConstant = false, @Image = "getY", @MethodName = "getY", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |        |     |  +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "dsaKey", @Name = "dsaKey", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |        |     |  +- ArgumentList[@Empty = true, @Size = 0]
         |           |        |     +- ArgumentList[@Empty = true, @Size = 0]
         |           |        +- SwitchArrowBranch[@Default = true]
         |           |           +- SwitchLabel[@CaseNull = false, @Default = true, @PatternLabel = false]
         |           |           +- ArrayAllocation[@ArrayDepth = 1, @CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |           |              +- ArrayType[@ArrayDepth = 1]
         |           |                 +- PrimitiveType[@Kind = PrimitiveTypeKind.BYTE]
         |           |                 +- ArrayDimensions[@Empty = false, @Size = 1]
         |           |                    +- ArrayDimExpr[@Varargs = false]
         |           |                       +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "0", @IntLiteral = true, @Integral = true, @LiteralText = "0", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 0.0, @ValueAsFloat = 0.0, @ValueAsInt = 0, @ValueAsLong = 0]
         |           +- ExplicitConstructorInvocation[@ArgumentCount = 1, @MethodName = "new", @Qualified = false, @Super = true, @This = false]
         |              +- ArgumentList[@Empty = false, @Size = 1]
         |                 +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "certBytes", @Name = "certBytes", @ParenthesisDepth = 0, @Parenthesized = false]
         +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep513_FlexibleConstructorBodies$C", @CanonicalName = "Jep513_FlexibleConstructorBodies.C", @EffectiveVisibility = Visibility.V_PUBLIC, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "C", @Static = false, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PUBLIC]
         |  +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
         |  +- ClassBody[@Empty = false, @Size = 2]
         |     +- FieldDeclaration[@EffectiveVisibility = Visibility.V_PRIVATE, @Static = false, @Visibility = Visibility.V_PRIVATE]
         |     |  +- ModifierList[@EffectiveModifiers = (JModifier.PRIVATE, JModifier.FINAL), @ExplicitModifiers = (JModifier.PRIVATE, JModifier.FINAL)]
         |     |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |  +- VariableDeclarator[@Initializer = false, @Name = "i"]
         |     |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PRIVATE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = true, @Final = true, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "i", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_PRIVATE]
         |     +- ConstructorDeclaration[@Abstract = false, @Arity = 1, @EffectiveVisibility = Visibility.V_PUBLIC, @Final = false, @Image = "C", @Name = "C", @Static = false, @Varargs = false, @Visibility = Visibility.V_PUBLIC, @containsComment = false]
         |        +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
         |        +- FormalParameters[@Empty = false, @Size = 1]
         |        |  +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
         |        |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        |     +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |        |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "i", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |        +- Block[@Empty = false, @Size = 1, @containsComment = false]
         |           +- ExpressionStatement[]
         |              +- AssignmentExpression[@CompileTimeConstant = false, @Compound = false, @Operator = AssignmentOp.ASSIGN, @ParenthesisDepth = 0, @Parenthesized = false]
         |                 +- FieldAccess[@AccessType = AccessType.WRITE, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
         |                 |  +- ThisExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |                 +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
         +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep513_FlexibleConstructorBodies$Super2", @CanonicalName = "Jep513_FlexibleConstructorBodies.Super2", @EffectiveVisibility = Visibility.V_PUBLIC, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "Super2", @Static = false, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PUBLIC]
         |  +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
         |  +- ClassBody[@Empty = false, @Size = 3]
         |     +- FieldDeclaration[@EffectiveVisibility = Visibility.V_PRIVATE, @Static = false, @Visibility = Visibility.V_PRIVATE]
         |     |  +- ModifierList[@EffectiveModifiers = (JModifier.PRIVATE, JModifier.FINAL), @ExplicitModifiers = (JModifier.PRIVATE, JModifier.FINAL)]
         |     |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "C"]
         |     |  +- VariableDeclarator[@Initializer = false, @Name = "x"]
         |     |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PRIVATE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = true, @Final = true, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "x", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_PRIVATE]
         |     +- FieldDeclaration[@EffectiveVisibility = Visibility.V_PRIVATE, @Static = false, @Visibility = Visibility.V_PRIVATE]
         |     |  +- ModifierList[@EffectiveModifiers = (JModifier.PRIVATE, JModifier.FINAL), @ExplicitModifiers = (JModifier.PRIVATE, JModifier.FINAL)]
         |     |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "C"]
         |     |  +- VariableDeclarator[@Initializer = false, @Name = "y"]
         |     |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PRIVATE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = true, @Final = true, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "y", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_PRIVATE]
         |     +- ConstructorDeclaration[@Abstract = false, @Arity = 2, @EffectiveVisibility = Visibility.V_PUBLIC, @Final = false, @Image = "Super2", @Name = "Super2", @Static = false, @Varargs = false, @Visibility = Visibility.V_PUBLIC, @containsComment = false]
         |        +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
         |        +- FormalParameters[@Empty = false, @Size = 2]
         |        |  +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
         |        |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        |  |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "C"]
         |        |  |  +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "x", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |        |  +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
         |        |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "C"]
         |        |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "y", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |        +- Block[@Empty = false, @Size = 2, @containsComment = false]
         |           +- ExpressionStatement[]
         |           |  +- AssignmentExpression[@CompileTimeConstant = false, @Compound = false, @Operator = AssignmentOp.ASSIGN, @ParenthesisDepth = 0, @Parenthesized = false]
         |           |     +- FieldAccess[@AccessType = AccessType.WRITE, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |           |     |  +- ThisExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |           |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |           +- ExpressionStatement[]
         |              +- AssignmentExpression[@CompileTimeConstant = false, @Compound = false, @Operator = AssignmentOp.ASSIGN, @ParenthesisDepth = 0, @Parenthesized = false]
         |                 +- FieldAccess[@AccessType = AccessType.WRITE, @CompileTimeConstant = false, @Image = "y", @Name = "y", @ParenthesisDepth = 0, @Parenthesized = false]
         |                 |  +- ThisExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |                 +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "y", @Name = "y", @ParenthesisDepth = 0, @Parenthesized = false]
         +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep513_FlexibleConstructorBodies$Sub2", @CanonicalName = "Jep513_FlexibleConstructorBodies.Sub2", @EffectiveVisibility = Visibility.V_PUBLIC, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "Sub2", @Static = false, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PUBLIC]
         |  +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
         |  +- ExtendsList[@Empty = false, @Size = 1]
         |  |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Super2"]
         |  +- ClassBody[@Empty = false, @Size = 1]
         |     +- ConstructorDeclaration[@Abstract = false, @Arity = 1, @EffectiveVisibility = Visibility.V_PUBLIC, @Final = false, @Image = "Sub2", @Name = "Sub2", @Static = false, @Varargs = false, @Visibility = Visibility.V_PUBLIC, @containsComment = false]
         |        +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
         |        +- FormalParameters[@Empty = false, @Size = 1]
         |        |  +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
         |        |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        |     +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |        |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "i", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |        +- Block[@Empty = false, @Size = 2, @containsComment = false]
         |           +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = true, @Visibility = Visibility.V_LOCAL]
         |           |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |           |  +- VariableDeclarator[@Initializer = true, @Name = "x"]
         |           |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "x", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |           |     +- ConstructorCall[@AnonymousClass = false, @CompileTimeConstant = false, @DiamondTypeArgs = false, @MethodName = "new", @ParenthesisDepth = 0, @Parenthesized = false, @QualifiedInstanceCreation = false]
         |           |        +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "C"]
         |           |        +- ArgumentList[@Empty = false, @Size = 1]
         |           |           +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
         |           +- ExplicitConstructorInvocation[@ArgumentCount = 2, @MethodName = "new", @Qualified = false, @Super = true, @This = false]
         |              +- ArgumentList[@Empty = false, @Size = 2]
         |                 +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |                 +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep513_FlexibleConstructorBodies$Outer", @CanonicalName = "Jep513_FlexibleConstructorBodies.Outer", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "Outer", @Static = false, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE]
         |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |  +- ClassBody[@Empty = false, @Size = 3]
         |     +- FieldDeclaration[@EffectiveVisibility = Visibility.V_PACKAGE, @Static = false, @Visibility = Visibility.V_PACKAGE]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |  +- VariableDeclarator[@Initializer = false, @Name = "i"]
         |     |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PACKAGE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = true, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "i", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_PACKAGE]
         |     +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "hello", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- VoidType[]
         |     |  +- FormalParameters[@Empty = true, @Size = 0]
         |     |  +- Block[@Empty = false, @Size = 1, @containsComment = false]
         |     |     +- ExpressionStatement[]
         |     |        +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
         |     |           +- ArgumentList[@Empty = false, @Size = 1]
         |     |              +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "Hello", @Empty = false, @Image = "\"Hello\"", @Length = 5, @LiteralText = "\"Hello\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep513_FlexibleConstructorBodies$Outer$Inner", @CanonicalName = "Jep513_FlexibleConstructorBodies.Outer.Inner", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "Inner", @Static = false, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE]
         |        +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        +- ClassBody[@Empty = false, @Size = 2]
         |           +- FieldDeclaration[@EffectiveVisibility = Visibility.V_PACKAGE, @Static = false, @Visibility = Visibility.V_PACKAGE]
         |           |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |           |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |           |  +- VariableDeclarator[@Initializer = false, @Name = "j"]
         |           |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PACKAGE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = true, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "j", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_PACKAGE]
         |           +- ConstructorDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Image = "Inner", @Name = "Inner", @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @containsComment = false]
         |              +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |              +- FormalParameters[@Empty = true, @Size = 0]
         |              +- Block[@Empty = false, @Size = 5, @containsComment = false]
         |                 +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = true, @Visibility = Visibility.V_LOCAL]
         |                 |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |                 |  +- VariableDeclarator[@Initializer = true, @Name = "x"]
         |                 |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "x", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |                 |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
         |                 +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = true, @Visibility = Visibility.V_LOCAL]
         |                 |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |                 |  +- VariableDeclarator[@Initializer = true, @Name = "y"]
         |                 |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "y", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |                 |     +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
         |                 |        +- ThisExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |                 |           +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Outer"]
         |                 +- ExpressionStatement[]
         |                 |  +- MethodCall[@CompileTimeConstant = false, @Image = "hello", @MethodName = "hello", @ParenthesisDepth = 0, @Parenthesized = false]
         |                 |     +- ArgumentList[@Empty = true, @Size = 0]
         |                 +- ExpressionStatement[]
         |                 |  +- MethodCall[@CompileTimeConstant = false, @Image = "hello", @MethodName = "hello", @ParenthesisDepth = 0, @Parenthesized = false]
         |                 |     +- ThisExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |                 |     |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Outer"]
         |                 |     +- ArgumentList[@Empty = true, @Size = 0]
         |                 +- ExplicitConstructorInvocation[@ArgumentCount = 0, @MethodName = "new", @Qualified = false, @Super = true, @This = false]
         |                    +- ArgumentList[@Empty = true, @Size = 0]
         +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep513_FlexibleConstructorBodies$Super3", @CanonicalName = "Jep513_FlexibleConstructorBodies.Super3", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "Super3", @Static = false, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE]
         |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |  +- ClassBody[@Empty = false, @Size = 2]
         |     +- ConstructorDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Image = "Super3", @Name = "Super3", @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @containsComment = false]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- FormalParameters[@Empty = true, @Size = 0]
         |     |  +- Block[@Empty = false, @Size = 1, @containsComment = false]
         |     |     +- ExpressionStatement[]
         |     |        +- MethodCall[@CompileTimeConstant = false, @Image = "overriddenMethod", @MethodName = "overriddenMethod", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           +- ArgumentList[@Empty = true, @Size = 0]
         |     +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "overriddenMethod", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
         |        +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        +- VoidType[]
         |        +- FormalParameters[@Empty = true, @Size = 0]
         |        +- Block[@Empty = false, @Size = 1, @containsComment = false]
         |           +- ExpressionStatement[]
         |              +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false]
         |                 +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
         |                 |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |                 |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
         |                 +- ArgumentList[@Empty = false, @Size = 1]
         |                    +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "hello", @Empty = false, @Image = "\"hello\"", @Length = 5, @LiteralText = "\"hello\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep513_FlexibleConstructorBodies$Sub3", @CanonicalName = "Jep513_FlexibleConstructorBodies.Sub3", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "Sub3", @Static = false, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE]
            +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
            +- ExtendsList[@Empty = false, @Size = 1]
            |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Super3"]
            +- ClassBody[@Empty = false, @Size = 3]
               +- FieldDeclaration[@EffectiveVisibility = Visibility.V_PACKAGE, @Static = false, @Visibility = Visibility.V_PACKAGE]
               |  +- ModifierList[@EffectiveModifiers = (JModifier.FINAL), @ExplicitModifiers = (JModifier.FINAL)]
               |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
               |  +- VariableDeclarator[@Initializer = false, @Name = "x"]
               |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PACKAGE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = true, @Final = true, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "x", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_PACKAGE]
               +- ConstructorDeclaration[@Abstract = false, @Arity = 1, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Image = "Sub3", @Name = "Sub3", @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @containsComment = true]
               |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
               |  +- FormalParameters[@Empty = false, @Size = 1]
               |  |  +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
               |  |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
               |  |     +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
               |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "x", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
               |  +- Block[@Empty = false, @Size = 2, @containsComment = true]
               |     +- ExpressionStatement[]
               |     |  +- AssignmentExpression[@CompileTimeConstant = false, @Compound = false, @Operator = AssignmentOp.ASSIGN, @ParenthesisDepth = 0, @Parenthesized = false]
               |     |     +- FieldAccess[@AccessType = AccessType.WRITE, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
               |     |     |  +- ThisExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |     |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
               |     +- ExplicitConstructorInvocation[@ArgumentCount = 0, @MethodName = "new", @Qualified = false, @Super = true, @This = false]
               |        +- ArgumentList[@Empty = true, @Size = 0]
               +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "overriddenMethod", @Override = true, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
                  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
                  |  +- Annotation[@SimpleName = "Override"]
                  |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Override"]
                  +- VoidType[]
                  +- FormalParameters[@Empty = true, @Size = 0]
                  +- Block[@Empty = false, @Size = 1, @containsComment = false]
                     +- ExpressionStatement[]
                        +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false]
                           +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
                           |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
                           |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
                           +- ArgumentList[@Empty = false, @Size = 1]
                              +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
