> Is the parsing part just to read it's own code it generates?
It would seem so. Their hand-rolled parser handles only a subset of the language. E.g. it hard-codes recognition for stl containers, and presumably only the ones that it might emit in generated code.
There's no AST built, at least not at this level. It tokenizes and lexes, and seems to leave it up to the caller to understand how to pump the parsing "state machine".
I've thought about making a RAD IDE for another language, and I'm kind of stuck wondering on strategies for stuff like this, I'd much rather just store the GUI info in another format like XML and only parse source files for things like methods that shouldn't be overriden when someone moves something.
I really wish we'd go back to having a lot more RAD tools.
> Is the parsing part just to read it's own code it generates?
It would seem so. Their hand-rolled parser handles only a subset of the language. E.g. it hard-codes recognition for stl containers, and presumably only the ones that it might emit in generated code.
There's no AST built, at least not at this level. It tokenizes and lexes, and seems to leave it up to the caller to understand how to pump the parsing "state machine".
AST building and codegen appears to be done in this >9000LOC file - https://github.com/tpecholt/imrad/blob/main/src/node.cpp