On Sun, 06 Jan 2019 17:01:20 -0500 "Eric S. Raymond" <e...@thyrsus.com> wrote: > > A simple, possibly correct LR parser for C11 > > http://gallium.inria.fr/~fpottier/publis/jourdan-fpottier-2016.pdf
This paper says its lexer+parser is about 1000 lines, which doesn't include the preprocessor. For comparison, subc (a compiler for a self compiling subset of C) is under 5K lines, including a preprocessor. It is a recursive descent compiler which may be easier to grok. Best of all, there is an associated book called "practical compiler construction" (for a slightly older compiler). There is even a Go version of subc! subc is completely public domain. https://www.t3x.org/subc/index.html May be worth checking subc out (though it will have to be extended to cover missing features such as goto, typedef...) The other suggestion I have is to figure out how to map individual C constructs to Go and not try mapping idiomatic C code to idiomatic Go code. The former is a hard enough problem as it is. Then may be you can convert robotically translated code to idiomatic code (sort of what the Go folks must've done/are doing). This way you can internalize most of the translation scheme before writing a single line of production code. And it is much easier to change the xlation scheme while you have just a paper design! [I once spent a bunch of tine on writing a Beta language to C translator and followed this path] -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.