Back end (part 4) Now that we've worked out the structure of the C program we're going to generate, we just write it down as a bunch of factored quasiquotations. Here is an example quote from the back end: let fstmt = <:cstmt< if (stat ($str:file$, &target) == -1) { rebuild = 1; } else { mtime = target.st_mtime; } $stmt:satisfy$ >> Look familliar? The back end is about 70 lines of code. It just produces C quotes isomorphic to the rule tree constructed by the front end.