# Sub-Module generatrion

**URL:** <https://discourse.julialang.org/t/sub-module-generatrion/21294>\
**Category:** New to Julia\
**Created:** [February 28, 2019, 11:15am UTC](https://discourse.julialang.org/t/sub-module-generatrion/21294 "2019-02-28T11:15:46Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![abulak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abulak/32/28314_2.png) [@abulak](https://discourse.julialang.org/u/abulak)\
**Post date:** [February 28, 2019, 11:15am UTC](https://discourse.julialang.org/t/sub-module-generatrion/21294/1 "2019-02-28T11:15:46Z")

</div>

I’m facing the following issue:

I have a `module TestModule end` and I’d like to add a new sub-module to it.  
so let me try:

```julia
julia> @eval TestModule Module(:A)
Main.A
julia> TestModule.eval(:(Module(:B)))
Main.B

```

I’m probably missing something very obvious…

---

<div class="post-metadata">

**Author:** ![ffevotte](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ffevotte/32/6587_2.png) [@ffevotte](https://discourse.julialang.org/u/ffevotte)\
**Post date:** [March 1, 2019, 9:22pm UTC](https://discourse.julialang.org/t/sub-module-generatrion/21294/2 "2019-03-01T21:22:20Z")

</div>

Maybe one of the following will help you:

```julia
julia> module TestModule
       end
Main.TestModule

julia> @eval TestModule module A end
Main.TestModule.A

julia> TestModule.eval(:(module B end))
Main.TestModule.B

julia> name = :C ;
julia> TestModule.eval(:(module $name end))
Main.TestModule.C

```

---

<div class="post-metadata">

**Author:** ![abulak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abulak/32/28314_2.png) [@abulak](https://discourse.julialang.org/u/abulak)\
**Post date:** [March 1, 2019, 9:34pm UTC](https://discourse.julialang.org/t/sub-module-generatrion/21294/3 "2019-03-01T21:34:59Z")

</div>

the actual problem I was having was that You can not quote module (since quote introduce a node in ast), so that `TestModule.eval(quote module B end end))` produces `ERROR: syntax: "module" expression not at top level`.

but I got to `Expr` solution after.

anyway, thanks!
