14.1 Introduction
Metaprogramming is one of the most powerful features of the Julia programming language. Crudely speaking, metaprogramming is about Julia code controlling other parts of source files to an extent that it can modify them and control their execution. To understand this process, you must understand the way Julia code is executed. Broadly speaking, there are two stages of Julia code execution:
Making an Abstract Syntax Tree
Julia code is parsed in the form that is suitable for evaluation.
Evaluation
The parsed code is executed by the compiler.
Metaprogramming is about modifying ...