At the moment, prism exposes a lot of structs and functions in its C API. Overall, the shape is not clearly defined. We should take a couple of steps to resolve this:
We should have a split between our public and private header files.
Ideally, I would love pm_node_t to be an opaque pointer. Because they are always heap-allocated, we should be able to get away with this.
Every attribute should have a defined getter macro to make it maintainable going forward, in case we need to change a name or the structure of the AST.
At the moment, prism exposes a lot of structs and functions in its C API. Overall, the shape is not clearly defined. We should take a couple of steps to resolve this:
pm_node_t
to be an opaque pointer. Because they are always heap-allocated, we should be able to get away with this.