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

23 lines
836 B
Markdown

# stage 04a
Rather than a compiler, this stage only consists of a simple [preprocessor](https://en.wikipedia.org/wiki/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](../04b/README.md) which should be more exciting.