The preprocessor is a user defined function that receives the user’s code string as input.
Since it is a user defined function, it can do anything that is possible to do with a string.
It’s reasonable for a help example to keep it simple, but it shouldn’t be inferred from this that the help example reflects an outer limit of what is possible.
For instance, the screen image in the linked post shows a dialect that is compiled by a preprocessor hook into SC code.
hjh