You seem to be very confused about something, or not communicating what you're trying to do very well (at least I'm pretty lost..)
I didn't propose npeg as a solution to your problem (it's a great parsing library. But not what you need). But rather as a library which is an example of creating graphs out of code. Why do you want to create this graph on runtime? This sounds a lot like static analysis, not something typically done while the program is running. The `parseStmt` procedure parses Nim code into NimNodes, and NimNodes only exists in the macros module. The compiler uses PNodes instead, which are analogous to NimNodes. I don't think the compiler has a separate semantic representation of the code, it's all stored in the PNodes if I'm not mistaken.