Path: csiph.com!xmission!news.snarked.org!border2.nntp.dca1.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: luser droog Newsgroups: comp.compilers Subject: Examples/resources for the "middle end" of a compiler? Date: Thu, 20 Jun 2019 14:47:49 -0700 (PDT) Organization: Compilers Central Lines: 19 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <19-06-012@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="40527"; mail-complaints-to="abuse@iecc.com" Keywords: design, question Posted-Date: 21 Jun 2019 16:28:01 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:2341 I have worked up a scanner and parser for a primitive version of C, but I have hit a block on how to extend the code further to make a fully working compiler. I have a lisp-like list containing sublists and token objects. What does a nice tree traversal code look like? Any thoughts or suggestions? I can add annotations in the parser to insert things to search for. Perhaps my problem is vague criteria. I kind of want to make a code formatting tool first rather than a compiler, so I really want some kind of middle-end processing that makes formatting easier. I am ignoring the rats nest issue of the preprocessor entirely for the present. To put it succinctly, are there any good examples of lisp code for processing a C-like grammar that handles the middle end nicely? Or any related stuff I should look at? tia