+- CompilationUnit[@PackageName = ""]
   +- ImportDeclaration[@ImportOnDemand = false, @ImportedName = "java.base", @ImportedSimpleName = null, @ModuleImport = true, @PackageName = null, @Static = false]
   +- ImportDeclaration[@ImportOnDemand = false, @ImportedName = "java.desktop", @ImportedSimpleName = null, @ModuleImport = true, @PackageName = null, @Static = false]
   +- ImportDeclaration[@ImportOnDemand = false, @ImportedName = "java.util.List", @ImportedSimpleName = "List", @ModuleImport = false, @PackageName = "java.util", @Static = false]
   +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep476_ModuleImportDeclarations", @CanonicalName = "Jep476_ModuleImportDeclarations", @EffectiveVisibility = Visibility.V_PUBLIC, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = false, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "Jep476_ModuleImportDeclarations", @Static = false, @TopLevel = true, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PUBLIC]
      +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
      +- ClassBody[@Empty = false, @Size = 1]
         +- MethodDeclaration[@Abstract = false, @Arity = 1, @EffectiveVisibility = Visibility.V_PUBLIC, @Final = false, @MainMethod = true, @Name = "main", @Overridden = false, @Static = true, @Varargs = false, @Visibility = Visibility.V_PUBLIC, @Void = true]
            +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC, JModifier.STATIC), @ExplicitModifiers = (JModifier.PUBLIC, JModifier.STATIC)]
            +- VoidType[]
            +- FormalParameters[@Empty = false, @Size = 1]
            |  +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
            |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
            |     +- ArrayType[@ArrayDepth = 1]
            |     |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "String"]
            |     |  +- 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 = "args", @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 = false, @Visibility = Visibility.V_LOCAL]
               |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
               |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "File"]
               |  +- VariableDeclarator[@Initializer = true, @Name = "f"]
               |     +- 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 = "f", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @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 = "File"]
               |        +- ArgumentList[@Empty = false, @Size = 1]
               |           +- StringLiteral[@CompileTimeConstant = true, @ConstValue = ".", @Empty = false, @Image = "\".\"", @Length = 1, @LiteralText = "\".\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
               +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
               |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
               |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "List"]
               |  |  +- TypeArguments[@Diamond = false, @Empty = false, @Size = 1]
               |  |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "File"]
               |  +- VariableDeclarator[@Initializer = true, @Name = "myList"]
               |     +- 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 = "myList", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
               |     +- ConstructorCall[@AnonymousClass = false, @CompileTimeConstant = false, @DiamondTypeArgs = true, @MethodName = "new", @ParenthesisDepth = 0, @Parenthesized = false, @QualifiedInstanceCreation = false]
               |        +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "ArrayList"]
               |        |  +- TypeArguments[@Diamond = true, @Empty = true, @Size = 0]
               |        +- ArgumentList[@Empty = true, @Size = 0]
               +- ExpressionStatement[]
               |  +- MethodCall[@CompileTimeConstant = false, @Image = "add", @MethodName = "add", @ParenthesisDepth = 0, @Parenthesized = false]
               |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "myList", @Name = "myList", @ParenthesisDepth = 0, @Parenthesized = false]
               |     +- ArgumentList[@Empty = false, @Size = 1]
               |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "f", @Name = "f", @ParenthesisDepth = 0, @Parenthesized = 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]
                        +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.ADD, @ParenthesisDepth = 0, @Parenthesized = false]
                           +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "myList = ", @Empty = false, @Image = "\"myList = \"", @Length = 9, @LiteralText = "\"myList = \"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
                           +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "myList", @Name = "myList", @ParenthesisDepth = 0, @Parenthesized = false]
