lang-bootstrap/04a/README.md
2021-11-17 22:58:17 -05:00

836 B

stage 04a

Rather than a compiler, this stage only consists of a simple preprocessor. In the future, we'll run our code through this program, then run its output through a compiler.

It take lines like:

#define THREE d3

and then replaces THREE anywhere in the rest of the code with d3. I've provided in04a as a little example. Unlike previous programs, you can control the input and output file names without recompiling it. So to compile the example program:

make out03
./out03 in04a out04a

Although it seems simple, this program will be very useful: it'll let us define constants and it'll work in any language. There really isn't much else to say about this program. With that, we can move on to the next stage which should be more exciting.