Actually, last night when I was trying to go to sleep and I couldn't because my brain wouldn't stop trying to think of stuff, I determined that with BlitzMax it would be more difficult than it sounds to have a preprocessor that shares macros across modules/files. As you should all know, a preprocessor works on the code before it is compiled, and because Import compiles code then links it (as far as I know, anyways), that would mean all preprocessor information (macros, definitions, etc.) would be lost upon import, so you'd basically have to either A. have an include file in all imported files or B. have to re-write macros in each and every file. Both are not-that-pleasant ways of dealing with the problem.
So, as easy as it sounds, this isn't like writing a preprocessor for languages that merely include headers because sometimes you're importing already-compiled code and the compiled code shouldn't (it could in comments, but that would be a messy way to handle it because then you'd have to preprocess the compiled code as well and that just means more time spent building your application) have the preprocessor data saved in it.
I pretty much lost where I was going with that, but I just woke up, so I -almost- have an excuse.
So, as easy as it sounds, this isn't like writing a preprocessor for languages that merely include headers because sometimes you're importing already-compiled code and the compiled code shouldn't (it could in comments, but that would be a messy way to handle it because then you'd have to preprocess the compiled code as well and that just means more time spent building your application) have the preprocessor data saved in it.
I pretty much lost where I was going with that, but I just woke up, so I -almost- have an excuse.