Thats great. I should take a look asap. In fact i wrote a generic abstract tree parser based on some basic parsing rules so it can parse C, javascript and others, but obviously not as well as yours. Not supporting macros and others..
I think anselm was already interested on something like this. So we can probably take it to do a suckless sloc or a c compiler based in radare2 assembler backend. Which would be far more minimal than gcc or llvm ----- Original message ----- > i'm involved in a c parsing tool project, c99tree, > and pleased to announce its first release > > http://repo.hu/projects/libporty > > it is in early development, but it can parse c99 code > (without includes and preprocessor tokens) and print > an abstract syntax tree > > eg useful for listing function calls of a .c file etc > (the current form is very sensitive to undefined > type ids this will be fixed up later) > > c99tree knows c99 grammar very well (and a fair amount > of gcc extensions), but it does not try to check syntax > errors or semantic problems, just dumps a tree or fails > > the difficult part will be the preprocessor > some part of it is scheduled for the next release > > for suckless it maybe useful for code analysis and > code audit as it tells a bit more than a wc -l :) > > the grammar is based on the .y and .l files of pcc > http://pcc.ludd.ltu.se > > (actually http://golang.org/src/cmd/cc/cc.y is cleaner, > but seemed more work to cut out and make c99/gcc > compatible, might take another look at it later..) >