23 lines
836 B
Markdown
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.
|