Hi
I would like to do modify a function inner scope with a macro.
My goal is to add blocks of specific code within a simulation loop. These blocks have to:
- instantiate variables
- interact with internal variables
- update variables
My main function looks like this:
function main_loop(args..., kwargs...)
x = 0. # an internal variable
## add block1
for t in 1:1000
## add block2
end
end
My blocks will look like this:
#block1
foo = some_function(kwargs...)
#block2
x += t ## These variables are defined within the function only!
foo = some_other_function(x)
My idea would be something like:
macro add_code main_loop, args..., kwargs...)
-> do the magic <-
end
I want to do this because I would like to define many of such blocks and apply them to the main simulation loop without replicating it.
macro add_code1 main_loop, args..., kwargs...)
-> do the magic <-
end
macro add_code2 main_loop, args..., kwargs...)
-> do the magic <-
end
new_function1 = @add_code1 main loop <stuff>
new_function2 = @add_code2 main loop <stuff>
Is this possible at all?
Thanks