Current the macros do nothing and are just comments that exist in the code.
Here is a list of ideas for what macros code do:
[ ] including other files (we could make this work multiple ways. I think I would want it to parse and generate the IR for the whole file and then we would only need the top level symbol table for type checking with the other files)
[ ] injecting IR directly into the source code (I want to design an IR that is as close to the target assembly as we can get it sort of like how llvm does stuff but then you can inject it directly into the source code (this may make any analysis slightly more difficult but I don't have any of that planned out yet so we can make it work))
[ ] code expansion stuff (like define a macro function that expands out into code after the parse phase but before the semantic analysis / typechecking phase)
[ ] documentation (we can have the compiler compile code documentation and we can have our own markdown format)
[ ] AST transformations (I haven't thought about this a lot. I just think it would be neat like we can define some AST form and then we can show what that form transforms into. This would require some way of formatting text to directly build out the tree)
Current the macros do nothing and are just comments that exist in the code.
Here is a list of ideas for what macros code do: