| |
| Figure 2-1 Creation and Use of a Lexical Analyzer with lex | 54 |
| Figure 2-2 Sample lex Source Recognizing Tokens | 74 |
| Figure 3-1 The yacc Input Syntax | 121 |
| Figure 3-2 A yacc Application for a Desk Calculator | 125 |
| Figure 3-3 Advanced Example of a yacc Specification | 132 |
| Figure 4-1 Makefile Target Entry Format | 145 |
| Figure 4-2 A Trivial Makefile | 145 |
| Figure 4-3 Simple Makefile for Compiling C Sources: Everything Explicit 164 |
| Figure 4-4 Makefile for Compiling C Sources Using Predefined Macros 166 |
| Figure 4-5 Makefile for Compiling C Sources Using Suffix Rules | 166 |
| Figure 4-6 The Standard Suffixes List | 167 |
| Figure 4-7 Makefile for a C Program with System-Supplied Libraries | 185 |
| Figure 4-8 Makefile for a C Program with Alternate Debugging and Profiling Variants | 188 |
| Figure 4-9 Makefile for a C Library with Alternate Variants | 189 |
| Figure 4-10 Sample Makefile for Separate Debugging and Profiling Program Variants | 192 |
| |
| Figure 4-11 Sample Makefile for Separate Debugging and Profiling Library Variants | 193 |
| Figure 4-12 Target Entry for a Nested make Command | 196 |
| Figure 4-13 Makefile for C Program with User-Supplied Libraries | 196 |
| Figure 4-14 Summary of Macro Assignment Order | 200 |
| Figure 5-1 Evolution of an SCCS File | 247 |
| Figure 5-2 Tree Structure with Branch Deltas | 248 |
| Figure 5-3 Extending the Branching Concept | 249 |
| Figure A-1 Summary of Default Transformation Path | 287 |