| |
| Figure 1-1 Creation and Use of a Lexical Analyzer with lex | 4 |
| Figure 1-2 Sample lex Source Recognizing Tokens | 24 |
| Figure 2-1 The yacc Input Syntax | 71 |
| Figure 2-2 A yacc Application for a Desk Calculator | 75 |
| Figure 2-3 Advanced Example of a yacc Specification | 82 |
| Figure 3-1 Makefile Target Entry Format | 95 |
| Figure 3-2 A Trivial Makefile | 96 |
| Figure 3-3 Check and Process the Targets | 101 |
| Figure 3-4 Simple Makefile for Compiling C Sources: Everything Explicit | 114 |
| Figure 3-5 Makefile for Compiling C Sources Using Predefined Macros | 116 |
| Figure 3-6 Makefile for Compiling C Sources Using Suffix Rules | 117 |
| Figure 3-7 The Standard Suffixes List | 117 |
| Figure 3-8 Makefile for a C Program with System-Supplied Libraries | 136 |
| Figure 3-9 Makefile for a C Program with Alternate Debugging and Profiling Variants | 139 |
| |
| Figure 3-10 Makefile for a C Library with Alternate Variants | 140 |
| Figure 3-11 Sample Makefile for Separate Debugging and Profiling Program Variants | 143 |
| Figure 3-12 Sample Makefile for Separate Debugging and Profiling Library Variants | 144 |
| Figure 3-13 Target Entry for a Nested make Command | 147 |
| Figure 3-14 Makefile for C Program with User-Supplied Libraries | 148 |
| Figure 3-15 Summary of Macro Assignment Order | 152 |
| Figure 3-16 Changing Execute Permissions | 154 |
| Figure 4-1 Evolution of an SCCS File | 199 |
| Figure 4-2 Tree Structure with Branch Deltas | 200 |
| Figure 4-3 Extending the Branching Concept | 201 |
| Figure A-1 Summary of Default Transformation Path | 239 |