![]() |
|
Any way to to include command line options into the code? - Printable Version +- Boriel Basic Forum (https://forum.boriel.com) +-- Forum: Compilers and Computer Languages (https://forum.boriel.com/forumdisplay.php?fid=12) +--- Forum: ZX Basic Compiler (https://forum.boriel.com/forumdisplay.php?fid=11) +---- Forum: Help & Support (https://forum.boriel.com/forumdisplay.php?fid=16) +---- Thread: Any way to to include command line options into the code? (/showthread.php?tid=246) |
Any way to to include command line options into the code? - programandala.net - 2010-06-16 Is there any compiler directive to include command line options into the source? I've looked in the docs and in the forum, and found some mentions about "#pragma", but nothing clear. I always include the following comment at the top of my source Code: ' Compile with the following command:Code: #option tapCode: #options tap strict-boolThen all programs could be compiled just with zxb.py program.bas. Of course, the actual command line options would have higher priority than those in the source. Re: Any way to to include command line options into the code? - boriel - 2010-06-16 The are called #pragmas (this is a standard compiler feature on most compilers). Instead of using #option, use #pragma option. Unfortunately, YES, this is very undocumented. See how library/*.bas uses them. The reason they're undocumented is because they're being worked on and refactored at the moment. A brief explanation follows: To change any option use Code: #pragma option <optionName>=ValueExample: Disabling case-sensitive identifiers: Code: #pragma option case_insensitive = TRUECode: #pragma push(case_insensitive)The above technique is used in many library/*.bas files to make some functions case insensitive. For example, POINT and SCREEN$ functions came with Sinclair BASIC and they must be case insensitive. So saving the case_insensitive option temporarily we won't interfere with user's options status The options list grows almost day by day. But here are the most common and useful of them (at the moment), 'NAME', type, default value:
Re: Any way to to include command line options into the code? - programandala.net - 2010-06-16 Thank you. I'll try to document all this a bit in the wiki, using your message. boriel Wrote:The options list grows almost day by day. But here are the most common and useful of them (at the moment), 'NAME', type, default value: I blindly tried the following: Code: #pragma option tap = TRUE...just to confirm no one is yet implemented. Do you plan to implement a #pragma alternative for every command line option? Re: Any way to to include command line options into the code? - boriel - 2010-06-16 Quote:Yes, of course. Note, "tap" won't be possible, but "outputFormat" instead, which must be one of ('tap', 'tzx', 'asm', 'bin', 'ic'). Update: IC stands for "Intermediate Code". Use -e to generate it (ASCII source) and see what happens. ZXB is a *compiler toolkit* so any other high-level language that compiles into IC could be also used. I tell you this because I've noticed you're very interested in Forth. Creating a High Level Compiler that produces IC code should be not very difficult, and you could integrate Forth into the ZX Basic compiler. That is, zxf could be a main executable that later integrates the rest of the modules and libraries this toolkit uses. |