Forum
#include MACRO - Printable Version

+- Forum (https://www.boriel.com/forum)
+-- Forum: Compilers and Computer Languages (https://www.boriel.com/forum/forumdisplay.php?fid=12)
+--- Forum: ZX Basic Compiler (https://www.boriel.com/forum/forumdisplay.php?fid=11)
+---- Forum: Help & Support (https://www.boriel.com/forum/forumdisplay.php?fid=16)
+---- Thread: #include MACRO (/showthread.php?tid=1248)



#include MACRO - RandomiserUsr - 08-21-2021

I wonder if you could show some examples of how to use #include MACRO introduced in 1.5.1 as I don't see anything in the wiki

thanks


RE: #include MACRO - boriel - 08-24-2021

Include macro means you can #define MACRO <something> and later do #include MACRO so it will get replaced and do the include properly. This allows dynamically including things even from the command line. For example:
Code:
#define CONCAT(x,y)  x##y
#define TO_STR(x)  #x

#ifndef LANG
#  warning no LANG defined, using default EN
#  define LANG EN
#endif

#include TO_STR(CONCAT(LANG, _lang.bas)


This can be compiled with
Code:
zxbc file.bas -D LANG=ES

which will define the macro LANG with the value es, so the file "ES_lang.bas" will be included instead of "EN_lang.bas" which is the default in this program.

#include MACRO means, MACRO can be any expression that, when resolved, leads to <XXXX> or "XXXX"


RE: #include MACRO - RandomiserUsr - 09-04-2021

(08-24-2021, 07:41 AM)boriel Wrote: Include macro means you can #define MACRO <something> and later do #include MACRO so it will get replaced and do the include properly. This allows dynamically including things even from the command line. For example:
Code:
#define CONCAT(x,y)  x##y
#define TO_STR(x)  #x

#ifndef LANG
#  warning no LANG defined, using default EN
#  define LANG EN
#endif

#include TO_STR(CONCAT(LANG, _lang.bas)


This can be compiled with
Code:
zxbc file.bas -D LANG=ES

which will define the macro LANG with the value es, so the file "ES_lang.bas" will be included instead of "EN_lang.bas" which is the default in this program.

#include MACRO means, MACRO can be any expression that, when resolved, leads to <XXXX> or "XXXX"

Thank you ! :-)